Get OTA Job

查询一个固件OTA升级job详情。

操作权限

需授权的资源

所需操作权限

设备管理

Read

请求格式

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

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织ID。如何获取orgId信息>>

jobId

Query

必需

String

需要获取详情的OTA job的ID。

响应参数

名称

数据类型

描述

data

JobInfo结构体

OTA job的详情。JobInfo结构体的结构参见 JobInfo结构体>>

JobInfo结构体

名称

数据类型

描述

orgId

String

组织ID。

productKey

String

设备的Product key。

jobId

String

OTA Job ID。

name

StringI18n

Job名称。

firmwareId

String

固件ID。

type

String

任务类型。

  • verify : 固件验证job

  • upgrade : 固件升级job

enableUpgradeRequest

Boolean

是否允许设备主动请求升级。

upgradePolicy

String

升级策略。

  • snapshot : 快照式升级

  • incremental : 增量式升级

其含义参见 升级策略>>

upgradeScope

UpgradeScope结构体

待升级的设备及其固件版本号等信息,待升级的设备及版本号等信息,其结构见 UpgradeScope结构体>>

upgradeTimeout

Long

升级超时时间,当OTA task进入 upgrading 状态时开始计算。单位是秒。你可以使用 Search OTA Task 来查询OTA task的状态。

retryPolicy

RetryPolicy结构体

失败OTA任务重试的策略,其结构见 RetryPolicy结构体>>

schedulePolicy

SchedulePolicy结构体

OTA任务调度的策略,其结构见 SchedulePolicy结构体>>

maximumConcurrency

Integer

升级任务最大并发量。

status

String

任务状态。

  • started :已启动

  • stopped :已停止

createTime

Long

任务的创建时间。

错误码

代码

错误信息

描述

24404

Job not found

找不到OTA job。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=get&orgId=yourOrgId&jobId=yourJobId
method: GET

返回示例

{
    "code":0,
    "msg":"OK",
    "requestId":"42fc4dcd-636b-48ac-a69b-4d2f95d0c3de",
    "data":{
        "orgId":"o15475466766371",
        "productKey":"BXwU4kMk",
        "jobId":"5ed758ca49f032b4663063aa",
        "name":{
            "defaultValue":"name",
            "i18nValue":{

            }
        },
        "firmwareId":"5ed0dd4a646542001b3d113f",
        "type":"upgrade",
        "enableUpgradeRequest":true,
        "upgradePolicy":null,
        "upgradeScope":{
            "type":"total",
            "versionNumbers":[
                "1.0"
            ],
            "deviceKeys":null,
            "attributes":null,
            "tags":null,
            "assetTrees":null
        },
        "startSchedule":0,
        "endSchedule":86399,
        "status":"started",
        "createTime":1591171274788,
        "startAfterCreate":true
    }
}

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.GetJobRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.job.GetJobResponse;

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

        String orgId = "yourOrgId";
        String jobId = "yourJobId";

        GetJobRequest request = new GetJobRequest();
        request.setOrgId(orgId);
        request.setJobId(jobId);

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