【已评审】新增资源协作接口属性,表示升级超时时间

ISSUE链接

暂无

评审背景

  • 为了避免BMC升级异常后BMC长时间无法升级和重启,支持BMC升级处理异常时进行自恢复,自自恢复的方式是进行BMC复位。即:
    当BMC进入升级模式后,如果出现升级异常情况,对端的固件升级处理如果长时间没有完成升级(没有升级完成的响应),此时需要进行DFX处理,当前固件的升级异常退出。

当前现状以及差距

现状

BMC进入升级模式之后,固定等待 120min。如果在这个时间之内没有固件升级成功的响应,则当前升级流程退出,并且上报升级失败的错误。

差距

客户有需求,需要等待固定的时间(比如A客户是Xmin),超过时间之后需要进行BMC的自恢复。当前BMC是固定时间,无法满足客户需求。

解决方案

采用 “客户定制 + 产品配置 + 默认值” 的方式进行三步走的处理策略。具体策略如下:

  • 优先级1:采用 定制升级超时(单位:min),定制之后BMC的升级模式最长等待时间按照定制项进行处理;
  • 优先级2:采用 产品配置(单位:min),CSR配置之后如果在没有定制的情况下采用该超时时间,超时时间默认是 120min。

决策点1:新增资源协作接口属性

path: /bmc/kepler/UpdateService
interface: bmc.kepler.UpdateService
properties: TimeoutThreshold/TimeoutPolicy

新增属性1:升级超时时间

说明
属性名称 TimeoutThreshold
属性类型 U16
属性读写 只读
属性权限 R:ReadOnly
W:不涉及
属性值来源 产品CSR配置/定制化项
是否发送信号
持久化
属性说明 升级管理监控每个升级任务的最大超时时间,单位:min,取值范围 1 ~ 120,默认 120

新增属性2:升级超时策略

说明
属性名称 TimeoutPolicy
属性类型 U8
属性读写 只读
属性权限 R:ReadOnly
W:不涉及
属性值来源 产品CSR配置/定制化项
是否发送信号
持久化
属性说明 升级管理对于升级超时之后的处理策略,0:无动作;1:复位BMC,默认0

决策点2:新增定制化项

新增定制项1:升级超时时间

说明
定制化项名称 Custom_UpgradeTimeout
归属组件 firmware_mgmt
类型 integer
默认值 120
处理逻辑 if(Custom_UpgradeTimeout != 空)
 BMC升级超时时间设置为Custom_UpgradeTimeout
else
 BMC升级超时时间设置为默认值
说明 取值范围 [1, 120],单位:分钟(min)

新增定制项1:升级超时策略

说明
定制化项名称 Custom_FirmwareUpdateTimeoutPolicy
归属组件 firmware_mgmt
类型 integer
默认值 0
处理逻辑 if(Custom_FirmwareUpdateTimeoutPolicy != 空)
 BMC升级超时策略设置为Custom_FirmwareUpdateTimeoutPolicy
else
 BMC升级超时策略设置为默认值
说明 升级超时策略,取值如下:
0:无动作
1:复位BMC

决策点3:新增配置导入导出项

新增配置导入导出项1:升级超时时间

说明
导出项 UpgradeService
导出子项 UpgradeTimeout
归属组件 firmware_mgmt
类型 integer
导入导出类型 导入导出
属性类型 ImportAndExport
导出后是否可以直接导入 true
说明 升级超时时间,取值范围 [1, 120],单位:分钟(min)

新增配置导入导出项1:升级超时策略

说明
导出项 UpgradeService
导出子项 FirmwareUpdateTimeoutPolicy
归属组件 firmware_mgmt
类型 integer
导入导出类型 导入导出
属性类型 ImportAndExport
导出后是否可以直接导入 true
说明 升级超时策略,取值如下:
0:无动作
1:复位BMC

评审结论

部分通过,同意新增超时策略,不同意新增超时时间。具体结论如下:

  1. 同意在资源协作接口 bmc.kepler.UpdateService 增加属性 TimeoutPolicy,表示固件升级超时之后的处理策略,签名为 y,只读,读权限:ReadOnly,取值有:0 - 无动作;1 - 复位BMC;默认值为 0
  2. 同意新增定制化项 Custom_FirmwareUpdateTimeoutPolicy,类型为 integer,表示固件升级超时之后的处理策略,取值有:0 - 无动作;1 - 复位BMC;默认值为 0
  3. 同意新增配置导入导出项 FirmwareUpdateTimeoutPolicy, 类型为 integer,表示固件升级超时之后的处理策略,取值有:0 - 无动作;1 - 复位BMC;默认值为 0

TimeoutThreshold属性类型为U16,建议单位为秒,否则不需要U16的类型;单位为秒可以更精确控制超时门限

BMC升级超时策略设置为默认值:else分支是不是啥都不做就可以

不设置成复位BMC,则按照原有流程,超时则升级流程退出,并且上报升级失败