背景
- 客户需求:如果升级了下电生效的固件(比如VRD/BIOS等),如果固件正在生效过程中,则不允许上电,在 WEB/Redfish/IPMI接口上返回不支持
- 客户需求:在升级了特定固件之后,在固件处理完毕之前不允许下电操作,包括 Power Off/Cycle
- 维优需求:在BMC不支持上电/下电操作时需要在WEB页面上提示不支持,并且展示不支持的具体原因
关联ISSUE
暂无
整体方案
需求方案
在上述背景操作的上下电操作中,如果存在上下电锁则通过错误引擎阻止上下电,并且在错误Message中说明具体的原因
当前差距
- 当前BMC对于上电锁的情况下执行上电操作,均返回
OperationFailed错误,当前错误采用的是标准的错误描述,没有描述具体的操作失败的原因,并且 IPMI 完成码是0xFF,不符合需求。 - Redfish Error Specification (#DSP2065) 中没有对于上电失败和下电失败的标准错误
- 当前BMC没有下电锁,无下电阻止操作对应的自定义错误引擎
详细描述
评审点1:新增错误引擎 PowerOnNotAllowed
新增错误引擎 PowerOnNotAllowed,用于表征不允许上电操作的所有场景错误
"PowerOnNotAllowed": {
"Description": "Indicates that power on is not allowed.",
"Message": "Power on is not allowed in current state. Reason: %1.",
"Severity": "Warning",
"NumberOfArgs": 1,
"ParamTypes": [
"string"
],
"Resolution": "Make sure that no power on lock according to reason in Message.",
"HttpStatusCode": 400,
"IpmiCompletionCode": "0xD5", // D5h: Command not supported in present state
"SnmpStatusCode": 3
}
评审点2:新增错误引擎 PowerOffNotAllowed
新增错误引擎 PowerOffNotAllowed,用于表征不允许下电操作的所有场景错误
"PowerOffNotAllowed": {
"Description": "Indicates that power off is not allowed.",
"Message": "Power off is not allowed in current state. Reason: %1.",
"Severity": "Warning",
"NumberOfArgs": 1,
"ParamTypes": [
"string"
],
"Resolution": "Make sure that no power off lock according to reason in Message.",
"HttpStatusCode": 400,
"IpmiCompletionCode": "0xD5", // D5h: Command not supported in present state
"SnmpStatusCode": 3
}
评审结论
通过,同意新增错误消息 PowerOnNotAllowed 和 PowerOffNotAllowed,这两个错误仅用于 BMC 人机接口(WEB/CLI接口)的上下电操作,具体的错误信息参见详细描述。
遗留问题
1、错误返回发生变化属于接口变更,需要梳理此变更会影响具体哪些接口以及影响范围
结论:当前错误引擎是带有具体的错误原因的,变更接口仅涉及人机接口(WEB/CLI),评估无影响。