快照组相关接口
创建快照组(CreateVolumeSnapshotGroup)
API请求
URLs
POST zstack/v1/volume-snapshots/groupHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"rootVolumeUuid": "901cae4fd9f43a1ca20da4146ddaec50",
"name": "test"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"rootVolumeUuid":"901cae4fd9f43a1ca20da4146ddaec50","name":"test"}}' http://localhost:8080/zstack/v1/volume-snapshots/group参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| rootVolumeUuid | String | body(包含在params结构中) | 根云盘UUID | 3.6.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 3.6.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.6.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 3.6.0 | ||
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.6.0 | |
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "4b13e23059033e2dbfac63b5b16eba11",
"snapshotCount": 1.0,
"name": "group",
"vmInstanceUuid": "9ff17180fded31c2b9e4e5751ebcb2ba",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"volumeSnapshotRefs": [
{
"volumeSnapshotUuid": "e83b2d306f0d353a889096ca0b44b444",
"volumeSnapshotGroupUuid": "4b13e23059033e2dbfac63b5b16eba11",
"deviceId": 0.0,
"snapshotDeleted": false,
"volumeUuid": "edc07fe8d8a335ec8aa00f23b88fc1c6",
"volumeName": "ROOT-volume",
"volumeType": "Root",
"volumeSnapshotInstallPath": "/Cloud_ps/to/path/snap.qcow2",
"volumeSnapshotName": "group-ROOT-volume",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| inventory | VolumeSnapshotGroupInventory | 详情参考inventory | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.6.0 |
| description | String | 错误的概要描述 | 3.6.0 |
| details | String | 错误的详细信息 | 3.6.0 |
| elaboration | String | 保留字段,默认为null | 3.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.6.0 |
| snapshotCount | Integer | 组内快照数量 | 3.6.0 |
| name | String | 资源名称 | 3.6.0 |
| description | String | 资源的详细描述 | 3.6.0 |
| vmInstanceUuid | String | 云主机UUID | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
| volumeSnapshotRefs | List | 详情参考volumeSnapshotRefs | 3.6.0 |
#volumeSnapshotRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| volumeSnapshotUuid | String | 云盘快照UUID | 3.6.0 |
| volumeSnapshotGroupUuid | String | 快照组UUID | 3.6.0 |
| deviceId | int | 打快照时云盘的加载序号 | 3.6.0 |
| snapshotDeleted | boolean | 快照是否已经被删除 | 3.6.0 |
| volumeUuid | String | 云盘UUID | 3.6.0 |
| volumeName | String | 云盘的名字 | 3.6.0 |
| volumeType | String | 云盘的类型 | 3.6.0 |
| volumeSnapshotInstallPath | String | 快照的安装路径 | 3.6.0 |
| volumeSnapshotName | String | 快照的名字 | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
SDK示例
Java
SDK
CreateVolumeSnapshotGroupAction action = new CreateVolumeSnapshotGroupAction();
action.rootVolumeUuid = "901cae4fd9f43a1ca20da4146ddaec50";
action.name = "test";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateVolumeSnapshotGroupAction.Result res = action.call();Python
SDK
CreateVolumeSnapshotGroupAction action = CreateVolumeSnapshotGroupAction()
action.rootVolumeUuid = "901cae4fd9f43a1ca20da4146ddaec50"
action.name = "test"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateVolumeSnapshotGroupAction.Result res = action.call()删除快照组(DeleteVolumeSnapshotGroup)
API请求
URLs
DELETE zstack/v1/volume-snapshots/group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/volume-snapshots/group/f7b2175eebba3161b029689cb32f9b14参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.6.0 | |
| direction (可选) | String | body | 数据合并方向。pull:向前合并;commit:向后合并;auto:自动选择最优合并方向 | 5.4.0 | |
| scope (可选) | String | body | 数据合并方式。single:仅合并单个快照;chain:合并整个快照链;auto:自动判断最佳合并范围 | 5.4.0 | |
| deleteMode (可选) | String | body | 3.6.0 | ||
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
返回示例
{
"results": [
{
"success": false,
"error": {
"code": "SYS.1001",
"description": "internal error"
}
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| results | List | 详情参考results | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#results
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| snapshotUuid | String | 快照UUID | 3.6.0 |
| volumeUuid | String | 云盘UUID | 3.6.0 |
| success | boolean | 3.6.0 | |
| error | ErrorCode | 详情参考error | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
DeleteVolumeSnapshotGroupAction action = new DeleteVolumeSnapshotGroupAction();
action.uuid = "f7b2175eebba3161b029689cb32f9b14";
action.direction = "auto";
action.scope = "chain";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteVolumeSnapshotGroupAction.Result res = action.call();Python
SDK
DeleteVolumeSnapshotGroupAction action = DeleteVolumeSnapshotGroupAction()
action.uuid = "f7b2175eebba3161b029689cb32f9b14"
action.direction = "auto"
action.scope = "chain"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteVolumeSnapshotGroupAction.Result res = action.call()更新快照组信息(UpdateVolumeSnapshotGroup)
API请求
URLs
PUT zstack/v1/volume-snapshots/group/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateVolumeSnapshotGroup": {
"name": "new name"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVolumeSnapshotGroup":{"name":"new name"}}' http://localhost:8080/zstack/v1/volume-snapshots/group/c39089cddbd836628f346b14beafe2d3/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name (可选) | String | body(包含在updateVolumeSnapshotGroup结构中) | 资源名称 | 3.6.0 | |
| description (可选) | String | body(包含在updateVolumeSnapshotGroup结构中) | 资源的详细描述 | 3.6.0 | |
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.6.0 | |
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "a261086918fe3c04be683430f15920a2",
"snapshotCount": 1.0,
"name": "group",
"vmInstanceUuid": "98ac921100b43981b493071b6430bb2b",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"volumeSnapshotRefs": [
{
"volumeSnapshotUuid": "7ac8675cd8a9389ca343a2a7d49c47d7",
"volumeSnapshotGroupUuid": "a261086918fe3c04be683430f15920a2",
"deviceId": 0.0,
"snapshotDeleted": false,
"volumeUuid": "6fb0e4a0c3d6315bbb5c08a1a33bc231",
"volumeName": "ROOT-volume",
"volumeType": "Root",
"volumeSnapshotInstallPath": "/Cloud_ps/to/path/snap.qcow2",
"volumeSnapshotName": "group-ROOT-volume",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| inventory | VolumeSnapshotGroupInventory | 详情参考inventory | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.6.0 |
| description | String | 错误的概要描述 | 3.6.0 |
| details | String | 错误的详细信息 | 3.6.0 |
| elaboration | String | 保留字段,默认为null | 3.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.6.0 |
| snapshotCount | Integer | 组内快照数量 | 3.6.0 |
| name | String | 资源名称 | 3.6.0 |
| description | String | 资源的详细描述 | 3.6.0 |
| vmInstanceUuid | String | 云主机UUID | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
| volumeSnapshotRefs | List | 详情参考volumeSnapshotRefs | 3.6.0 |
#volumeSnapshotRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| volumeSnapshotUuid | String | 云盘快照UUID | 3.6.0 |
| volumeSnapshotGroupUuid | String | 快照组UUID | 3.6.0 |
| deviceId | int | 打快照时云盘的加载序号 | 3.6.0 |
| snapshotDeleted | boolean | 快照是否已经被删除 | 3.6.0 |
| volumeUuid | String | 云盘UUID | 3.6.0 |
| volumeName | String | 云盘的名字 | 3.6.0 |
| volumeType | String | 云盘的类型 | 3.6.0 |
| volumeSnapshotInstallPath | String | 快照的安装路径 | 3.6.0 |
| volumeSnapshotName | String | 快照的名字 | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
SDK示例
Java
SDK
UpdateVolumeSnapshotGroupAction action = new UpdateVolumeSnapshotGroupAction();
action.name = "new name";
action.uuid = "c39089cddbd836628f346b14beafe2d3";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVolumeSnapshotGroupAction.Result res = action.call();Python
SDK
UpdateVolumeSnapshotGroupAction action = UpdateVolumeSnapshotGroupAction()
action.name = "new name"
action.uuid = "c39089cddbd836628f346b14beafe2d3"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVolumeSnapshotGroupAction.Result res = action.call()查询快照组(QueryVolumeSnapshotGroup)
API请求
URLs
GET zstack/v1/volume-snapshots/groupGET zstack/v1/volume-snapshots/group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/volume-snapshots/group?q=uuid=9480c1736b9c3798b3030cd990f0db8fcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/volume-snapshots/group/91c3de9ffbc73475a84b8038c8a2349c可查询字段
运行CLI命令行工具,输入QueryVolumeSnapshotGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "2c95e5285a733df6a2b70e198282f594",
"snapshotCount": 1.0,
"name": "group",
"vmInstanceUuid": "371076859fa9326fba89633429f0aa06",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"volumeSnapshotRefs": [
{
"volumeSnapshotUuid": "bb6bc37f1c483ac1b7703b6ba58a2081",
"volumeSnapshotGroupUuid": "2c95e5285a733df6a2b70e198282f594",
"deviceId": 0.0,
"snapshotDeleted": false,
"volumeUuid": "6ff4fae70b79328bb0233313adb1226b",
"volumeName": "ROOT-volume",
"volumeType": "Root",
"volumeSnapshotInstallPath": "/Cloud_ps/to/path/snap.qcow2",
"volumeSnapshotName": "group-ROOT-volume",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| inventories | List | 详情参考inventories | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.6.0 |
| description | String | 错误的概要描述 | 3.6.0 |
| details | String | 错误的详细信息 | 3.6.0 |
| elaboration | String | 保留字段,默认为null | 3.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.6.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.6.0 |
| snapshotCount | Integer | 组内快照数量 | 3.6.0 |
| name | String | 资源名称 | 3.6.0 |
| description | String | 资源的详细描述 | 3.6.0 |
| vmInstanceUuid | String | 云主机UUID | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
| volumeSnapshotRefs | List | 详情参考volumeSnapshotRefs | 3.6.0 |
#volumeSnapshotRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| volumeSnapshotUuid | String | 云盘快照UUID | 3.6.0 |
| volumeSnapshotGroupUuid | String | 快照组UUID | 3.6.0 |
| deviceId | int | 打快照时云盘的加载序号 | 3.6.0 |
| snapshotDeleted | boolean | 快照是否已经被删除 | 3.6.0 |
| volumeUuid | String | 云盘UUID | 3.6.0 |
| volumeName | String | 云盘的名字 | 3.6.0 |
| volumeType | String | 云盘的类型 | 3.6.0 |
| volumeSnapshotInstallPath | String | 快照的安装路径 | 3.6.0 |
| volumeSnapshotName | String | 快照的名字 | 3.6.0 |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
SDK示例
Java
SDK
QueryVolumeSnapshotGroupAction action = new QueryVolumeSnapshotGroupAction();
action.conditions = asList("uuid=102cde8f217430aaaf5652460adb7d7e");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVolumeSnapshotGroupAction.Result res = action.call();Python
SDK
QueryVolumeSnapshotGroupAction action = QueryVolumeSnapshotGroupAction()
action.conditions = ["uuid=3ad89f9fbe823083b1918f872381a1f5"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVolumeSnapshotGroupAction.Result res = action.call()检查快照组可用性(CheckVolumeSnapshotGroupAvailability)
API请求
URLs
GET zstack/v1/volume-snapshots/groups/availabilitiesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/volume-snapshots/groups/availabilities?uuids=cc389f9eb3223c698f565621d2abcf72参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuids | List | query | 快照组UUIDs | 3.6.0 | |
| systemTags (可选) | List | query | 3.6.0 | ||
| userTags (可选) | List | query | 3.6.0 |
API返回
返回示例
{
"results": [
{
"uuid": "78dd38e3e58134cead860f270143a474",
"available": true,
"reason": ""
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| results | List | 详情参考results | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.6.0 |
| description | String | 错误的概要描述 | 3.6.0 |
| details | String | 错误的详细信息 | 3.6.0 |
| elaboration | String | 保留字段,默认为null | 3.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.6.0 |
#results
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.6.0 |
| available | boolean | 是否可以恢复 | 3.6.0 |
| reason | String | 不可恢复的理由,如可恢复则为空 | 3.6.0 |
SDK示例
Java
SDK
CheckVolumeSnapshotGroupAvailabilityAction action = new CheckVolumeSnapshotGroupAvailabilityAction();
action.uuids = asList("cc389f9eb3223c698f565621d2abcf72");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CheckVolumeSnapshotGroupAvailabilityAction.Result res = action.call();Python
SDK
CheckVolumeSnapshotGroupAvailabilityAction action = CheckVolumeSnapshotGroupAvailabilityAction()
action.uuids = [cc389f9eb3223c698f565621d2abcf72]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CheckVolumeSnapshotGroupAvailabilityAction.Result res = action.call()恢复快照组(RevertVmFromSnapshotGroup)
API请求
URLs
PUT zstack/v1/volume-snapshots/group/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"revertVmFromSnapshotGroup": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"revertVmFromSnapshotGroup":{}}' http://localhost:8080/zstack/v1/volume-snapshots/group/37050441a903313297e65e09ccbeb30f/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 快照组的UUID | 3.6.0 | |
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
RevertVmFromSnapshotGroupAction action = new RevertVmFromSnapshotGroupAction();
action.uuid = "37050441a903313297e65e09ccbeb30f";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RevertVmFromSnapshotGroupAction.Result res = action.call();Python
SDK
RevertVmFromSnapshotGroupAction action = RevertVmFromSnapshotGroupAction()
action.uuid = "37050441a903313297e65e09ccbeb30f"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RevertVmFromSnapshotGroupAction.Result res = action.call()回滚最新创建的快照(UndoSnapshotCreation)
API请求
URLs
PUT zstack/v1/volumes/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"undoSnapshotCreation": {
"snapShotUuid": "7677380457d136629f44c93c99978acc"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"undoSnapshotCreation":{"snapShotUuid":"7677380457d136629f44c93c99978acc"}}' http://localhost:8080/zstack/v1/volumes/7fc32ad187c939d8aca65977560c2714/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 云盘的UUID,唯一标示该资源 | 4.8.0 | |
| snapShotUuid | String | body(包含在undoSnapshotCreation结构中) | 4.8.0 | ||
| systemTags (可选) | List | body | 系统标签 | 4.8.0 | |
| userTags (可选) | List | body | 用户标签 | 4.8.0 |
API返回
返回示例
{
"inventory": {
"uuid": "7c3af161f36e3c2ca8661e8f825a9a4d",
"name": "test-volume",
"primaryStorageUuid": "c5b8c1bc2db337ac83b5a867046e145d",
"vmInstanceUuid": "d6d25288e0973da58921dc13cb58c653",
"diskOfferingUuid": "5547f17f3df234278ce7f44bb8fdf131",
"rootImageUuid": "a976ad9fc6493bd88ea7ef05e9028dc1",
"installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-7c3af161f36e3c2ca8661e8f825a9a4d/7c3af161f36e3c2ca8661e8f825a9a4d.qcow2",
"type": "Root",
"format": "qcow2",
"size": 107374182400,
"actualSize": 21474836480,
"deviceId": 0,
"state": "Enabled",
"status": "Ready",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.8.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.8.0 |
| inventory | VolumeInventory | 详情参考inventory | 4.8.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.8.0 |
| description | String | 错误的概要描述 | 4.8.0 |
| details | String | 错误的详细信息 | 4.8.0 |
| elaboration | String | 保留字段,默认为null | 4.8.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.8.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.8.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.8.0 |
| name | String | 资源名称 | 4.8.0 |
| description | String | 资源的详细描述 | 4.8.0 |
| primaryStorageUuid | String | 主存储UUID | 4.8.0 |
| vmInstanceUuid | String | 云主机UUID | 4.8.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.8.0 |
| rootImageUuid | String | 4.8.0 | |
| installPath | String | 4.8.0 | |
| type | String | 4.8.0 | |
| format | String | 4.8.0 | |
| size | Long | 4.8.0 | |
| actualSize | Long | 4.8.0 | |
| deviceId | Integer | 4.8.0 | |
| state | String | 4.8.0 | |
| status | String | 4.8.0 | |
| createDate | Timestamp | 创建时间 | 4.8.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.8.0 |
| isShareable | Boolean | 4.8.0 | |
| volumeQos | String | 4.8.0 | |
| lastDetachDate | Timestamp | 4.8.0 | |
| lastVmInstanceUuid | String | 4.8.0 |
SDK示例
Java
SDK
UndoSnapshotCreationAction action = new UndoSnapshotCreationAction();
action.uuid = "7fc32ad187c939d8aca65977560c2714";
action.snapShotUuid = "7677380457d136629f44c93c99978acc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UndoSnapshotCreationAction.Result res = action.call();Python
SDK
UndoSnapshotCreationAction action = UndoSnapshotCreationAction()
action.uuid = "7fc32ad187c939d8aca65977560c2714"
action.snapShotUuid = "7677380457d136629f44c93c99978acc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UndoSnapshotCreationAction.Result res = action.call()解绑快照组(UngroupVolumeSnapshotGroup)
API请求
URLs
DELETE zstack/v1/volume-snapshots/ungroup/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/volume-snapshots/ungroup/8903cef5a11c3457881bfd7bd5f04757参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 快照组的UUID | 3.6.0 | |
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
UngroupVolumeSnapshotGroupAction action = new UngroupVolumeSnapshotGroupAction();
action.uuid = "8903cef5a11c3457881bfd7bd5f04757";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UngroupVolumeSnapshotGroupAction.Result res = action.call();Python
SDK
UngroupVolumeSnapshotGroupAction action = UngroupVolumeSnapshotGroupAction()
action.uuid = "8903cef5a11c3457881bfd7bd5f04757"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UngroupVolumeSnapshotGroupAction.Result res = action.call()获取资源被引用的内存快照组(GetMemorySnapshotGroupReference)
API请求
URLs
GET zstack/v1/memory-snapshots/group/referenceHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/memory-snapshots/group/reference?resourceUuid=293e9dd057c831608cf59cd377ba0d03&resourceType=L3NetworkVO参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| resourceUuid | String | query | 资源UUID | 4.4.24 | |
| resourceType | String | query | 资源类型 | 4.4.24 | |
| systemTags (可选) | List | query | 系统标签 | 4.4.24 | |
| userTags (可选) | List | query | 用户标签 | 4.4.24 |
API返回
{
"inventories": [
{
"uuid": "22f6a9534922339f95c15db177ac2c75",
"snapshotCount": 1.0,
"name": "group",
"vmInstanceUuid": "e5c0251850be3ffe85db33e7ecf12b75",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"volumeSnapshotRefs": [
{
"volumeSnapshotUuid": "bfb9af2450753ac292c46c3afcadd7a6",
"volumeSnapshotGroupUuid": "22f6a9534922339f95c15db177ac2c75",
"deviceId": 0.0,
"snapshotDeleted": false,
"volumeUuid": "976ab88982753cc8951efd915b76573f",
"volumeName": "ROOT-volume",
"volumeType": "Root",
"volumeSnapshotInstallPath": "/zstack_ps/to/path/snap.qcow2",
"volumeSnapshotName": "group-ROOT-volume",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}
],
"resourceUuid": "c8a0949c175c380db27cc5c78e8d01f7"
}
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| resourceUuid | String | 资源UUID | 4.4.24 |
| success | boolean | 4.4.24 | |
| inventories | List | 详情参考inventories | 4.4.24 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.4.24 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.4.24 |
| snapshotCount | Integer | 组内快照数量 | 4.4.24 |
| name | String | 资源名称 | 4.4.24 |
| description | String | 资源的详细描述 | 4.4.24 |
| vmInstanceUuid | String | 云主机UUID | 4.4.24 |
| createDate | Timestamp | 创建时间 | 4.4.24 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.4.24 |
| volumeSnapshotRefs | List | 详情参考volumeSnapshotRefs | 4.4.24 |
#volumeSnapshotRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| volumeSnapshotUuid | String | 云盘快照UUID | 4.4.24 |
| volumeSnapshotGroupUuid | String | 快照组UUID | 4.4.24 |
| deviceId | int | 打快照时云盘的加载序号 | 4.4.24 |
| snapshotDeleted | boolean | 快照是否已经被删除 | 4.4.24 |
| volumeUuid | String | 云盘UUID | 4.4.24 |
| volumeName | String | 云盘的名字 | 4.4.24 |
| volumeType | String | 云盘的类型 | 4.4.24 |
| volumeSnapshotInstallPath | String | 快照的安装路径 | 4.4.24 |
| volumeSnapshotName | String | 快照的名字 | 4.4.24 |
| createDate | Timestamp | 创建时间 | 4.4.24 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.4.24 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.4.24 |
| description | String | 错误的概要描述 | 4.4.24 |
| details | String | 错误的详细信息 | 4.4.24 |
| elaboration | String | 保留字段,默认为null | 4.4.24 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.4.24 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.4.24 |
SDK示例
Java
SDK
GetMemorySnapshotGroupReferenceAction action = new GetMemorySnapshotGroupReferenceAction();
action.resourceUuid = "293e9dd057c831608cf59cd377ba0d03";
action.resourceType = "L3NetworkVO";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMemorySnapshotGroupReferenceAction.Result res = action.call();Python
SDK
GetMemorySnapshotGroupReferenceAction action = GetMemorySnapshotGroupReferenceAction()
action.resourceUuid = "293e9dd057c831608cf59cd377ba0d03"
action.resourceType = "L3NetworkVO"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetMemorySnapshotGroupReferenceAction.Result res = action.call()