Cancel active provisioning jobs when rolling back betas

This commit is contained in:
2026-10-05 17:48:46 -04:00
parent 6ad5e7f4c6
commit 701066aaf8
25 changed files with 564 additions and 37 deletions
+14
View File
@@ -154,6 +154,20 @@ heartbeat or completion-time promises.
- `/api/provisioning/:id`, `/:id/resume`, `/:id/cancel`, `/preview`, and
`/house-party` preserve the existing operation, recovery, removal cancellation,
launch preview, and fleet destruction APIs.
- `POST /api/provisioning/:id/cancel` cancels any active create, start, restart,
rebuild, stop, or destroy job, including health verification. It releases that
job's recovery capacity and prevents further steps; completed effects are not
undone. Undelivered host commands are withdrawn. Commands already delivered
retain their receipts, and replacements wait for those mutations to settle.
Cancelling is idempotent. Lists and details expose `canCancel`.
- `POST /api/provisioning/:id/cancel-creation` retains the explicit native creation
cleanup action: cancel the launch and remove its partial instance. Cancelling
a job alone retains its existing instance/files for inspection or later cleanup.
- Beta rollback cancels conflicting provisioning jobs on its original servers
before queuing independent restoration restarts. It does not wait for the
superseded restart's health verification. Native activation receipts must still
provide durable before images; rollback reconciles completed receipts itself.
Manual rollback keeps the replacement jobs held until the campaign is resumed.
- `GET /api/provisioning/:id?events=recent` returns the same detail with five recent
events plus activity totals/latest ID and a failure excerpt. Omitting the option
preserves the full legacy event response. Progress, capacity, named related work,