更新时间:2022-02-24 GMT+08:00

查询指定任务的子任务详情

典型场景

在创建了设备软件升级任务或固件升级任务后,任务中涉及的每个设备的升级是一个子任务(即升级任务中涉及多少个设备,就有多少个子任务)。应用服务器可调用此接口查询某个升级任务中各个子任务的详细信息,以查看子任务的具体执行情况。

接口功能

支持应用服务器在物联网平台查询单个固件或软件升级任务中每个设备的升级执行情况。

接口原型

请求方法

GET

请求地址

https://server:port/iodm/northbound/v1.5.0/operations/{operationId}/subOperations?subOperationStatus={subOperationStatus}&pageNo={pageNo}&pageSize={pageSize}

传输协议

HTTPS

请求参数

参数

必选/可选

类型

位置

描述

app_key

必选

String

header

访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。

Authorization

必选

String

header

访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。

operationId

必选

String

path

操作任务ID,在创建操作任务后由物联网平台返回获得。

subOperationStatus

可选

String

query

子任务状态,不指定,则查询该任务下所有子任务执行详情。

  • wait:等待
  • processing:正在执行
  • fail:失败
  • success:成功
  • stop:停止

pageNo

可选

Integer(>=0)

query

分页查询时指定要查询的页码信息,默认值为0,取值范围为大于等于0的整数,值为0时,查询第一页。

pageSize

可选

Integer[1,100]

query

查询结果分页时的每页结果数量,取值范围1-100,默认值10。

响应参数

Status Code: 200 OK

参数

类型

描述

data

List<SubOperationInfo>

子任务列表信息。

pageNo

Integer(>=0)

查询结果的页码。

pageSize

Integer[1,100]

查询结果每页的记录数量。

totalCount

Integer(>=0)

查询结果的记录总数。

SubOperationInfo:

参数

类型

描述

subOperationId

String

子任务ID。

createTime

String

子任务创建时间,时间格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。。

startTime

String

子任务启动时间,时间格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。。

stopTime

String

子任务停止时间,时间格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。。

operateType

String

操作类型。

  • firmware_upgrade
  • software_upgrade

deviceId

String

操作设备的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。

status

String

子任务状态。

  • wait:等待
  • processing:正在执行
  • fail:失败
  • success:成功
  • stop:停止

detailInfo

String

任务状态的详细描述,对于失败场景下为失败原因。

extendPara

Map<String, String>

任务扩展信息,视不同类型的操作不同。

请求示例

Method: GET
request:
https://server:port/iodm/northbound/v1.5.0/operations/{operationId}/subOperations?subOperationStatus={subOperationStatus}&pageNo={pageNo}&pageSize={pageSize}
Header:
app_key: ******
Authorization: Bearer ******
Content-Type: application/json

响应示例

response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "totalCount": 1,
  "pageNo": 0,
  "pageSize": 1,
  "date": [
    {
      "subOperationId": "**********",
      "createTime": "20151212T121212Z",
      "startTime": "20151212T121212Z",
      "stopTime": null,
      "operateType": "software_upgrade",
      "deviceId": "**********",
      "status": "FAIL",
      "detailInfo": "The task failed to start, unable to find protocol service based on device information",
      "extendInfo": {
        "upgradeTime": null,
        "sourceVersion": null,
        "curVersion": "V1.1.10",
        "downloadTime": null,
        "targetVersion": null
      }
    }
  ]
}

错误码

Http状态码

错误码

错误描述

说明

400

120015

Bad request error.

请求错误。

处理建议:请检查接口请求中fileId的格式是否正确。

400

123029

pageNo or pageSize beyond the limit.

pageNo或pageSize超出上限。

处理建议:修改pageNo或pageSize为合法取值。

403

1010009

app throttle exceed.

应用调用接口过于频繁,超过流控值(默认值是100次/60s)。

处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。

403

1010005

App_key or access_token is invalid.

错误的token信息。

处理建议:请检查接口请求中所携带的accessToken是否有误。

404

123009

The requested task does not exist.

查询的任务不存在。

处理建议:请检查接口请求中的operationId内容是否正确。