【已评审】支持RackPDUs及其子资源接口

背景

为更好适配Redfish数据模型规范,需在PowerEquipment资源下新增RackPDUs及其子资源接口,支持RackPDU实例的查询与修改、Metrics指标查询、ResetMetrics/TransferControl Action操作以及Mains/Branches Circuit集合与实例查询。

关联ISSUE

支持PowerEquipment资源提供RackPDUs属性

评审点

1、在/redfish/v1/PowerEquipment/RackPDUs下新增RackPDUs Collection查询接口
2、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}下新增RackPDU Instance查询接口(GET)
3、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}下新增RackPDU Instance修改接口(PATCH)
4、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics下新增Metrics查询接口
5、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics下新增POST接口ResetMetrics
6、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Actions/PowerDistribution.TransferControl下新增POST接口TransferControl
7、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains下新增Mains Circuit Collection查询接口
8、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches下新增Branches Circuit Collection查询接口
9、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains/{CircuitId}下新增Mains Circuit Instance查询接口
10、在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches/{CircuitId}下新增Branches Circuit Instance查询接口

详细描述

评审点1:在/redfish/v1/PowerEquipment/RackPDUs下新增RackPDUs Collection查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs

资源版本:PowerDistributionCollection.PowerDistributionCollection

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#PowerDistributionCollection.PowerDistributionCollection ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs ReadOnly 资源OID
@odata.type string #PowerDistributionCollection.PowerDistributionCollection ReadOnly 资源类型
Id string RackPDUs ReadOnly 资源ID
Name string RackPDUs Collection ReadOnly 资源名称
Members@odata.count integer - ReadOnly 集合成员数量
Members array - ReadOnly 集合成员列表,通过Plugin获取Members并支持IsPowerDistributionSupported校验

评审点2:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}下新增RackPDU Instance查询接口(GET)

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}

资源版本:PowerDistribution.v1_5_0

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#PowerDistribution.PowerDistribution ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id} ReadOnly 资源OID
@odata.type string #PowerDistribution.v1_5_0.PowerDistribution ReadOnly 资源类型
Id string {PowerDistributionId} ReadOnly 资源ID
Name string RackPDU {PowerDistributionId} ReadOnly 资源名称
AssetTag string,null - Read:ReadOnly;Patch:PowerMgmt 资产标签
Branches/@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Branches ReadOnly Branches子资源链接
EquipmentType string,null 空值映射为null ReadOnly 设备类型
FirmwareVersion string,null - ReadOnly 固件版本
Links/Chassis array [{“@odata.id”: “/redfish/v1/Chassis/1”}] ReadOnly 关联的Chassis链接
Links/ManagedBy array [{“@odata.id”: “/redfish/v1/Managers/1”}] ReadOnly 管理者链接
Location/PartLocation/ServiceLabel string,null - ReadOnly 部件位置服务标签
Location/PartLocation/LocationOrdinalValue integer,null 255映射为null ReadOnly 部件位置序号
Location/PartLocation/LocationType string,null 空值映射为null ReadOnly 位置类型
Location/PartLocation/Orientation string,null 空值映射为null ReadOnly 方向
Location/PartLocation/Reference string,null 空值映射为null ReadOnly 参考点
Mains/@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Mains ReadOnly Mains子资源链接
Manufacturer string,null - ReadOnly 制造商
Metrics/@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Metrics ReadOnly Metrics子资源链接
Model string,null - ReadOnly 型号
PartNumber string,null - ReadOnly 部件号
PowerCapacityVA integer,null 4294967295映射为null ReadOnly 视在功率容量(VA)
ProductionDate string,null - ReadOnly 生产日期
SerialNumber string,null - ReadOnly 序列号
Status/State string 固定值:Enabled ReadOnly 资源状态
Status/Health string,null 0→OK, 1→Warning, 2→Warning, 3→Critical, 其他→null ReadOnly 健康状态
TransferConfiguration/ActiveMainsId string,null - Read:ReadOnly;Patch:PowerMgmt 当前活跃的主路ID
TransferConfiguration/AutoTransferEnabled boolean,null - Read:ReadOnly;Patch:PowerMgmt 是否启用自动切换
TransferConfiguration/ClosedTransitionAllowed boolean,null - Read:ReadOnly;Patch:PowerMgmt 是否允许闭环切换
TransferConfiguration/ClosedTransitionTimeoutSeconds integer,null 4294967295映射为null Read:ReadOnly;Patch:PowerMgmt 闭环切换超时时间(秒)
TransferConfiguration/PreferredMainsId string,null - Read:ReadOnly;Patch:PowerMgmt 首选主路ID
TransferConfiguration/RetransferDelaySeconds integer,null 4294967295映射为null Read:ReadOnly;Patch:PowerMgmt 回切延迟时间(秒)
TransferConfiguration/RetransferEnabled boolean,null - Read:ReadOnly;Patch:PowerMgmt 是否启用回切
TransferConfiguration/TransferDelaySeconds integer,null 4294967295映射为null Read:ReadOnly;Patch:PowerMgmt 切换延迟时间(秒)
TransferConfiguration/TransferInhibit boolean,null - Read:ReadOnly;Patch:PowerMgmt 是否禁止切换
TransferCriteria/OverNominalFrequencyHz number,null - Read:ReadOnly;Patch:PowerMgmt 过频阈值(Hz)
TransferCriteria/OverVoltageRMSPercentage number,null 255映射为null Read:ReadOnly;Patch:PowerMgmt 过压百分比
TransferCriteria/TransferSensitivity string,null 枚举值:[High, Medium, Low],空值映射为null Read:ReadOnly;Patch:PowerMgmt 切换灵敏度
TransferCriteria/UnderNominalFrequencyHz number,null - Read:ReadOnly;Patch:PowerMgmt 欠频阈值(Hz)
TransferCriteria/UnderVoltageRMSPercentage number,null 255映射为null Read:ReadOnly;Patch:PowerMgmt 欠压百分比
UserLabel string,null - Read:ReadOnly;Patch:PowerMgmt 用户标签
UUID string,null - ReadOnly 通用唯一标识符
Version string,null - ReadOnly 版本信息
Actions/#PowerDistribution.TransferControl/target string /redfish/v1/PowerEquipment/RackPDUs/{id}/Actions/PowerDistribution.TransferControl ReadOnly TransferControl操作目标
Actions/#PowerDistribution.TransferControl/@Redfish.ActionInfo string /redfish/v1/PowerEquipment/RackPDUs/{id}/TransferControlActionInfo ReadOnly TransferControl操作信息链接

Schema定义:

"AssetTag": {
    "description": "The user-assigned asset tag for this equipment.",
    "longDescription": "This property shall contain the user-assigned asset tag, which is an identifying string that tracks the equipment for inventory purposes.  Modifying this property may modify the `AssetTag` in the containing `Chassis` resource.",
    "readonly": false,
    "type": [
        "string",
        "null"
    ]
},
"TransferConfiguration": {
    "anyOf": [
        {
            "$ref": "#/definitions/TransferConfiguration"
        },
        {
            "type": "null"
        }
    ],
    "description": "The configuration settings for an automatic transfer switch.",
    "longDescription": "This property shall contain the configuration information regarding an automatic transfer switch function for this resource."
},
"TransferCriteria": {
    "anyOf": [
        {
            "$ref": "#/definitions/TransferCriteria"
        },
        {
            "type": "null"
        }
    ],
    "description": "The criteria used to initiate a transfer for an automatic transfer switch.",
    "longDescription": "This property shall contain the criteria for initiating a transfer within an automatic transfer switch function for this resource."
}

评审点3:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}下新增RackPDU Instance修改接口(PATCH)

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}

资源版本:PowerDistribution.v1_5_0

操作权限:PowerMgmt

输入参数:

属性名 类型 示例/取值约束 描述
AssetTag string - 修改资产标签
UserLabel string - 修改用户标签
TransferConfiguration/ActiveMainsId string - 修改当前活跃的主路ID
TransferConfiguration/AutoTransferEnabled boolean - 修改是否启用自动切换
TransferConfiguration/ClosedTransitionAllowed boolean - 修改是否允许闭环切换
TransferConfiguration/ClosedTransitionTimeoutSeconds integer - 修改闭环切换超时时间(秒)
TransferConfiguration/PreferredMainsId string - 修改首选主路ID
TransferConfiguration/RetransferDelaySeconds integer - 修改回切延迟时间(秒)
TransferConfiguration/RetransferEnabled boolean - 修改是否启用回切
TransferConfiguration/TransferDelaySeconds integer - 修改切换延迟时间(秒)
TransferConfiguration/TransferInhibit boolean - 修改是否禁止切换
TransferCriteria/OverNominalFrequencyHz number - 修改过频阈值(Hz)
TransferCriteria/OverVoltageRMSPercentage number - 修改过压百分比
TransferCriteria/TransferSensitivity string 枚举值:[High, Medium, Low] 修改切换灵敏度,仅允许High/Medium/Low
TransferCriteria/UnderNominalFrequencyHz number - 修改欠频阈值(Hz)
TransferCriteria/UnderVoltageRMSPercentage number - 修改欠压百分比

评审点4:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics下新增Metrics查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics

资源版本:PowerDistributionMetrics.v1_4_0

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#PowerDistributionMetrics.PowerDistributionMetrics ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Metrics ReadOnly 资源OID
@odata.type string #PowerDistributionMetrics.v1_4_0.PowerDistributionMetrics ReadOnly 资源类型
Id string Metrics ReadOnly 资源ID
Name string Summary Metrics ReadOnly 资源名称
PowerWatts/Reading number,null 4294967295映射为null ReadOnly 有功功率读数(W),IgnoreEtags
PowerWatts/ApparentVA number,null -1映射为null ReadOnly 视在功率(VA)
PowerWatts/PhaseAngleDegrees number,null 1000映射为null ReadOnly 相角(度)
PowerWatts/PowerFactor number,null -1映射为null ReadOnly 功率因数
PowerWatts/ReactiveVAR number,null -1映射为null ReadOnly 无功功率(VAR)
EnergykWh/Reading number,null -1映射为null ReadOnly 电能读数(kWh),IgnoreEtags
EnergykWh/ApparentkVAh number,null -1映射为null ReadOnly 视在电能(kVAh)
EnergykWh/LifetimeReading number,null -1映射为null ReadOnly 累计电能读数(kWh)
EnergykWh/ReactivekVARh number,null -1映射为null ReadOnly 无功电能(kVARh)
EnergykWh/SensorResetTime string,null - ReadOnly 传感器重置时间
AbsoluteHumidity/Reading number,null -1映射为null ReadOnly 绝对湿度读数,IgnoreEtags
HumidityPercent/Reading number,null 255映射为null ReadOnly 相对湿度读数(%),IgnoreEtags
PowerLoadPercent/Reading number,null 255映射为null ReadOnly 负载百分比读数,IgnoreEtags
TemperatureCelsius/Reading number,null 255映射为null ReadOnly 温度读数(℃),IgnoreEtags
Actions/#PowerDistributionMetrics.ResetMetrics/target string /redfish/v1/PowerEquipment/RackPDUs/{id}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics ReadOnly ResetMetrics操作目标
Actions/#PowerDistributionMetrics.ResetMetrics/@Redfish.ActionInfo string /redfish/v1/PowerEquipment/RackPDUs/{id}/Metrics/ResetMetricsActionInfo ReadOnly ResetMetrics操作信息链接

Schema定义:

"PowerWatts": {
    "anyOf": [
        {
            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorPowerExcerpt"
        },
        {
            "type": "null"
        }
    ],
    "description": "Power consumption (W).",
    "excerptCopy": "SensorPowerExcerpt",
    "longDescription": "This property shall contain the total power, in watt units, for this resource that represents the `Total` `ElectricalContext` sensor when multiple power sensors exist.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Power`."
},
"EnergykWh": {
    "anyOf": [
        {
            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorEnergykWhExcerpt"
        },
        {
            "type": "null"
        }
    ],
    "description": "Energy consumption (kWh).",
    "excerptCopy": "SensorEnergykWhExcerpt",
    "longDescription": "This property shall contain the total energy, in kilowatt-hour units, for this resource that represents the `Total` `ElectricalContext` sensor when multiple energy sensors exist.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `EnergykWh`."
}

评审点5:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics下新增POST接口ResetMetrics

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics

资源版本:PowerDistributionMetrics.v1_4_0

操作权限:PowerMgmt

输入参数:

无请求参数

ActionInfo:

/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics/ResetMetricsActionInfo

评审点6:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Actions/PowerDistribution.TransferControl下新增POST接口TransferControl

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Actions/PowerDistribution.TransferControl

资源版本:PowerDistribution.v1_5_0

操作权限:PowerMgmt

输入参数:

无请求参数

ActionInfo:

/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/TransferControlActionInfo

评审点7:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains下新增Mains Circuit Collection查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains

资源版本:CircuitCollection.CircuitCollection

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#CircuitCollection.CircuitCollection ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Mains ReadOnly 资源OID
@odata.type string #CircuitCollection.CircuitCollection ReadOnly 资源类型
Name string Mains Circuit Collection ReadOnly 资源名称
Members@odata.count integer - ReadOnly 集合成员数量
Members array - ReadOnly 集合成员列表,通过Script过滤CircuitType为Mains的Circuit

评审点8:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches下新增Branches Circuit Collection查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches

资源版本:CircuitCollection.CircuitCollection

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#CircuitCollection.CircuitCollection ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Branches ReadOnly 资源OID
@odata.type string #CircuitCollection.CircuitCollection ReadOnly 资源类型
Name string Branch Circuit Collection ReadOnly 资源名称
Members@odata.count integer - ReadOnly 集合成员数量
Members array - ReadOnly 集合成员列表,通过Script过滤CircuitType为Branch的Circuit

评审点9:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains/{CircuitId}下新增Mains Circuit Instance查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains/{CircuitId}

资源版本:Circuit.v1_8_1

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#Circuit.Circuit ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Mains/{circuitId} ReadOnly 资源OID
@odata.type string #Circuit.v1_8_1.Circuit ReadOnly 资源类型
Id string - ReadOnly Circuit ID
Name string Mains Circuit {circuitId} ReadOnly 资源名称
CircuitType string - ReadOnly 电路类型,通过Mdb.GetPath按CircuitType为Mains查询
PhaseWiringType string,null 空值映射为null ReadOnly 相位接线类型
NominalVoltage string,null 空值映射为null ReadOnly 标称电压
Status/State string 固定值:Enabled ReadOnly 电路状态
Status/Health string,null 0→OK, 1→Warning, 2→Warning, 3→Warning, 其他→null ReadOnly 电路健康状态,基于InputVoltageStatus映射

评审点10:在/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches/{CircuitId}下新增Branches Circuit Instance查询接口

资源URI:/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches/{CircuitId}

资源版本:Circuit.v1_8_1

操作权限:ReadOnly

响应参数:

属性名 类型 示例/取值约束 readonly 易变属性 实现patch 操作权限 描述
@odata.context string /redfish/v1/$metadata#Circuit.Circuit ReadOnly 资源上下文
@odata.id string /redfish/v1/PowerEquipment/RackPDUs/{id}/Branches/{circuitId} ReadOnly 资源OID
@odata.type string #Circuit.v1_8_1.Circuit ReadOnly 资源类型
Id string - ReadOnly Circuit ID
Name string Branch Circuit {circuitId} ReadOnly 资源名称
CircuitType string - ReadOnly 电路类型,通过Mdb.GetPath按CircuitType为Branch查询
PhaseWiringType string,null 空值映射为null ReadOnly 相位接线类型
NominalVoltage string,null 空值映射为null ReadOnly 标称电压
Status/State string 固定值:Enabled ReadOnly 电路状态
Status/Health string,null 0→OK, 1→Warning, 2→Warning, 3→Warning, 其他→null ReadOnly 电路健康状态,基于InputVoltageStatus映射

评审结论

  1. 同意新增redfish标准接口/redfish/v1/PowerEquipment/RackPDUs及相关标准属性,详细信息见评审点1;
  2. 同意新增redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}及相关标准可读属性,详细信息见评审点2;
  3. 同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}相关可写属性支持设置,详细信息见评审点3;
  4. 同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics及相关标准可读属性,详细信息见评审点4;
  5. 同意新增redfish标准POST接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics,详细信息见评审点5;
  6. 同意新增redfish标准POST接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Actions/PowerDistribution.TransferControl,详细信息见评审点6;
    7.同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains及相关标准可读属性,详细信息见评审点7;
    8.同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches及相关标准可读属性,详细信息见评审点8;
    9.同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Mains/{CircuitId}及相关标准可读属性,详细信息见评审点9;
    10.同意redfish标准接口/redfish/v1/PowerEquipment/RackPDUs/{PowerDistributionId}/Branches/{CircuitId}及相关标准可读属性,详细信息见评审点10;

操作权限错误,ConfigureComponents不属于九大权限

Schema为啥只有小部分内容,理论上这些都是标准Schema提供的

schema本身就是redfish标准,不是本次开发内容,为什么还要全部粘贴呢?

其他如果是已有内容就先不添加了,权限修正一下

两个POST方法的操作权限应为PowerMgmt,这里的九大权限可参考 Redfish PrivilegeMap配置说明 - Interface SIG - openUBMC 论坛

ok,我改下