背景
同一个BCU,单系统情况下管理1个BIOS,双系统情况下管理2个BIOS。
当前web rest相关接口及Web UI只适配单系统场景,双主机场景需要适配
关联ISSUE
整体方案
首页->设备信息适配双主机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


