背景
在VRD 生效过程中或者是BIOS 处于post阶段下,BMC禁止复位,当前BMC在重启失败时,会显示操作失败,当前状态不支持此操作,请稍后重试,为了优化BMC重启失败原因显示,展示更详细的失败原因,如BIOS 处于post阶段时,Web界面执行重启BMC操作,需要提示操作失败,setup属于post阶段不允许重启,现需要在资源协作接口bmc.kepler.SystemControl下的SetResetLockStatus方法中新增入参LockCause,标记BMC复位锁定原因,ResetOperationNotAllowed自定义错误信息中新增操作失败原因参数,支持在复位锁定状态下、请求重启失败时抛出带重启失败原因的错误,最终展现更详细的重启失败原因,SetResetLockStatus方法的历史评审纪要见 【已评审】新增资源协作接口属性及方法,支持复位锁定
关联ISSUE
无
整体方案
flowchart TD
A[开始] --> B(组件发起复位锁定)
B --> C{是否处于锁定状态}
C -->|是| D[重置组件复位锁定时间] --> F[组件进行复位锁定,并记录复位锁定原因]
C -->|否| E[修改组件复位锁定状态] --> F[组件进行复位锁定,并记录复位锁定原因]--> G(结束)
flowchart TD
A[开始] --> B(发起系统复位)
B --> C{是否处于复位锁定状态}
C -->|是| D[系统复位失败,并展示复位锁定的原因] --> F[结束]
C -->|否| E[系统复位成功] --> F(结束)
评审点
1、bmc.kepler.SystemControl接口的SetResetLockStatus方法新增入参LockCause
2、ResetOperationNotAllowed自定义错误信息中新增操作失败原因参数
详细描述
1. 变更资源协作接口方法:
path: /bmc/kepler/MacaService(已有)
interface: bmc.kepler.SystemControl(已有)
methods: SetResetLockStatus(已有)
变更前签名:ssu,参数依次为ResetMode,OperationType,TimeoutSeconds
变更后签名:ssus,参数依次为 ResetMode,OperationType,TimeoutSeconds,LockCause
方法说明:
| 项目 | 说明 |
|---|---|
| 方法名称 | SetResetLockStatus |
| 方法权限 | BasicSetting |
| 请求签名 | ssus |
| 请求参数 | 1. ResetMode,表示复位类型。String 类型。“WarmReset” 代表热复位, “GracefulReset” 代表平滑复位级别(锁定操作时,对平滑复位和热复位均进行锁定),“ForceReset” 代表强制复位级别(锁定操作时,对强制复位、平滑复位和热复位均进行锁定)。 |
| 2.OperationType,表示操作类型。String 类型。取值范围为Lock / “Unlock”,分别代表加锁、解锁。 | |
| 3.TimeoutSeconds,表示超时时间,单位为秒,仅在执行锁定操作时参数有效。U32类型。当应用组件设置复位锁定后超过指定超时时间未解锁,则自动解除对应应用组件的复位锁定状态。取值范围为10~300。 | |
| (新增)4.LockCause,表示复位锁定的原因的枚举值,String类型。用于提示系统复位锁定状态下,由于特定原因无法执行系统复位操作。 | |
| 响应签名 | 无 |
| 响应参数 | 无 |
2. 变更自定义错误信息动态参数:
错误引擎标识:ResetOperationNotAllowed
变化类型:变更
变更前
错误信息:“Reset failed (parameter: %1). The current status does not support the reset operation.”,
参数个数:1
参数说明:%1:复位类型
参数类型:[“string”]
变更后
错误信息:“Reset failed (parameter: %1). %2.”,
参数个数:2
参数说明:%1:复位类型,%2:复位失败原因
参数类型:[“string”,“string”]
评审结论
1、同意bmc.kepler.SystemControl接口的SetResetLockStatus方法的请求签名由ssu变更为ssus,新增参数
- 参数名称:LockCause
- 参数取值类型:字符串
- 参数取值范围:“Default”, “BiosDuringPost”
- 约束:无
2、同意ResetOperationNotAllowed错误新增错误信息参数,表示操作失败的原因,错误信息由
“Reset failed (parameter: %1). The current status does not support the reset operation.”
变更为:
“Reset failed (parameter: %1). %2.”
参数个数:2
参数说明:%1:复位类型,%2:复位失败原因
参数类型:[“string”,“string”]
3、平滑重启接口中抛出的OperationNotAllowed错误替换为ResetOperationNotAllowed,避免北向接口响应发生变更,对上层网管产生影响
遗留问题
无