
# 查询任务的执行状态 - ShowJob
#### 功能介绍
查询一个异步请求任务（Job）的执行状态。
对于创建云服务器、删除云服务器、云服务器批量操作和网卡操作等异步API，命令下发后，会返回任务ID（Job_id），通过Job_id可以查询本次异步请求任务的执行状态。
如何获取job_id，请参考[响应（任务类）](https://support.huaweicloud.com/api-ecs/ecs_07_0005.html)。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ECS&api=ShowJob)中调试该接口。
#### URI
GET /v1/{project_id}/jobs/{job_id}
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| project_id | 是    | **参数解释：** 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| job_id     | 是    | **参数解释：** 异步请求的任务ID，可通过异步请求任务的响应消息获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                  |
   
#### 请求消息
无
#### 响应消息
响应参数如[表2]所示。
 表2响应参数 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| status      | String | **参数解释：** Job的状态。 说明： SUCCESS、FAIL状态的Job，待1天后自动清理。 PENDING_PAYMENT状态为创建或者变更包年/包月的弹性云服务器提交订单完成后待支付状态。如果订单取消，该状态不会自动刷新，待14天后job会自动清理。 **取值范围：** - SUCCESS：成功。  - RUNNING：运行中。  - FAIL：失败。  - INIT：正在初始化。  - PENDING_PAYMENT : 包年/包月订单待支付。                                                                                                                                                                                                    |
| entities    | Object | **参数解释：** Job操作的对象。根据不同Job类型，显示不同的内容。详情请参见[表3]。 **取值范围：** - server_id：云服务器相关操作。  - nic_id：网卡相关操作。  - 子job详情：有子Job时为子job的详情。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| job_id      | String | **参数解释：** 异步请求的任务ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| job_type    | String | **参数解释：** 异步请求的任务类型。 **取值范围：** 以下仅列举部分常见的任务类型，实际请以响应结果为准。 任务类型为对应的异步请求接口，例如： - 创建ECS：createServer  - 创建单台ECS：createSingleServer  - 变更规格：resizeServer  - 切换操作系统：changeOS  - 重装操作系统：reInitOs  - 挂载磁盘：attachVolume  - 卸载磁盘：detachVolume  - 删除ECS：deleteVMs   |
| begin_time  | String | **参数解释：** 开始时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| end_time    | String | **参数解释：** 结束时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| error_code  | String | **参数解释：** Job执行失败时的错误码。 **取值范围：** Job执行成功后，该值为null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| fail_reason | String | **参数解释：** Job执行失败时的错误原因。 **取值范围：** Job执行成功后，该值为null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| message     | String | **参数解释：** 查询Job的API请求出现错误时，返回的错误消息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| code        | String | **参数解释：** 查询Job的API请求出现错误时，返回的错误码。 错误码和其对应的含义请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表3entities字段数据结构说明 
| 参数             | 参数类型             | 描述                                                                                                                                                                                                         |
|:---|:---|:---|
| server_id      | String           | **参数解释：** 云服务器相关操作显示server_id。 **取值范围：** 不涉及                                                                    |
| nic_id         | String           | **参数解释：** 网卡相关操作显示nic_id。 **取值范围：** 不涉及                                                                           |
| sub_jobs_total | Integer          | **参数解释：** 子任务数量。 **取值范围：** 不涉及                                                                                    |
| sub_jobs       | Array of objects | **参数解释：** 每个子任务的执行信息。 详情请参见[表4] **取值范围：** 不涉及 |
   
 表4sub_jobs字段数据结构说明 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| status      | String | **参数解释：** Job的状态。 **取值范围：** - SUCCESS：成功。  - RUNNING：运行中。  - FAIL：失败。  - INIT：正在初始化。                                                                                                                                                                                                                                        |
| entities    | Object | **参数解释：** Job操作的对象。根据不同Job类型，显示不同的内容。 **取值范围：** - server_id：云服务器相关操作。  - nic_id：网卡相关操作显示。   更多字段描述请参见[表5]。                                                                                                                                                                                                                                                                                                           |
| job_id      | String | **参数解释：** 子任务的ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| job_type    | String | **参数解释：** 子任务的类型。 **取值范围：** 以下仅列举部分常见的任务类型，实际请以响应结果为准。 任务类型为对应的异步请求接口，例如： - 创建单台ECS：createSingleServer  - 变更规格：resizeServer  - 挂载磁盘：attachVolume  - 卸载磁盘：detachVolume  - 删除ECS：deleteVM   |
| begin_time  | String | **参数解释：** 开始时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| end_time    | String | **参数解释：** 结束时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| error_code  | String | **参数解释：** Job执行失败时的错误码。 **取值范围：** Job执行成功后，该值为null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| fail_reason | String | **参数解释：** Job执行失败时的错误原因。 **取值范围：** Job执行成功后，该值为null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表5sub_jobs.entities字段数据结构说明 
| 参数                | 参数类型   | 描述                                                                                                                                    |
|:---|:---|:---|
| server_id         | String | **参数解释：** 云服务器相关操作显示server_id。 **取值范围：** 不涉及 |
| nic_id            | String | **参数解释：** 网卡相关操作显示nic_id。 **取值范围：** 不涉及       |
| errorcode_message | String | **参数解释：** 子任务执行失败的具体原因。 **取值范围：** 不涉及      |
   
#### 请求示例
查询一个异步请求任务（Job）的执行状态。
```
GET https://{endpoint}/v1/{project_id}/jobs/{job_id}
```
#### 响应示例
```
{
    "status": "SUCCESS",
    "entities": {
        "sub_jobs_total": 1,
        "sub_jobs": [
            {
                "status": "SUCCESS",
                "entities": {
                    "server_id": "bae51750-0089-41a1-9b18-5c777978ff6d"
                },
                "job_id": "2c9eb2c5544cbf6101544f0635672b60",
                "job_type": "createSingleServer",
                "begin_time": "2016-04-25T20:04:47.591Z",
                "end_time": "2016-04-25T20:08:21.328Z",
                "error_code": null,
                "fail_reason": null
            }
        ]
    },
    "job_id": "2c9eb2c5544cbf6101544f0602af2b4f",
    "job_type": "createServer",
    "begin_time": "2016-04-25T20:04:34.604Z",
    "end_time": "2016-04-25T20:08:41.593Z",
    "error_code": null,
    "fail_reason": null
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
