Retry OTA Task

重试OTA job中指定的某个设备的OTA升级task。

操作权限

需授权的资源 所需操作权限
设备管理 Full Access

请求格式

POST https://{apigw-address}/connect-service/v2.1/ota-jobs?action=retryTask

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织ID。如何获取orgId信息>>
jobId Query 必需 String OTA task所在的OTA job ID。

请求参数(Body)

名称 必需/可选 数据类型 描述
deviceKeys 必需 String数组 需要重试的设备的device key列表。

错误码

代码 错误信息 描述
24404 Job not found 找不到OTA job。
24617 Job not running OTA job未运行,无法重试。
24621 Only failed tasks can be retried 只能重试失败的OTA job。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=retryTask&orgId=yourOrgId&jobId=yourJobId
method: POST
requestBody: {"deviceKeys":["deviceKey1","deviceKey2"]}

返回示例

{
        "code":0,
        "msg":"OK",
        "requestId":"8e5d4643-1d13-4dd1-8896-e407f16381df",
        "data":null
}

Java SDK调用示例

package com.envisioniot.enos.connect_service.ota.job;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.RetryTaskRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.RetryTaskResponse;
import com.google.common.collect.ImmutableSet;

public class RetryTask {
    public static void main(String[] args) {
        final String appKey = "yourAppKey";
        final String appSecret = "yourAppSecret";
        String serverUrl = "yourServerUrl";

        String orgId = "yourOrgId";
        String jobId = "yourobId";

        RetryTaskRequest request = new RetryTaskRequest();
        request.setOrgId(orgId);

        request.setJobId(jobId);
        request.setDeviceKeys(ImmutableSet.of("deviceKey1","deviceKey2"));

        RetryTaskResponse response = Poseidon
                .config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(request, RetryTaskResponse.class);
    }
}