【已评审】支持电源供电模式切换

一、ISSUE链接

支持TPSU输入工作状态配置

二、背景

机柜管理场景需要支持系统电源供电线路切换,可设置的系统电源供电线路包含主路供电、备路供电、奇偶交叉冗余供电。当前无资源协作属性和方法承载,因此需要增加相关资源协作属性和方法用于进行系统电源供电线路切换。

三、决策点

1、资源协作接口新增供电线路属性和供电线路设置方法
2、资源协作接口新增单电源供电线路设置方法
3、资源协作接口新增电源供电线路状态属性
4、新增错误引擎描述电源供电模式切换失败原因
5、redfish供电模式设置接口新增奇偶交叉冗余供电
6、webrest供电模式设置和查询接口新增奇偶交叉冗余供电

四、详细描述

1、资源协作接口新增供电线路属性和供电线路设置方法:

path :/bmc/kepler/PowerEquipment/PowerDistribution(新增)
interface :bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration(新增)

属性/方法名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
ExpectedPowerSupplyCircuit 新增属性 s R:ReadOnly 掉电持久化 true 预期的供电线路,取值:
* MainCircuit:主电路供电(默认值)
* BackupCircuit:备电路供电
* HalfCrossRedundant:半交叉冗余供电
* QuarterCrossRedundant: 四分之一交叉冗余供电
* ParityCrossRedundant:奇偶交叉冗余供电
属性仅适用于机柜管理双输入电源场景
CurrentPowerSupplyCircuit 新增属性 s R:ReadOnly 掉电持久化 true 当前的供电线路,取值:
* MainCircuit:主电路供电(默认值)
* BackupCircuit:备电路供电
* HalfCrossRedundant:半交叉冗余供电
* QuarterCrossRedundant: 四分之一交叉冗余供电
* ParityCrossRedundant:奇偶交叉冗余供电
属性仅适用于机柜管理双输入电源场景
SetExpectedPowerSupplyCircuit 新增方法 请求:
s
响应:
u
PowerMgmt NA NA 设置预期的供电线路:
请求:
PowerSupplyCircuit:供电模式(MainCircuit、BackupCircuit、HalfCrossRedundant、QuarterCrossRedundant、ParityCrossRedundant)
响应:
TaskId:任务Id
属性仅适用于机柜管理双输入电源场景

2、资源协作接口新增单电源供电线路设置方法:

path :/bmc/kepler/Systems/:SystemId/PowerMgmt/OnePower/:Id
interface :bmc.kepler.Systems.PowerMgmt.OnePower

属性/方法名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
SetPowerSupplyCircuit 新增方法 请求:
y
响应:
NA
PowerMgmt NA NA 设置电源供电线路:
请求:
PowerSupplyCircuit:供电线路( 0:主电路供电、1:备电路供电)
响应:NA
属性仅适用于机柜管理双输入电源场景

3、资源协作接口新增电源供电线路状态属性:

path :/bmc/kepler/Systems/:SystemId/PowerMgmt/OnePower/:Id
interface :bmc.kepler.Systems.PowerMgmt.OnePower.Status

属性/方法名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
MainCircuitVINStatus 新增属性 y R:ReadOnly 不持久化 true 电源主路供电的输入状态, 取值:
0:输入正常
1:输入过压
2:输入欠压
3:输入掉电
255:未知状态(默认)
属性仅适用于机柜管理双输入电源场景
BackupCircuitVINStatus 新增属性 y R:ReadOnly 不持久化 true 电源备路供电的输入状态, 取值:
0:输入正常
1:输入过压
2:输入欠压
3:输入掉电
255:未知状态(默认)
属性仅适用于机柜管理双输入电源场景

4、新增错误引擎描述电源供电模式切换失败原因:

①当前已存在设置任务:SetPsuSupplySourceRepeatTask

"SetPsuSupplySourceRepeatTask": {
    "Description": "The task is already running.",
    "Message": "Set psu supply source failed because the task already existed.",
    "Severity": "Warning",
    "NumberOfArgs": 0,
    "Resolution": "Wait until the task finished.",
    "HttpStatusCode": 400,
    "IpmiCompletionCode": "0xFF",
    "SnmpStatusCode": 5,
    "TraceDepth": 0
}

②当前电源正在供电线路切换中:SetPsuSupplySourceInProgress

"SetPsuSupplySourceInProgress": {
    "Description": "Indicates that Set psu supply source task is in progress.",
    "Message": "Setting psu supply source.",
    "Severity": "OK",
    "NumberOfArgs": 0,
    "Resolution": "Wait until the task finished.",
    "HttpStatusCode": 200,
    "IpmiCompletionCode": "0x00",
    "SnmpStatusCode": 0,
    "TraceDepth": 0
}

③电源供电线路切换完成:SetPsuSupplySourceComplete

"SetPsuSupplySourceComplete": {
    "Description": "Indicates that Set psu supply source is completed.",
    "Message": "Set psu supply source successfully.",
    "Severity": "OK",
    "NumberOfArgs": 0,
    "Resolution": "The task is complete.",
    "HttpStatusCode": 200,
    "IpmiCompletionCode": "0x00",
    "SnmpStatusCode": 0,
    "TraceDepth": 0
}

④电源供电线路切换失败:SetPsuSupplySourceError

"SetPsuSupplySourceError": {
    "Description": "Set psu supply source failed.",
    "Message": "Set psu supply source into %1 failed because '%2'.",
    "Severity": "Critical",
    "NumberOfArgs": 2,
    "ParamTypes": [
      "string",
      "string"
    ],
    "Resolution": "Check all psu and try again.",
    "HttpStatusCode": 400,
    "IpmiCompletionCode": "0xFF",
    "SnmpStatusCode": 5,
    "TraceDepth": 0
}

5、redfish供电模式设置接口新增奇偶交叉冗余供电:

①切换电源供电来源

操作类型:POST
URI: https:// device_ip /redfish/v1/Chassis/ chassis_id /Power/Oem/Huawei/Actions/Power. SetPsuSupplySource
变化类型:新增属性取值
请求消息体:

{  
    "SupplySource":supply_source_value
}
参数 参数说明 取值
supply_source_value 机柜供电模式 * MainCircuit:主电路供电
* BackupCircuit:备电路供电
* HalfCrossRedundant:半交叉冗余供电
* QuarterCrossRedundant: 四分之一交叉冗余供电
* ParityCrossRedundant: 奇偶交叉冗余供电

6、webrest供电模式设置和查询接口新增奇偶交叉冗余供电:

①设置电源供电模式

操作类型:POST
URI: https:// device_ip /UI/Rest/System/ PowerSupply/PowerSupplySource/SetPowerSupplySource
变化类型:新增属性取值
请求消息体:

{  
    "SupplySource": "value"
}

参数说明:

参数 参数说明 类型 必选/可选
SupplySource 预期切换的供电状态(0:主电路供电;1:备电路供电;2:半交叉冗余供电;3:四分之一冗余供电;4:奇偶交叉冗余供电 Number(0~4) 必选

②查询电源供电模式

操作类型: GET
URI: https:// device_ip /UI/Rest/System/ PowerSupply/PowerSupplySource
变化类型: 新增属性取值
请求消息体:无
输出说明:

参数 参数说明 类型
ExpectedSupplySource 预期供电状态(0:主电路供电;1:备电路供电;2:半交叉冗余供电;3:四分之一冗余供电;4:奇偶交叉冗余供电 Number
CurrentSupplySource 当前供电状态(0:主电路供电;1:备电路供电;2:半交叉冗余供电;3:四分之一冗余供电;4:奇偶交叉冗余供电 Number

五、评审结论

决策点1:资源协作接口新增供电线路属性和供电线路设置方法

结论:同意新增如下资源协作接口

新增path:/bmc/kepler/PowerEquipment/PowerDistribution
新增interface:bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration
新增properties:

  • CurrentPowerSupplyCircuit,表示当前的供电线路,签名为s,只读,读权限:ReadOnly,发送变更通知事件,取值范围"MainCircuit"、“BackupCircuit”、“HalfCrossRedundant”、“QuarterCrossRedundant”、“ParityCrossRedundant”
  • ExpectedPowerSupplyCircuit,表示预期的供电线路,签名为s,只读,读权限:ReadOnly,发送变更通知事件,取值范围"MainCircuit"、“BackupCircuit”、“HalfCrossRedundant”、“QuarterCrossRedundant”、“ParityCrossRedundant”

新增methods:

  • SetExpectedPowerSupplyCircuit,用于设置预期的电源供电线路,请求签名为s,响应签名为u,权限:PowerMgmt

决策点2:资源协作接口新增单电源供电线路设置方法

结论:同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower新增如下方法

  • SetPowerSupplyCircuit,用于设置单电源供电线路,请求签名为y(0:主电路供电,1:备电路供电),无响应签名,权限:PowerMgmt

决策点3:资源协作接口新增电源供电线路状态属性

结论:

1、同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower.Status新增如下属性:

  • MainCircuitVINStatus,表示电源主路供电的输入电压状态,签名为y,只读,读权限:ReadOnly,发送变更通知事件
  • BackupCircuitVINStatus,表示电源备路供电的输入电压状态,签名为y,只读,读权限:ReadOnly,发送变更通知事件

决策点4:新增错误引擎描述电源供电模式切换失败原因

结论:同意新增如下错误消息

SetPsuSupplySourceRepeatTask
SetPsuSupplySourceInProgress
SetPsuSupplySourceComplete
SetPsuSupplySourceError

遗留问题

1、确认错误引擎定义中ipmi和snmp返回错误码是否适用当前场景
确认结论:当前供电模式切换不存在ipmi及snmp接口,且两者错误码定义中均无供电模式相关错误定义,考虑后续接口拓展,这里采用未明确定义的其他错误,即ipmi采用错误码0XFF,snmp采用错误码5,适用当前场景

决策点5:redfish供电模式设置接口新增奇偶交叉冗余供电

结论:同意redfish接口 /redfish/v1/Chassis/chassis_id/Power/Oem/Huawei/Actions/Power. SetPsuSupplySource下SupplySource属性新增取值:

  • ParityCrossRedundant:表示奇偶交叉冗余供电

决策点6:webrest供电模式设置和查询接口新增奇偶交叉冗余供电

结论:

1、同意webrest接口 UI/Rest/System/PowerSupply/PowerSupplySource/SetPowerSupplySource下SupplySource属性新增取值:

  • 4:表示奇偶交叉冗余供电

2、同意webrest接口/UI/Rest/System/PowerSupply/PowerSupplySource下ExpectedSupplySource属性和CurrentSupplySource属性新增取值:

  • 4:表示奇偶交叉冗余供电