【已评审】后端任务机制新增预估完成时间、任务描述、任务阶段属性

关联issue

后端任务机制新增属性

背景

客户对任务机制存在定制诉求,同时也针对redfish task资源标准能力存在诉求

  1. 当前后台任务机制尚未支持标准redfish资源预估完成时间参考链接(6.137小节 Task 1.7.4),无法满足业务诉求。后端task资源需要支持预估完成时间,供相关业务在自身任务对象上更新EstimatedDuration属性,属性满足ISO 8601持续时间格式:P(n)Y(n)M(n)DT(n)H(n)M(n)S参考链接

  2. 客户对升级阶段属性(Stage)有诉求,当前业务在固件升级场景中无法满足此诉求,需后端任务机制定制属性 Stage,表示任务阶段,供业务更新任务阶段属性。Stage属性为非redfish标准规范资源,需要自定义。

  3. redfish任务资源需提供标准规范Description字段参考链接,作为任务的详细描述信息。当前有一个Name字段表示某个任务的描述,但实际友商中的Name和Description描述的信息并不相同;另外任务描述信息和业务强相关,接口层无法判断任务类型,只能通过task资源树来增加。

决策点

bmc.kepler.TaskService.Task资源协作接口新增属性:EstimatedDuration、Description、Stage

整体架构/方案

针对客户诉求,后端任务机制修改方案如下:

1.后端任务公共机制新增EstimatedDuration属性,供业务组件更新预估任务完成时间

2.增加Stage属性表示任务的阶段,还需要提供Description属性,供业务配置任务描述信息

redfish异步任务执行时,可以通过/redfish/v1/TaskService/Tasks/{task_id}查看任务信息是否包含上述属性

详细描述

path:/bmc/kepler/UpdateService/TaskService/Tasks/:TaskId

interface:bmc.kepler.TaskService.Task

属性名称 变更类型 签名 权限 读写 持久化 变化通知 描述 备注
EstimatedDuration 新增 u ReadOnly ro - false 预估任务完成所需的总时间 单位:秒。在任务进行期间,该值预计不会发生变化,但如果服务获取到显著改变预期持续时间的新信息,则可以更新该值。服务在报告预估时应保持保守态度,客户端应将此值视为估计值
Description 新增 s ReadOnly ro - false 任务描述 默认为空串
Stage 新增 s ReadOnly ro - false 任务阶段 表示任务的阶段,由组件服务设置该属性,默认为空串

评审结论

评审通过,同意在资源协作接口 bmc.kepler.TaskService.Task 新增以下3个属性:
EstimatedDuration,表示预估任务完成所需的总时间,单位:秒,签名为 u,只读属性,权限:ReadOnly, 不发送变更通知事件。
Description,表示任务的描述信息,签名为 s,只读属性,权限:ReadOnly,不发送变更通知事件
Stage,表示任务的阶段,签名为 s,只读属性,权限:ReadOnly,不发送变更通知事件

遗留事项:

  1. 预估完成时间属性描述不准确:预估完成任务总时间
  2. 预估完成时间类型不合适

1.EstimatedDuration属性描述:预估完成时间修改为预估完成任务所需总时间,在备注中补充该属性的描述
2. EstimatedDuration属性:类型由s变更为u,单位:秒