CBT相关接口
创建CBT任务(CreateCbtTask)
API请求
URLs
POST zstack/v1/cbt-task/createHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "My CDP Task",
"vmInstanceUuid": "89878e17496030ba9c062cbb18924335"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"My CDP Task","vmInstanceUuid":"89878e17496030ba9c062cbb18924335"}}' http://localhost:8080/zstack/v1/cbt-task/create参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 5.3.28 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 5.3.28 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 5.3.28 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 5.3.28 | |
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 |
API返回
返回示例
{
"inventory": {
"uuid": "b70f4160919c38748f908f489ba306ce",
"name": "My Task",
"status": "Created"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 5.3.28 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 5.3.28 |
| inventory | CbtTaskInventory | 详情参考inventory | 5.3.28 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 5.3.28 |
| description | String | 错误的概要描述 | 5.3.28 |
| details | String | 错误的详细信息 | 5.3.28 |
| elaboration | String | 保留字段,默认为null | 5.3.28 |
| opaque | LinkedHashMap | 保留字段,默认为null | 5.3.28 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 5.3.28 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 5.3.28 |
| name | String | 资源名称 | 5.3.28 |
| description | String | 资源的详细描述 | 5.3.28 |
| createDate | Timestamp | 创建时间 | 5.3.28 |
| lastOpDate | Timestamp | 最后一次修改时间 | 5.3.28 |
| status | CbtTaskStatus | 详情参考status | 5.3.28 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | CbtTaskStatus | 已创建 | 5.3.28 |
| Starting | CbtTaskStatus | 启动中 | 5.3.28 |
| Running | CbtTaskStatus | 运行中 | 5.3.28 |
| Stopped | CbtTaskStatus | 停止 | 5.3.28 |
| Failed | CbtTaskStatus | 失败 | 5.3.28 |
SDK示例
Java
SDK
CreateCbtTaskAction action = new CreateCbtTaskAction();
action.name = "My CDP Task";
action.vmInstanceUuid = "89878e17496030ba9c062cbb18924335";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateCbtTaskAction.Result res = action.call();Python
SDK
CreateCbtTaskAction action = CreateCbtTaskAction()
action.name = "My CDP Task"
action.vmInstanceUuid = "89878e17496030ba9c062cbb18924335"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateCbtTaskAction.Result res = action.call()删除CBT任务(DeleteCbtTask)
API请求
URLs
DELETE zstack/v1/cbt-task/{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/cbt-task/7017b8d5bef63877a528a5f56517c829参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 5.3.28 | |
| force (可选) | boolean | body | 5.3.28 | ||
| deleteMode (可选) | String | body | 删除模式(Permissive / Enforcing,Permissive) | 5.3.28 | |
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 |
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
DeleteCbtTaskAction action = new DeleteCbtTaskAction();
action.uuid = "7017b8d5bef63877a528a5f56517c829";
action.force = false;
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteCbtTaskAction.Result res = action.call();Python
SDK
DeleteCbtTaskAction action = DeleteCbtTaskAction()
action.uuid = "7017b8d5bef63877a528a5f56517c829"
action.force = false
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteCbtTaskAction.Result res = action.call()查询CBT任务(QueryCbtTask)
API请求
URLs
GET zstack/v1/cbt-taskGET zstack/v1/cbt-task/{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/cbt-task?q=uuid=d6c3daab1c9b3274b5fc4088bd3e51adcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/cbt-task/cf426711ed6538069d2d4d6d34d5e60a可查询字段
运行zstack-cli命令行工具,输入QueryCbtTask并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "103f6f8dc6dc3f8b82c1e1923dc751e0",
"name": "My Task",
"status": "Running"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 5.3.28 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 5.3.28 |
| inventories | List | 详情参考inventories | 5.3.28 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 5.3.28 |
| description | String | 错误的概要描述 | 5.3.28 |
| details | String | 错误的详细信息 | 5.3.28 |
| elaboration | String | 保留字段,默认为null | 5.3.28 |
| opaque | LinkedHashMap | 保留字段,默认为null | 5.3.28 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 5.3.28 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 5.3.28 |
| name | String | 资源名称 | 5.3.28 |
| description | String | 资源的详细描述 | 5.3.28 |
| createDate | Timestamp | 创建时间 | 5.3.28 |
| lastOpDate | Timestamp | 最后一次修改时间 | 5.3.28 |
| status | CbtTaskStatus | 详情参考status | 5.3.28 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | CbtTaskStatus | 已创建 | 5.3.28 |
| Starting | CbtTaskStatus | 启动中 | 5.3.28 |
| Running | CbtTaskStatus | 运行中 | 5.3.28 |
| Stopped | CbtTaskStatus | 停止 | 5.3.28 |
| Failed | CbtTaskStatus | 失败 | 5.3.28 |
SDK示例
Java
SDK
QueryCbtTaskAction action = new QueryCbtTaskAction();
action.conditions = asList("uuid=bd8fa811d9c234ceada09446fa085967");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryCbtTaskAction.Result res = action.call();Python
SDK
QueryCbtTaskAction action = QueryCbtTaskAction()
action.conditions = ["uuid=0449908917ce338bba71c107848b7c5c"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryCbtTaskAction.Result res = action.call()启动CBT任务(EnableCbtTask)
API请求
URLs
POST zstack/v1/cbt-task/enable/{uuid}Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"bitmapName": ""
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"bitmapName":""}}' http://localhost:8080/zstack/v1/cbt-task/enable/adced083701e39869540ee2af82da0da参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 5.3.28 | |
| bitmapName (可选) | String | body(包含在params结构中) | 5.3.28 | ||
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 |
API返回
返回示例
{
"volumeCbtBackupInfos": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 5.3.28 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 5.3.28 |
| inventory | CbtTaskInventory | 详情参考inventory | 5.3.28 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 5.3.28 |
| description | String | 错误的概要描述 | 5.3.28 |
| details | String | 错误的详细信息 | 5.3.28 |
| elaboration | String | 保留字段,默认为null | 5.3.28 |
| opaque | LinkedHashMap | 保留字段,默认为null | 5.3.28 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 5.3.28 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 5.3.28 |
| name | String | 资源名称 | 5.3.28 |
| description | String | 资源的详细描述 | 5.3.28 |
| createDate | Timestamp | 创建时间 | 5.3.28 |
| lastOpDate | Timestamp | 最后一次修改时间 | 5.3.28 |
| status | CbtTaskStatus | 详情参考status | 5.3.28 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | CbtTaskStatus | 已创建 | 5.3.28 |
| Starting | CbtTaskStatus | 启动中 | 5.3.28 |
| Running | CbtTaskStatus | 运行中 | 5.3.28 |
| Stopped | CbtTaskStatus | 停止 | 5.3.28 |
| Failed | CbtTaskStatus | 失败 | 5.3.28 |
SDK示例
Java
SDK
EnableCbtTaskAction action = new EnableCbtTaskAction();
action.uuid = "adced083701e39869540ee2af82da0da";
action.bitmapName = "";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
EnableCbtTaskAction.Result res = action.call();Python
SDK
EnableCbtTaskAction action = EnableCbtTaskAction()
action.uuid = "adced083701e39869540ee2af82da0da"
action.bitmapName = ""
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
EnableCbtTaskAction.Result res = action.call()停止CBT任务(DisableCbtTask)
API请求
URLs
POST zstack/v1/cbt-task/disable/{uuid}Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"force": false
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"force":false}}' http://localhost:8080/zstack/v1/cbt-task/disable/5a86262807b4363e95f2e57d2970d189参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 5.3.28 | |
| force (可选) | boolean | body(包含在params结构中) | 是否强制 | 5.3.28 | |
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 |
API返回
返回示例
{
"inventory": {
"uuid": "5ca9c15a50c53f0dac359a64841d7b2b",
"name": "My Task",
"status": "Stopped"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 5.3.28 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 5.3.28 |
| CBT任务的详细信息 | CbtTaskInventory | 详情参考CBT任务的详细信息 | 5.3.28 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 5.3.28 |
| description | String | 错误的概要描述 | 5.3.28 |
| details | String | 错误的详细信息 | 5.3.28 |
| elaboration | String | 保留字段,默认为null | 5.3.28 |
| opaque | LinkedHashMap | 保留字段,默认为null | 5.3.28 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 5.3.28 |
#CBT任务的详细信息
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 5.3.28 |
| name | String | 资源名称 | 5.3.28 |
| description | String | 资源的详细描述 | 5.3.28 |
| createDate | Timestamp | 创建时间 | 5.3.28 |
| lastOpDate | Timestamp | 最后一次修改时间 | 5.3.28 |
| status | CbtTaskStatus | 详情参考status | 5.3.28 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | CbtTaskStatus | 已创建 | 5.3.28 |
| Starting | CbtTaskStatus | 启动中 | 5.3.28 |
| Running | CbtTaskStatus | 运行中 | 5.3.28 |
| Stopped | CbtTaskStatus | 停止 | 5.3.28 |
| Failed | CbtTaskStatus | 失败 | 5.3.28 |
SDK示例
Java
SDK
DisableCbtTaskAction action = new DisableCbtTaskAction();
action.uuid = "5a86262807b4363e95f2e57d2970d189";
action.force = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DisableCbtTaskAction.Result res = action.call();Python
SDK
DisableCbtTaskAction action = DisableCbtTaskAction()
action.uuid = "5a86262807b4363e95f2e57d2970d189"
action.force = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DisableCbtTaskAction.Result res = action.call()暴露云盘为NBD设备(ExportNbdVolumes)
API请求
URLs
POST zstack/v1/cbt-task/exportvolumeHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"volumeUuids": [
"8d7de4e1c3b73fc49772b0fef78b0fc7"
],
"vmInstanceUuid": "7d8c1dec326c3230be08d3c82fb7a476",
"force": false
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"volumeUuids":["8d7de4e1c3b73fc49772b0fef78b0fc7"],"vmInstanceUuid":"7d8c1dec326c3230be08d3c82fb7a476","force":false}}' http://localhost:8080/zstack/v1/cbt-task/exportvolume参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| volumeUuids | List | body(包含在params结构中) | 云盘UUID列表 | 5.3.28 | |
| vmInstanceUuid | String | body(包含在params结构中) | 云主机UUID | 5.3.28 | |
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 | |
| force (可选) | boolean | body(包含在params结构中) | 强制 | 5.3.28 |
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
ExportNbdVolumesAction action = new ExportNbdVolumesAction();
action.volumeUuids = asList("8d7de4e1c3b73fc49772b0fef78b0fc7");
action.vmInstanceUuid = "7d8c1dec326c3230be08d3c82fb7a476";
action.force = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ExportNbdVolumesAction.Result res = action.call();Python
SDK
ExportNbdVolumesAction action = ExportNbdVolumesAction()
action.volumeUuids = [8d7de4e1c3b73fc49772b0fef78b0fc7]
action.vmInstanceUuid = "7d8c1dec326c3230be08d3c82fb7a476"
action.force = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ExportNbdVolumesAction.Result res = action.call()停止暴露云盘为NBD设备(UnexportNbdVolumes)
API请求
URLs
POST zstack/v1/cbt-task/unexportvolumeHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"volumeUuids": [
"82eaf8972ece3e228b6f75f61f8749d9"
],
"vmInstanceUuid": "6456713db34a3d7e96c7e132179c413d"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"volumeUuids":["82eaf8972ece3e228b6f75f61f8749d9"],"vmInstanceUuid":"6456713db34a3d7e96c7e132179c413d"}}' http://localhost:8080/zstack/v1/cbt-task/unexportvolume参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| volumeUuids | List | body(包含在params结构中) | 云盘UUID列表 | 5.3.28 | |
| vmInstanceUuid | String | body(包含在params结构中) | 云主机UUID | 5.3.28 | |
| systemTags (可选) | List | body | 系统标签 | 5.3.28 | |
| userTags (可选) | List | body | 用户标签 | 5.3.28 |
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
UnexportNbdVolumesAction action = new UnexportNbdVolumesAction();
action.volumeUuids = asList("82eaf8972ece3e228b6f75f61f8749d9");
action.vmInstanceUuid = "6456713db34a3d7e96c7e132179c413d";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UnexportNbdVolumesAction.Result res = action.call();Python
SDK
UnexportNbdVolumesAction action = UnexportNbdVolumesAction()
action.volumeUuids = [82eaf8972ece3e228b6f75f61f8749d9]
action.vmInstanceUuid = "6456713db34a3d7e96c7e132179c413d"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UnexportNbdVolumesAction.Result res = action.call()