【已评审】新增资源协作接口属性支持升级所有分区

关联issue

BMC固件升级支持一次升级3个分区

评审背景

背景

当前客户以及产业产线有需求,需要支持BMC一次性可以升级所有分区,即升级之后BMC中所有分区的镜像版本需要一致

现状

当前BMC升级采用 分区轮转 的方式进行,即BMC升级时仅升级一个分区,然后在升级之后复位生效的过程中将当前的 Active 分区轮转到已经升级的分区上,前一个 Active 分区会轮转为 Available 分区,用于镜像切换或者异常恢复时使用。

方案

  • 需要在 BMC 的镜像升级配置上增加一个可写的属性,在升级前先设置这个属性,用于标识当前BMC镜像的升级是单分区升级,还是全部升级
  • BMC升级时根据这个上述的标记进行升级处理,当已经存在标记(标记为true)时会进行全分区升级,即升级一个分区的同时,将镜像同步到另一个分区
  • 【可靠性】当前标记是属于一次性操作标记,因此不需要持久化动作,当BMC固件完成升级时需要由固件管理设置为false,防止BMC延时重启时再次触发升级导致反复升级

评审点

评审点1:新增BMC升级全部分区使能标记

path(已有):/bmc/kepler/UpdateService/UpdateMgmt
interface(已有):bmc.kepler.UpdateService.UpdateMgmt

新增属性信息如下:

取值说明
属性名称 OnetimeUpdateEnabled
属性类型 Boolean
属性权限 R: ReadOnly
W:SecurityMgmt
默认值 false
持久化
变更发送通知 false
属性来源 由下游业务进行设置
属性说明 是否使能全部分区升级,默认为false

评审结论

通过,同意在资源协作接口 bmc.kepler.UpdateService.UpdateMgmt 新增属性 OnetimeUpdateEnabled,签名为 b,默认值为 false,不需要持久化,不发送变更通知事件,表示是否对待升级部件全部分区升级。

【预审】

  1. 评审背景中说明清楚当前的差距以及处理的方案简述