【已评审】新增属性支持记录BMC固件升级状态

关联issue

暂无

背景(必填,文字描述议题背景,如需求来源、问题场景)

需求

客户需求,需要在BMC升级触发时记录FW_Update传感器事件,记录BMC固件开始升级

现状

当前 BMC 在升级完成之后会记录升级成功和失败的原子能力接口,没有记录升级过程的原子能力

方案

定义资源协作接口属性,表征当前固件的升级阶段,并且枚举出升级阶段的取值

评审点

升级管理的资源协作接口增加表示升级阶段的属性

详细描述

升级管理 bmc.kepler.UpdateService.UpdateMgmt 接口新增属性 UpdateStage,表征固件的升级阶段。属性详细描述如下:

资源path(已有)/bmc/kepler/UpdateService/UpdateMgmt
资源interface(已有)bmc.kepler.UpdateService.UpdateMgmt
变化类型:新增属性

说明
属性名称 UpdateStage
属性签名 y
属性权限 ReadOnly,不涉及写权限
变化通知 true
持久化 不持久化
属性说明 表征当前固件的升级阶段,取值如下:
0:未升级,当前固件没有升级
1:开始升级,接收到固件升级请求,固件升级前进行校验
2:升级中,固件校验完毕并且升级写入
3:升级完成,固件升级动作完成(不论升级成功或者失败均为完成)
4:生效中,固件写入完毕,正在生效固件
5:生效完成,固件生效成功(这个状态持续数秒钟即回到0状态)
注意: 支持回滚的固件(如BMC)也是一种升级,会有上面的几种状态

评审结论

1、同意在资源协作接口 bmc.kepler.UpdateService.UpdateMgmt 下新增属性 UpdateStage,表示固件的升级阶段,签名为y,属性值枚举参见详细描述,不进行持久化,需要发送变更通知事件。

遗留问题

问题1:对于BMC的资源 bmc.kepler.UpdateService.UpdateMgmt 是否缩小范围精确化描述
结论:
(1)当前接口 bmc.kepler.UpdateService.UpdateMgmt 中的属性具备通用性,每个固件均可以使用,因此范围的缩小使用在资源的 path 上,当前评审的议题中已经更新为 限制BMC固件
(2)由于path /bmc/kepler/UpdateService/UpdateMgmt 在历史版本中已经限制使用为 BMC 的固件升级管理,因此后续要演进其他固件,则建议不再使用该 path,进行二级资源演进,如:/bmc/kepler/UpdateService/UpdateMgmt/:FirmwareId