DDI API中软发布与强制发布的使用及下载状态判断疑问
区分Hawkbit软发布与强制发布的控制器操作状态
你调用的/controller/v1/[myControllerId]接口仅返回控制器基础配置和核心链接入口,不会携带发布类型的确认要求信息。要判断是否需要确认才能启动下载,你需要进一步请求响应中_links.deploymentBase对应的地址:
- 发起GET请求到返回的
deploymentBasehref地址,比如你提供的http://eslm-hawkbit.dev-eslm.dss.husqvarnagroup.net/DEFAULT/controller/v1/[myControllerId]/deploymentBase/681579?c=-1496966704 - 解析返回的部署数据:
- 软发布(soft rollout)场景下,响应会包含
confirmationRequired: true字段,同时_links里会出现confirm链接,此时必须先调用该confirm接口完成确认,才能启动下载流程 - 强制发布(forced rollout)场景下,
confirmationRequired字段为false(或不存在),且无confirm链接,可直接启动下载
- 软发布(soft rollout)场景下,响应会包含
示例软发布的deploymentBase响应结构:
{ "id": "681579", "confirmationRequired": true, "modules": [ { "name": "example-module", "version": "1.0.0" } ], "_links": { "confirm": { "href": "http://eslm-hawkbit.dev-eslm.dss.husqvarnagroup.net/DEFAULT/controller/v1/[myControllerId]/deploymentBase/681579/confirm" }, "download": { "href": "http://eslm-hawkbit.dev-eslm.dss.husqvarnagroup.net/DEFAULT/controller/v1/[myControllerId]/deploymentBase/681579/download" } } }
这是Hawkbit DDI API的设计逻辑:根接口负责提供控制器的基础上下文,具体部署策略的细节全部封装在deploymentBase接口的响应中。
内容的提问来源于stack exchange,提问作者user22558306
相关产品推荐
相关产品推荐

