提交长时任务
Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "migrate-volume",
"description": "migrate volume to another Ceph primary storage",
"jobName": "APIPrimaryStorageMigrateVolumeMsg",
"jobData": "{\"volumeUuid\":\"45a53d3d93384433add8ead7616586cf\", \"dstPrimaryStorageUuid\":\"70a0618804864b3dabe8be9824c8028c\"}",
"targetResourceUuid": "45a53d3d93384433add8ead7616586cf"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"migrate-volume","description":"migrate volume to another Ceph primary storage","jobName":"APIPrimaryStorageMigrateVolumeMsg","jobData":"{\"volumeUuid\":\"45a53d3d93384433add8ead7616586cf\", \"dstPrimaryStorageUuid\":\"70a0618804864b3dabe8be9824c8028c\"}","targetResourceUuid":"45a53d3d93384433add8ead7616586cf"}}' \
http://localhost:8080/zstack/v1/longjobs参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name (可选) | String | body(包含在params结构中) | 资源名称 | 2.3 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 2.3 | |
| jobName | String | body(包含在params结构中) | 任务名称 | 2.3 | |
| jobData | String | body(包含在params结构中) | 任务数据 | 2.3 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 | |
| targetResourceUuid (可选) | String | body(包含在params结构中) | 2.3 |
- ZSvirt使用标识去标记该longjob上传特定镜像,IMAGE_ID由用户指定,一般为 md5,SystemTags增加uploadImage选项。
- 选项格式为:
uploadImage::{IMAGE_ID} - 例如:
uploadImage::68b329da9893e34099c7d8ad5cb9c940
API返回
返回示例
{
"inventory": {
"uuid": "23598186b9ef35aa89fbebf8f04d497a"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | LongJobInventory | 详情参考inventory | 2.3 |
error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| apiId | String | 用于关联TaskProgress的APIID | 2.3 |
| jobName | String | 任务名称 | 2.3 |
| jobData | String | 任务数据 | 2.3 |
| jobResult | String | 任务结果 | 2.3 |
| targetResourceUuid | String | 目标资源UUID | 2.3 |
| managementNodeUuid | String | 管理节点UUID | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| state | LongJobState | 详情参考state | 2.3 |
state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.3 |
| ordinal | int | 2.3 |
SDK示例
Java SDK
SubmitLongJobAction action = new SubmitLongJobAction();
action.name = "migrate-volume";
action.description = "migrate volume to another Ceph primary storage";
action.jobName = "APIPrimaryStorageMigrateVolumeMsg";
action.jobData = "{"volumeUuid":"45a53d3d93384433add8ead7616586cf", "dstPrimaryStorageUuid":"70a0618804864b3dabe8be9824c8028c"}";
action.targetResourceUuid = "45a53d3d93384433add8ead7616586cf";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
SubmitLongJobAction.Result res = action.call();Python SDK
SubmitLongJobAction action = SubmitLongJobAction()
action.name = "migrate-volume"
action.description = "migrate volume to another Ceph primary storage"
action.jobName = "APIPrimaryStorageMigrateVolumeMsg"
action.jobData = "{"volumeUuid":"45a53d3d93384433add8ead7616586cf", "dstPrimaryStorageUuid":"70a0618804864b3dabe8be9824c8028c"}"
action.targetResourceUuid = "45a53d3d93384433add8ead7616586cf"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
SubmitLongJobAction.Result res = action.call()