Submit Long Job
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": []
}In the above example, the systemTags and userTags fields are optional. They are listed to indicate that these two fields can be included in the body.
Curl Example
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/longjobsParameter List
| Name | Type | Location | Description | Allowed Values | Starting Version |
|---|---|---|---|---|---|
| name (Optional) | String | body (contained in the params structure) | Resource name | 2.3 | |
| description (Optional) | String | body (contained in the params structure) | Detailed description of the resource | 2.3 | |
| jobName | String | body (contained in the params structure) | Job name | 2.3 | |
| jobData | String | body (contained in the params structure) | Job data | 2.3 | |
| resourceUuid (Optional) | String | body (contained in the params structure) | Resource UUID | 2.3 | |
| systemTags (Optional) | List | body | System tags | 2.3 | |
| userTags (Optional) | List | body | User tags | 2.3 | |
| targetResourceUuid (Optional) | String | body (contained in the params structure) | 2.3 |
- ZSvirt uses an identifier to mark the upload of a specific image for this longjob. The IMAGE_ID is specified by the user, typically as an md5 value. Add the uploadImage option to SystemTags.
- Option format:
uploadImage::{IMAGE_ID} - Example:
uploadImage::68b329da9893e34099c7d8ad5cb9c940
API Response
Response example
{
"inventory": {
"uuid": "23598186b9ef35aa89fbebf8f04d497a"
}
}| Name | Type | Description | Starting Version |
|---|---|---|---|
| error | ErrorCode | The error code. If not null, the operation failed. This field is null when the operation succeeds. For details, see error | 2.3 |
| inventory | LongJobInventory | For details, see inventory | 2.3 |
error
| Name | Type | Description | Starting Version |
|---|---|---|---|
| code | String | The error code number. A globally unique identifier for the error, such as SYS.1000, HOST.1001. | 2.3 |
| description | String | A brief description of the error | 2.3 |
| details | String | The detailed error information | 2.3 |
| elaboration | String | A reserved field. Default is null. | 2.3 |
| opaque | LinkedHashMap | A reserved field. Default is null. | 2.3 |
| cause | ErrorCode | The root error. The source error that caused the current error. This field is null if there is no root error. | 2.3 |
inventory
| Name | Type | Description | Starting Version |
|---|---|---|---|
| uuid | String | The UUID of the resource. Uniquely identifies the resource. | 2.3 |
| name | String | Resource name | 2.3 |
| description | String | Detailed description of the resource | 2.3 |
| apiId | String | The API ID used to associate with TaskProgress | 2.3 |
| jobName | String | Job name | 2.3 |
| jobData | String | Job data | 2.3 |
| jobResult | String | Job result | 2.3 |
| targetResourceUuid | String | Target resource UUID | 2.3 |
| managementNodeUuid | String | Management node UUID | 2.3 |
| createDate | Timestamp | Creation time | 2.3 |
| lastOpDate | Timestamp | Last modification time | 2.3 |
| state | LongJobState | For details, see state | 2.3 |
state
| Name | Type | Description | Starting Version |
|---|---|---|---|
| name | String | Resource name | 2.3 |
| ordinal | int | 2.3 |
SDK Examples
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()