Instance snapshots API reference
See the upstream Compute (Nova) API reference and Image (Glance) API reference.
Creating an instance snapshot spans two OpenStack services. Nova triggers the snapshot, and the result is a Glance image. Quake AI instances are boot-from-volume, so createImage produces a Cinder volume snapshot plus a thin Glance image that references it. After creation, you list, show, update, download, or delete the snapshot through the Image API.
In these methods, {server_id} is the UUID of the instance you snapshot, and {image_id} is the UUID of the snapshot image.
Service base URLs#
Two services back these endpoints. Prefix each path with the base URL for its service:
| Operation | Service | Base URL |
|---|---|---|
| Trigger snapshot | Nova (Compute) | https://compute.{region}.rumble.cloud/v2.1 |
| List, show, update, download, delete snapshot images | Glance (Image) | https://image.{region}.rumble.cloud |
Replace {region} with your region. Currently only us-east-1 is available. Discover both endpoints from the service catalog:
openstack catalog show compute
openstack catalog show imageThe examples below write these base URLs as {nova_base} and {glance_base}.
Create instance snapshot (Nova)#
POST {nova_base}/servers/{server_id}/actionRequest body:
{
"createImage": {
"name": "Snapshot Name",
"metadata": {
"key": "value"
}
}
}Nova returns the new image UUID in the Location response header. Poll the image status (see Show image details) until it reaches active.
List images including snapshots (Glance)#
GET {glance_base}/v2/imagesShow image details (Glance)#
GET {glance_base}/v2/images/{image_id}Update image metadata (Glance)#
PATCH {glance_base}/v2/images/{image_id}Request body (replace the snapshot name):
[
{ "op": "replace", "path": "/name", "value": "New Snapshot Name" }
]Other common operations:
[
{ "op": "add", "path": "/protected", "value": true },
{ "op": "remove", "path": "/tags" }
]Delete image (Glance)#
DELETE {glance_base}/v2/images/{image_id}Download image data (Glance)#
GET {glance_base}/v2/images/{image_id}/file