Skip to content

Plan a release upgrade (DAWG-153): open a `dist_upgrade` proposal for every host on `from` — or those in one group — to `to`.

POST
/v1/orgs/{org}/release-upgrades
curl --request POST \
--url https://api.updawg.net/v1/orgs/example/release-upgrades \
--header 'Content-Type: application/json' \
--data '{ "distro": "example", "from": "example", "group_id": "example", "to": "example" }'

It names no packages. Run its preflight to check each host against the target: disk, held packages, edited configuration, DKMS, snapshots, and whether each third-party repository publishes the target. It cannot be approved yet: no agent executes a release upgrade.

org
required
string

Organization slug.

Media typeapplication/json
object
distro
required

As distro on a host: debian.

string
from
required

The release its hosts run now: 13.

string
group_id

Only the hosts in this group (grp_…). Absent is every host on from.

string | null
to
required

The release to move them to: 14. One of from’s targets.

string
Examplegenerated
{
"distro": "example",
"from": "example",
"group_id": "example",
"to": "example"
}

Planned.

Media typeapplication/json
object
hosts
required

The hosts it targets.

integer format: int64
number
required
integer format: int32
proposal_id
required

The prp_… id of the dist_upgrade proposal.

string
Examplegenerated
{
"hosts": 1,
"number": 1,
"proposal_id": "example"
}

No such release, or to is not one from can be upgraded to.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No session.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not permitted for this role.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No such group here.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

The same release, target and group are planned already (already-planned, detail names it), or no host runs the release (no-hosts).

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Over the organization’s request limit. Retry-After says when to try again; RateLimit-Limit is the burst.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}