【已评审】支持硬盘升级生效以及版本信息展示,新增资源协作接口方法

背景

  1. BMC 支持带外升级硬盘,因此需要展示硬盘的版本信息等。由于硬盘数量较多(>100),会影响web接口版本信息界面信息获取性能
  2. 硬盘生效是有如下生效方式:os复位自动生效,AC之后自动生效,下电至上电场景下自动生效。由于固件管理无法感知到os复位场景,因此固件管理无法感知到已生效

关联ISSUE

整体方案

  1. 固件管理组件新增资源协作接口方法获取所有硬盘的固件信息用于web界面展示,提高硬盘的版本信息等获取的性能
  2. 硬盘升级具体升级组件可以感知到硬盘已生效,因此固件管理新增资源协作接口方法供下层升级组件删除待生效对象,硬盘升级组件感知到硬盘生效后,直接调用删除方法去删除注册的待生效固件

评审点1 新增方法 GetFirmwareList根据传入参数获取固件信息

详细描述

资源协作path : /bmc/kepler/UpdateService/FirmwareInventory(原有)
资源协作interface : bmc.kepler.UpdateService.FirmwareInventory (原有)
变化类型 :新增方法
方法名称 : GetFirmwareList
使用场景:根据筛选条件获取指定固件的信息,如FirmwareType指定硬盘,可获取所有硬盘的固件信息

说明
方法名称 GetFirmwareList
权限 ReadOnly
请求签名 a{ss}
请求参数 Options dictionary 类型,筛选的参数,若选择的参数为空则返回所有固件信息,详细参数信息见参数说明Options
响应签名 a(sa{ss})
响应参数 array<object> 类型,筛选后的所有的固件信息表。
其中具体的参数说明如下:
      FirmwareIdstring 类型,固件标识
      FirmwareInfo dictionary 类型,筛选后的固件信息。
说明 获取所有筛选后的固件信息

参数说明

参数属性名称 参数属性取值 取值说明 可选\必选
FirmwareType - 固件类型 可选
SoftwareId - 软件识别标签 可选
Staged - 是否暂存固件 可选

评审点2 新增方法 DeleteActiveAction 用于删除待生效对象

详细描述

资源协作path : /bmc/kepler/UpdateService/FirmwareActive(原有)
资源协作interface : bmc.kepler.UpdateService.FirmwareActive (原有)
变化类型 :新增方法
方法名称 :DeleteActiveAction

说明
方法名称 DeleteActiveAction
权限 BasicSetting
请求签名 as
请求参数 FirmwareIds 待生效固件ID列表
响应签名 NA
响应参数 NA
说明 用于删除待生效任务,删除后需要重新注册生效(需通过升级),此方法用于下游组件删除特定条件下自动生效(固件管理无法感知)的已生效的固件生效任务

评审结论

1.同意新增方法 GetFirmwareList ,权限ReadOnly,请求签名a{ss},参数范围如下表,响应签名a(sa{ss}),用于获取筛选后的固件信息

参数属性名称 参数属性取值 取值说明 可选\必选
FirmwareType - 固件类型 可选
SoftwareId - 软件识别标签 可选
Staged - 是否暂存固件 可选

2.同意新增方法 DeleteActiveAction,权限BasicSetting,请求签名 as,为待生效固件ID列表,响应签名NA,用于删除固件管理中的待生效任务

遗留问题

  1. DeleteActiveAction 这个方法的入参修改为 数组类型,支持多个任务删除
    结论:已更新

@linyao

  1. GetFirmwareInfoByOptions 这个为什么要 options?要支持使用什么入参进行查询需要明确
  2. DeleteActiveAction 这个方法究竟是要删除待生效的固件(如 CPLD_BP)?还是删除待生效的方法(如:PowerOff)?接口说明中至少要说明删除之后的后果(如:待生效的固件删除之后需要重新进行升级才能再次生效)