【已评审】设置复位锁定方法新增复位锁定原因参数及操作不允许自定义错误信息中新增失败原因参数

背景

在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,避免北向接口响应发生变更,对上层网管产生影响

遗留问题