背景
某客户希望使用标准串行升级接口进行异步升级的升级流程,即通过redfish接口升级固件时,如果不满足生效条件,则task置为pending状态,待条件满足后,再开始升级流程。因此需要新增定制化项与原有升级流程相区分。
评审点
- 增加定制化项,在出厂配置时按照诉求进行定制,默认或者空定制化时不进行处理。
- 增加配置项,可以在现网进行当前配置的快速复制部署,支持配置项导出之后直接导入
- 新增资源协作接口属性,支持注册和管理升级条件信息。
详细描述
评审点1:新增定制化项 Custom_AsyncFirmwareUpdate
| 项目 | 值 |
|---|---|
| 定制化项 | Custom_AsyncFirmwareUpdate定制项 |
| 定制化接口名称 | Custom_AsyncFirmwareUpdate |
| 取值类型 | string |
| 取值范围 | “on” 或 “off” |
| 默认值 | “off” |
| 处理逻辑 | if (Custom_AsyncFirmwareUpdate== “on”) redfish标准升级接口采用异步升级策略,待生效条件满足后再开始升级 else redfish标准升级接口采用原有的升级与生效分离策略 |
评审点2:新增配置导入导出项UpgradeService->AsyncFirmwareUpdate
| 项目 | 值 |
|---|---|
| 导出项 | UpgradeService |
| 导出子项 | AsyncFirmwareUpdate |
| 取值类型 | string |
| 属性类型 | ImportAndExport |
| 取值范围 | “on” 或 “off” |
| 含义说明 | 是否采用异步升级策略 |
| 导出后是否可以直接导入 | 是 |
评审点3:新增资源协作接口属性ActiveCondition
资源协作接口bmc.kepler.UpdateService.FirmwareInfo下新增属性ActiveCondition,用以标识固件的生效条件
资源path:/bmc/kepler/UpdateService/FirmwareInventory/:Id
资源interface:bmc.kepler.UpdateService.FirmwareInfo
变化类型: 新增资源协作接口属性
新增属性:
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 取值范围 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|---|
| ActiveCondition | as | true | false | 属性描述:固件的生效条件 | None、PowerOff、PowerOn、ResetBMC、ResetTargetDevice | R:ReadOnly | 各固件下游组件启动时注册 | 无需持久化 | false |
评审结论
通过,具体结论如下:
- 同意新增定制化项
Custom_AsyncFirmwareUpdate,用于标识是否采用异步升级策略;类型为string,默认值为off,取值范围 为on或off - 同意在导出项UpgradeService下新增导出子项
AsyncFirmwareUpdate, 属性类型为ImportAndExport,取值范围为on或off,用于标识是否采用异步升级策略 - 同意
bmc.kepler.UpdateService.FirmwareInfo下新增属性ActiveCondition,用以标识固件的生效条件,属性签名为as,只读,不需要持久化,不发送变化通知
遗留问题
- ActiveCondition的签名修改为as,并补充取值范围——已修改签名并补充取值范围
- 增加对应的导入导出项——已增加对应的导入导出项
- Custom_FirmwareUpgradePolicy更具体化一些——已修改为 AsyncFirmwareUpdate