【已评审】新增TPSU/PSU管理能力

Issue链接

查询当前TPSU/PSU模块电容包硬件能力
配置TPSU/PSU模块Turbo能力,并可查询
支持TPSU/PSU供电故障恢复后切换等待延迟时间配置功能
支持TPSU/PSU的Turbo电容容量查询
支持TPSU/PSU双输入供电继电器切换次数查询
支持覆盖TPSU的告警功能

背景

机柜管理场景需支持对TPSU/PSU相关属性进行设置和查询,包括模块电容硬件管理能力,供电故障恢复后切换等待延迟时间,Turbo电容容量和双输入继电器切换次数,具体包括电容硬件版本查询,电容Turbo能力设置和查询,供电故障恢复后切换等待延迟时间设置和查询,Turbo电容容量查询,双输入继电器切换次数查询,涉及新增资源协作属性/方法,redfish接口下属性,web接口下属性

决策点

  1. 新增硬件版本号属性
  2. 新增电压防抖时间属性,新增放电深度属性,新增设置电压防抖时间方法,新增设置放电深度方法
  3. 新增查询电容硬件版本号redfish接口
  4. 新增查询电容硬件版本号web接口
  5. 新增双输入供电故障恢复回切时间配置属性
  6. 新增双输入供电故障恢复回切时间定制项
  7. 新增电容容量属性
  8. 新增继电器切换次数属性
  9. 新增TPSU告警状态属性

详细描述

决策点1:新增硬件版本号属性HardwareVersion

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:HardwareVersion用于表示硬件版本号

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
HardwareVersion 新增属性 s 只读,读:ReadOnly 不持久化 false 通过电源管理协议从电源读取后更新 硬件版本号,默认值为"" 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

决策点2:新增电压防抖时间属性VOUTDebounceMilliseconds和放电深度属性DepthOfDischargeVolts,设置电压防抖时间方法SetVOUTDebounceMilliseconds,设置放电深度方法SetDepthOfDischargeVolts

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:VOUTDebounceMilliseconds用于表示电压防抖时间,DepthOfDischargeVolts用于表示放电深度
新增方法:SetVOUTDebounceMilliseconds用于设置电压防抖时间,SetDepthOfDischargeVolts设置放电深度

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
VOUTDebounceMilliseconds 新增属性 u 只读,读:ReadOnly 不持久化 false 通过电源管理协议从电源读取后更新 电压防抖时间,单位ms;
默认值为0,表示该机型不支持该属性
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值
DepthOfDischargeVolts 新增属性 u 只读,读:ReadOnly 不持久化 false 通过电源管理协议从电源读取后更新 放电深度,单位V,该属性表示电源输出电压可放电电压值;
默认值为0,表示该机型不支持该属性
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值
方法名称 变化类型 请求签名 请求参数说明 响应签名 响应参数说明 操作权限 说明 约束
SetVOUTDebounceMilliseconds 新增方法 u u: VOUTDebounceMilliseconds,电压防抖时间,单位ms PowerMgmt 设置电压告警防抖时间,设置的数据在业务逻辑中进行校验 方法仅适用于机柜管理场景双输入电源,其余场景不支持
SetDepthOfDischargeVolts 新增方法 u u:DepthOfDischargeVolts,放电深度,单位V PowerMgmt 设置放电深度电压,设置的数据在业务逻辑中进行校验 方法仅适用于机柜管理场景双输入电源,其余场景不支持

决策点3:在redfish接口(/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid)新增电容硬件版本号属性

URI: /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid
变化类型:在Oem字段下新增Capacitor对象,并在该对象下新增属性HardwareVersion
操作类型:GET
权限: ReadOnly
参数说明:

属性名称 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
HardwareVersion string 硬件版本号 大于等于0的纯数字字符串 “” ReadOnly 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

响应示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerSupplies.PowerSupplies",
    "@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1",
    "@odata.type": "#PowerSupply.v1_6_0.PowerSupply",
    "Id": "1",
    "Name": "Power Supply 1",
    "FirmwareVersion": "",
    "LineInputStatus": "",
    "Manufacturer": "XXX",
    "Model": "",
    "PartNumber": "",
    "PowerSupplyType": 1,
    "ProductionDate": "2023-04-19",
    "SerialNumber": "",
    "Metrics": {
        "odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1/Metrics"
    },
    "Status": {
        "State": "Enabled",
        "Health": "OK"
    },
    "Oem": {
        "OemIdentifier": {
            "DeepSleepEnabled": true,
            "Capacitor": {
                "HardwareVersion": "0"
            }
        }
    }
}

决策点4:在web接口(/UI/Rest/System/PowerSupply)新增电容硬件版本号

URI: /UI/Rest/System/PowerSupply
变化类型:在SupplyList下新增Capacitor对象,并在该对象下新增属性HardwareVersion
操作类型:GET
权限: ReadOnly
参数说明:

属性名称 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
HardwareVersion string 硬件版本号 大于等于0的纯数字字符串 “” ReadOnly 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

响应示例:

"SupplyList": [
        {
            "Manufacturer": "",
            "PartNumber": "",
            "Model": "",
            "ManufactureDate": "",
            "OutputVoltage": 54,
            "FirmwareVersion": "DC:27 PFC:27 TURBO_MODEL:a127 CAN:26 TURBO_CHIP:00",
            "InputWatts": 1808,
            "SerialNumber": "",
            "Name": "PSU1",
            "LineInputVoltage": 224,
            "PowerSupplyChannel": "MainCircuit",
            "PowerSupplyType": "AC",
            "PowerCapacityWatts": 6600,
            "Position": "PowerShelf1",
            "Capacitor": {
                "HardwareVersion": "0"
            }
        }
]

决策点5:新增双输入供电故障恢复回切时间配置属性RetransferDelaySeconds

新增path :/bmc/kepler/PowerEquipment/PowerDistribution
新增interface :bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration
新增属性:RetransferDelaySeconds用于表示双输入供电故障恢复回切时间,即从备用电路自动切回主用电路的延迟时间

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
RetransferDelaySeconds 新增属性 u 读:ReadOnly
写:PowerMgmt
掉电持久化 false 通过电源管理协议从电源读取后更新 表示备用电路自动切回主用电路的延迟时间,单位为秒,默认值为1800s 属性仅适用于机柜管理场景双输入电源

决策点6:新增双输入供电故障恢复回切时间定制项BMCSet_RetransferDelaySeconds

定制化项名称:BMCSet_RetransferDelaySeconds
应用场景:当电源出现双输入供电故障时设置的恢复回切时间,使其自动恢复
定制化项详细说明:

定制化项名称 定制化项 归属组件 取值说明 默认值 处理逻辑(伪代码) 说明 实现方式
设置电源双输入供电故障恢复回切时间(Retransfer delay seconds) BMCSet_RetransferDelaySeconds power_mgmt 取值范围10s-16200s 默认值为1800s if (BMCSet_RetransferDelaySeconds为空)
        设置电源主备路切换延时等待时间为1800
else
        if BMCSet_RetransferDelaySeconds< 10 or BMCSet_RetransferDelaySeconds> 16200
         返回参数错误
else
         设置电源双输入供电故障恢复回切时间
TPSU模块输入供电异常后,由主路切换到备路供电,当主路供电恢复后,供电由备路切换回主路的延迟等待时间 配置文件导入

决策点7:新增电容容量属性CapacityMicrofarads

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor.Metrics
新增属性:CapacityMicrofarads用于表示容量

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
CapacityMicrofarads 新增属性 u 只读,读:ReadOnly 不持久化 false 通过电源管理协议从电源读取后更新 表示容量,单位为微法拉,默认值为0 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

决策点8:新增继电器切换次数属性RelaySwitchedCount

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower
新增属性:RelaySwitchedCount用于表示继电器切换次数

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
RelaySwitchedCount 新增属性 q 只读,读:ReadOnly 不持久化 false 通过电源管理协议从电源读取后更新 表示继电器切换次数,默认值为0
注:继电器属于电源中的一个硬件器件,用于实现双路源之间的切换
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

决策点9:新增TPSU告警状态属性TPSUStatusHigh和TPSUStatusLow

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower.Status
新增属性:TPSUStatusHigh和TPSUStatusLow用于表示TPSU整流模块信息状态

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
TPSUStatusHigh 新增属性 u 只读,读:ReadOnly 不持久化 true 通过电源管理协议从电源读取后更新 表示整流模块告警高32位信息,TPSUStatusHigh和TPSUStatusLow完整表示告警信息(该属性当前累计48位),每一位均表示一种类型的告警,默认值为0 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值
TPSUStatusLow 新增属性 u 只读,读:ReadOnly 不持久化 true 通过电源管理协议从电源读取后更新 表示整流模块告警低32位信息,TPSUStatusHigh和TPSUStatusLow完整表示告警信息(该属性当前累计48位),每一位均表示一种类型的告警,默认值为0 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值

评审结论

决策点1:新增硬件版本号属性HardwareVersion

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

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:HardwareVersion

属性 签名 访问权限 持久化 变化通知
HardwareVersion s 只读,读:ReadOnly 不持久化 false

决策点2:新增电压防抖时间属性VOUTDebounceMilliseconds和放电深度属性DepthOfDischargeVolts,设置电压防抖时间方法SetVOUTDebounceMilliseconds,设置放电深度方法SetDepthOfDischargeVolts

结论:同意新增电压防抖时间和放电深度属性,设置电压防抖时间和设置放电深度方法

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:VOUTDebounceMilliseconds,DepthOfDischargeVolts

属性 签名 访问权限 持久化 变化通知 说明
VOUTDebounceMilliseconds u 只读,读:ReadOnly 不持久化 false 电容输出电压采样防抖时间,单位:毫秒
DepthOfDischargeVolts u 只读,读:ReadOnly 不持久化 false 电容放电深度,单位:V,即电容放电后的最低电压

新增方法:SetVOUTDebounceMilliseconds,SetDepthOfDischargeVolts

方法 请求签名 响应签名 操作权限 说明
SetVOUTDebounceMilliseconds u NA PowerMgmt 设置电容输出电压采样防抖时间
SetDepthOfDischargeVolts u NA PowerMgmt 设置电容柜放电深度

决策点3:在redfish接口(/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid)新增电容硬件版本号属性

结论:同意在redfish接口新增电容硬件版本号属性

URI: /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid
变化类型:在Oem对象中新增Capacitor对象,并在该对象新增属性HardwareVersion,类型为string
操作类型:GET
权限: ReadOnly

决策点4:在web接口(/UI/Rest/System/PowerSupply)新增电容硬件版本号

结论:同意在web接口新增电容硬件版本号属性

URI: /UI/Rest/System/PowerSupply
变化类型:在SupplyList下新增Capacitor对象,并在该对象新增属性HardwareVersion,类型为string
操作类型:GET
权限: ReadOnly

决策点5:新增双输入供电故障恢复回切时间配置属性RetransferDelaySeconds

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

新增path:/bmc/kepler/PowerEquipment/PowerDistribution
新增interface:bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration
新增属性:RetransferDelaySeconds

属性 签名 访问权限 持久化 变化通知 说明
RetransferDelaySeconds u 读:ReadOnly
写:PowerMgmt
掉电持久化 false 供电线路从备用切回主用的延迟时间,单位:秒,0表示不支持此双输入供电线路

决策点6:新增双输入供电故障恢复回切时间定制项BMCSet_RetransferDelaySeconds

结论:同意新增双输入供电故障恢复回切时间定制项,BMCSet_RetransferDelaySeconds

决策点7:新增电容容量属性CapacityMicrofarads

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

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor.Metrics

属性 签名 访问权限 持久化 变化通知 说明
CapacityMicrofarads u 只读,读:ReadOnly 不持久化 false 电容实时容量,单位:微法(μF)

遗留问题及确认结论:

问题:确认电容容量是否为额定值,若是额定值则不需要放到Metrics下;
结论:与电源确认,电容容量为可变化值,因此将其放至Metrics下即可;

决策点8:新增继电器切换次数属性RelaySwitchedCount

结论:同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower新增继电器切换次数属性

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower
新增属性:RelaySwitchedCount

属性 签名 访问权限 持久化 变化通知 说明
RelaySwitchedCount q 只读,读:ReadOnly 不持久化 false 电源内部继电器切换次数

遗留问题及确认结论:

问题:是否需要将属性值放到供电电路相关接口下(circuit)
结论:与电源确认,继电器属于电源中的一个硬件器件,用于实现双路源之间的切换,因此该属性添加到电源相关接口:bmc.kepler.Systems.PowerMgmt.OnePower

决策点9:新增TPSU告警状态属性TPSUStatusHigh和TPSUStatusLow

结论:同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower.Status新增TPSU告警状态属性

path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower.Status
新增属性:TPSUStatusHigh,TPSUStatusLow

属性 签名 访问权限 持久化 变化通知 说明
TPSUStatusHigh u 只读,读:ReadOnly 不持久化 true TPSU状态位高4字节,按bit定义状态
TPSUStatusLow u 只读,读:ReadOnly 不持久化 true TPSU状态位低4字节,按bit定义状态