【已评审】Web Rest接口及Web UI适配双主机BIOS管理

背景

同一个BCU,单系统情况下管理1个BIOS,双系统情况下管理2个BIOS。
当前web rest相关接口及Web UI只适配单系统场景,双主机场景需要适配

关联ISSUE

支持双主机BIOS固件管理

整体方案

  • 首页->设备信息适配双主机bios版本显示
  • 系统管理->系统信息->资产摘要适配双主机bios版本显示
  • 系统管理->BIOS配置适配双主机bios配置功能实现

评审点

修改bios相关功能的Web Rest接口及webui适配双主机bios管理

详细描述

评审点一:首页->设备信息适配双主机bios版本显示

webui适配:在该页面继续往后平铺展示主机1、主机2的BIOS固件版本和固件发布日期


预期显示为:主机1 BIOS固件版本,主机1 BIOS固件发布日期
主机2 BIOS固件版本,主机2 BIOS固件发布日期…

web rest 接口适配:

uri:/UI/Rest/Overview
变化类型:新增属性
操作类型:GET
应用场景:用于前端首页进行BIOS版本、BIOS固件发布日期显示

web rest 接口方案一:
新增属性为Array类型,成员为字符串,下标作为SystemId,从0开始。

属性名称 取值类型 取值范围 默认值 操作权限 约束
BIOSVersions Array NA [] ReadOnly 成员为字符串,下标作为SystemId
BIOSReleaseDates Array NA [] ReadOnly 成员为字符串,下标作为SystemId

web rest 接口方案二(推荐):
新增属性为Array类型,成员为结构体

属性名称 取值类型 取值范围 默认值 操作权限 约束
Bios Array NA [] ReadOnly 对象数组,取值为BIOS信息
SystemId:BIOS系统Id,Number类型
Version:BIOS固件版本,String类型
ReleaseDate:BIOS固件发布日期,String类型

评审点二:系统管理->系统信息->资产摘要适配双主机bios版本显示

webui适配:在该页面继续往后平铺展示主机1、主机2的BIOS固件版本和固件发布日期

预期显示为:主机1 BIOS固件版本,主机1 BIOS固件发布日期
主机2 BIOS固件版本,主机2 BIOS固件发布日期 …

web rest 接口适配:

uri:/UI/Rest/System/ProductInfo
变化类型:新增属性
操作类型:GET
应用场景:用于web资产摘要页面进行BIOS版本、BIOS固件发布日期显示

web rest 接口方案一:
新增属性为Array类型,成员为字符串,下标作为SystemId,从0开始。

属性名称 取值类型 取值范围 默认值 操作权限 约束
BIOSVersions Array NA [] ReadOnly 成员为字符串,下标作为SystemId
BIOSReleaseDates Array NA [] ReadOnly 成员为字符串,下标作为SystemId

web rest 接口方案二(推荐):
新增属性为Array类型,成员为结构体

属性名称 取值类型 取值范围 默认值 操作权限 约束
Bios Array NA [] ReadOnly 对象数组,取值为BIOS信息
SystemId:BIOS系统Id,Number类型
Version:BIOS固件版本,String类型
ReleaseDate:BIOS固件发布日期,String类型

评审点三:系统管理->BIOS配置适配双主机BIOS配置功能实现

webui适配:双主机场景在该页面分出主机1和主机2两个页签,承载对应主机的配置功能

web rest 接口适配:

接口一

原uri:/UI/Rest/System/BootOptions
操作类型:GET/PATCH
应用场景:用于web BIOS配置页面启动项配置的获取和设置

方案:新增接口
uri:/UI/Rest/Systems/:systemid/BootOptions
变化类型:新增接口
操作类型:GET/PATCH
应用场景:用于web BIOS配置页面启动项配置的获取和设置,适配双主机场景

GET接口的rsp及PATCH接口的req与接口/UI/Rest/System/BootOptions保持一致
前端从/UI/Rest/GenericInfo获取SystemIds属性,填到新URL里面

接口二

原uri:/UI/Rest/System/Bios/Settings
操作类型:GET/PATCH
应用场景:用于web BIOS配置页面BIOS全量配置的获取和设置

方案:新增接口
uri:/UI/Rest/Systems/:systemid/Bios/Settings
变化类型:新增接口
操作类型:GET/PATCH
应用场景:用于web BIOS配置页面BIOS全量配置的获取和设置,适配双主机场景

GET接口的rsp及PATCH接口的req与接口/UI/Rest/System/Bios/Settings保持一致
前端从/UI/Rest/GenericInfo获取SystemIds属性,填到新URL里面

接口三

原uri:/UI/Rest/System/Bios/RevokeSettings
操作类型:POST
应用场景:用于web BIOS配置页面放弃待生效配置

方案一:入参增加SystemId参数

属性名称 取值类型 取值范围 约束
SystemId Number 1~255 表示放弃待生效配置的system,如果不填默认放弃操作系统1的待生效配置

方案二:新增接口
uri:/UI/Rest/Systems/:systemid/Bios/RevokeSettings
变化类型:新增接口
操作类型:POST
应用场景:用于web BIOS配置页面对应system主机放弃待生效配置

入参:{}
前端从/UI/Rest/GenericInfo获取SystemIds属性,填到新URL里面

评审结论

评审点一:

1、同意首页->设备信息处适配双主机BIOS版本显示(显示效果参见评审点描述)。BIOS板子信息集中到下方,与其他信息不需要通过线条分割,同一主机的固件版本和固件发布日期始终保持水平对齐
2、同意webrest接口/UI/Rest/Overview的GET操作响应体新增Bios属性

属性名称 取值类型 取值范围 默认值 操作权限 约束
Bios Array NA [] ReadOnly 对象数组,取值为BIOS信息
SystemId:BIOS系统Id,Number类型
Version:BIOS固件版本,String类型
ReleaseDate:BIOS固件发布日期,String类型

评审点二:

1、同意系统管理->系统信息->资产摘要处适配双主机bios版本显示(显示效果参见评审点描述)。bios信息集中到下方,与其他信息不需要通过线条分割,同一主机的固件版本和固件发布日期始终保持水平对齐
2、同意webrest接口/UI/Rest/System/ProductInfo的GET操作响应体新增Bios属性

属性名称 取值类型 取值范围 默认值 操作权限 约束
Bios Array NA [] ReadOnly 对象数组,取值为BIOS信息
SystemId:BIOS系统Id,Number类型
Version:BIOS固件版本,String类型
ReleaseDate:BIOS固件发布日期,String类型

评审点三:

1、同意系统管理->BIOS配置处适配双主机BIOS配置功能实现(显示效果参见评审点描述)
2、同意新增webrest接口/UI/Rest/Systems/:systemid/BootOptions,用于web BIOS配置页面启动项配置的获取和设置,适配双主机场景,支持GET和PATCH操作。此接口GET操作的响应体、PATCH操作的请求体与旧接口(/UI/Rest/System/BootOptions)保持一致
3、同意新增/UI/Rest/Systems/:systemid/Bios/Settings,用于web BIOS配置页面BIOS全量配置的获取和设置,适配双主机场景,支持GET和PATCH操作。此接口GET操作的响应体、PATCH操作的请求体与旧接口(/UI/Rest/Systems/:systemid/Bios/Settings)保持一致
4、同意新增/UI/Rest/Systems/:systemid/Bios/RevokeSettings,用于web BIOS配置页面对应system主机放弃待生效配置,支持POST操作,入参为{}

遗留问题

1、webrest接口新增属性不应该孤立地扩展,将新增属性统一成以System为维度
结论:已修改为结构化的对象,在对象中通过属性区分System