ISSUE链接
背景
需求
1、当前支持全域电源操作的机型,在计算域 PowerState 为 Off 时不支持继续执行全域电源操作;预期仅计算域下电,全域上电的情况下仍可以执行全域电源操作。
2、当前WEB页面上电源虚拟按钮为全量显示,不支持根据机型能力定制和裁剪;五大接口中其他北向接口均支持在定制仓定制,WEB页面则需要根据webrest接口提供的标志位进行定制。
方案
1、资源协作接口中新增来源于CSR的只读属性,表示当前机型是否支持强制重启、强制下电、安全下电再上电、强制下电再上电等能力;
2、/UI/Rest/GenericInfo接口响应体中:
(i) 新增GlobalDomainPowerState表示当前全域电源状态;
(ii) 新增对象PowerCtrlCapabilities及对象下的属性ForceRestart、ForceOff、PowerCycle、ForcePowerCycle、GlobalPowerOff、GlobalRestart、GlobalPowerCycle分别表示当前WEB是否支持对应的电源按钮;
3、根据上述属性适配WEB前端:
(i) 对于支持全域电源操作的机型,当GlobalDomainPowerState为On时,WEB页面显示全域电源的按钮;
(ii) 当GlobalDomainPowerState为Off时,由于全域电源包含计算域,PowerState一定也为Off,WEB页面仅显示“上电”;
(iii) 根据当前机型是否支持对应的电源按钮对WEB页面进行裁剪;
同时修改对应机型的用户指南与联机帮助说明。
评审点
评审点一:前端UI修改
场景1:
GlobalDomainPowerState为On时,WEB页面显示全域电源按钮;GlobalDomainPowerState为Off时,WEB页面不显示全域电源按钮
虚拟电源按钮
电源&功率页面
场景2(举例说明,其他按钮裁剪类似):
PowerCtrlCapabilities/PowerCycle和PowerCtrlCapabilities/ForcePowerCycle为false时,裁剪安全下电再上电与强制下电再上电按钮
虚拟电源按钮
电源&功率页面
KVM显示:
评审点二:UIRest接口新增属性
接口名:/UI/Rest/GenericInfo
变化类型:新增属性
操作类型:GET
| 属性名称 | 类型 | 取值范围 | 说明 | 默认值 |
|---|---|---|---|---|
| GlobalDomainPowerState | String | “On”、“Off” | 全域电源状态,“On”:全域电源为上电状态,“Off”:全域电源为下电状态 ,当全域电源为上电状态时支持全域电源操作 | 不涉及 |
| PowerCtrlCapabilities | Object | 不涉及 | 当前WEB支持的电源控制按钮能力 | 不涉及 |
| ForceRestart | Boolean | true、false | 当前WEB是否支持强制重启按钮,true:支持,false:不支持 | true |
| ForceOff | Boolean | true、false | 当前WEB是否支持强制下电按钮,true:支持,false:不支持 | true |
| PowerCycle | Boolean | true、false | 当前WEB是否支持安全下电再上电按钮,true:支持,false:不支持 | true |
| ForcePowerCycle | Boolean | true、false | 当前WEB是否支持强制下电再上电按钮,true:支持,false:不支持 | true |
| GlobalPowerOff | Boolean | true、false | 当前WEB是否支持全域下电按钮,true:支持,false:不支持,仅当GlobalDomainSupported为true时此属性有效 | true |
| GlobalRestart | Boolean | true、false | 当前WEB是否支持全域重启按钮,true:支持,false:不支持,仅当GlobalDomainSupported为true时此属性有效 | true |
| GlobalPowerCycle | Boolean | true、false | 当前WEB是否支持全域下电再上电按钮,true:支持,false:不支持,仅当GlobalDomainSupported为true时此属性有效 | true |
/UI/Rest/GenericInfo响应体样例:
{
"PowerState": "Off",
"GlobalDomainSupported": true,
...
"GlobalDomainPowerState": "On", —— 全域电源状态
"PowerCtrlCapabilities": {
"ForceRestart": true, —— 是否支持强制重启
"ForceOff": false, —— 是否支持强制下电
"PowerCycle": false, —— 是否支持安全下电再上电
"ForcePowerCycle": false —— 是否支持强制下电再上电
"GlobalPowerOff": true —— 是否支持全域下电
"GlobalRestart": true —— 是否支持全域重启
"GlobalPowerCycle": true —— 是否支持全域下电再上电
}
}
评审点三:资源协作接口新增属性
方案一
资源path:/bmc/kepler/ProductInfo/FruCtrlCapabilities
资源interface:bmc.kepler.ProductInfo.FruCtrlCapabilities
变化类型:新增属性
应用场景:根据机型能力,在CSR中描述本机型支持的电源操作
持久化类型:见表格中的描述
操作权限:ReadOnly
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| ForceRestartSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制重启操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| ForceOffSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制下电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| PowerCycleSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持安全下电再上电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| ForcePowerCycleSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制下电再上电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| GlobalPowerOffSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持全域下电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true,仅当GlobalDomainSupported为true时此属性有效 |
| GlobalRestartSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持全域重启操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true,仅当GlobalDomainSupported为true时此属性有效 |
| GlobalPowerCycleSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持全域下电再上电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true,仅当GlobalDomainSupported为true时此属性有效 |
方案二
新增资源path:/bmc/kepler/ProductInfo/FruCtrlDomainCapabilities/:Id
新增资源interface:bmc.kepler.ProductInfo.FruCtrlDomainCapabilities
变化类型:新增path与interface
应用场景:根据机型能力,在CSR中描述本机型支持的电源操作
持久化类型:见表格中的描述
操作权限:ReadOnly
接口bmc.kepler.ProductInfo.FruCtrlDomainCapabilities属性如下:
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| DomainId | 新增属性 | U8 | 只读 R:ReadOnly | 不持久化 | false | CSR | 电源域Id 0:计算域 4:全域 | 取值范围: minimum: 0, maximum: 4 |
| GracefulShutdownSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持下电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| ForceRestartSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制重启操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| ForceOffSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制下电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| PowerCycleSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持安全下电再上电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
| ForcePowerCycleSupported | 新增属性 | b | 只读 R:ReadOnly | 不持久化 | false | CSR | 是否支持强制下电再上电操作,true:支持,false:不支持 | 默认值根据机型配置,若不配置默认为true |
评审结论:
- 同意在WEB虚拟电源按钮、 电源&功率页面上根据当前全域电源状态进行全域电源按钮的展示;同意在WEB 虚拟电源按钮、 电源&功率页面和KVM页面上根据当前机型支持的电源按钮的能力集合进行相应按钮的裁剪展示。
- 同意在webrest接口
/UI/Rest/GenericInfo下新增属性GlobalDomainPowerState,属性类型String,表征当前全域电源状态,取值范围:“On”、“Off”;同意在webrest接口/UI/Rest/GenericInfo下新增对象PowerCtrlCapabilities以及对应的属性,表征当前全域电源状态与WEB支持的电源控制按钮能力,对象的属性详情如下:
- ForceRestart:类型为Boolean,表征是否支持强制重启;
- ForceOff:类型为Boolean,表征是否支持强制下电;
- PowerCycle:类型为Boolean,表征是否支持安全下电再上电;
- ForcePowerCycle:类型为Boolean,表征是否支持强制下电再上电;
- GlobalPowerOff:类型为Boolean,表征是否支持全域下电;
- GlobalRestart:类型为Boolean,表征是否支持全域上电;
- GlobalPowerCycle:类型为Boolean,表征是否支持全域下电再上电; - 同意使用方案一,在资源协作接口
bmc.kepler.ProductInfo.FruCtrlCapabilities下新增以下属性:
- ForceRestartSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持强制重启操作;
- ForceOffSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持强制下电操作;
- PowerCycleSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持安全下电再上电操作;
- ForcePowerCycleSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持强制下电再上电操作;
- GlobalPowerOffSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持全域下电操作(仅当GlobalDomainSupported为true时是否支持全域电源操作的属性有效);
- GlobalRestartSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持全域重启操作(仅当GlobalDomainSupported为true时是否支持全域电源操作的属性有效);
- GlobalPowerCycleSupported:签名为b,只读,权限为ReadOnly,不持久化,不发送变化通知,默认为true,表征BMC是否支持全域下电再上电操作(仅当GlobalDomainSupported为true时是否支持全域电源操作的属性有效);
遗留问题
无




