文档目录

CBT相关接口

创建CBT任务(CreateCbtTask)

API请求

URLs
POST zstack/v1/cbt-task/create
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "name": "My CDP Task",
    "vmInstanceUuid": "89878e17496030ba9c062cbb18924335"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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-uuid
Curl示例
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-task
GET zstack/v1/cbt-task/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/cbt-task?q=uuid=d6c3daab1c9b3274b5fc4088bd3e51ad
curl -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-uuid
Body
{
  "params": {
    "bitmapName": ""
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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-uuid
Body
{
  "params": {
    "force": false
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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/exportvolume
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "volumeUuids": [
      "8d7de4e1c3b73fc49772b0fef78b0fc7"
    ],
    "vmInstanceUuid": "7d8c1dec326c3230be08d3c82fb7a476",
    "force": false
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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/unexportvolume
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "volumeUuids": [
      "82eaf8972ece3e228b6f75f61f8749d9"
    ],
    "vmInstanceUuid": "6456713db34a3d7e96c7e132179c413d"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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()
开发手册 | 5.4.12 | ZStack Cloud · ZCF | ZStack 资源中心