【已评审】 redfish 支持PowerEquipment/PowerDistribution资源

背景
当前redfish标准接口存在缺失,需要新增redfish PowerEquipment/PowerDistribution标准接口。

关联ISSUE
[需求]: redfish 支持PowerEquipment/PowerDistribution资源

评审点
评审点1:
新增PowerEquipment资源
评审点2:
新增 PowerDistributionCollection资源
评审点3:
新增 PowerDistribution资源
评审点4:
新增PowerDistribution资源Action
评审点5:
新增PowerDistributionMetric资源
评审点6:
新增PowerDistributionMetric资源Action
评审点7:
PowerSubsystem资源新增属性

详细描述
评审点1:
资源URI:/redfish/v1/PowerEquipment
资源版本:PowerEquipment.v1_2_3
PowerEquipment schema
变化类型:新增URI
操作类型: GET
应用场景:获取PowerEquipment信息

RspBody响应体结构:

一级属性 二级属性 三级属性 属性说明
@odata.context / / PowerEquipment资源的的OData描述信息,/redfish/v1/$metadata#PowerEquipment.PowerEquipment
@odata.id / / PowerEquipment资源URI的访问路径, /redfish/v1/PowerEquipment
@odata.type / / PowerEquipment资源schema版本号,#PowerEquipment.v1_2_3.PowerEquipment
Id / / PowerEquipment资源 Id
Name / / PowerEquipment资源名称
Status / / /
State / PowerEquipment资源使能状态
HealthRollup PowerEquipment资源健康状态
Links / / /
ManagedBy / /
@odata.id 指向负责管理此设备的Manager的链接
PowerShelves / / /
@odata.id 链接到PowerShelves的集合

新增serviceRoot资源的PowerEquipment资源链接,
URI: /redfish/v1

一级属性 二级属性 类型 说明
PowerEquipment @odata.id string PowerEquipment资源链接,/redfish/v1/PowerEquipment

schema说明:
新增schema文件PowerEquipment.v1_2_3.json

                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource."
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "ElectricalBuses": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "The link to a collection of electrical buses.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of electrical bus units.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "FloorPDUs": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "A link to a collection of floor power distribution units.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of floor power distribution units.",
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PowerShelves": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "A link to a collection of power shelves.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of power shelves.",
                    "readonly": true,
                    "versionAdded": "v1_1_0"
                },
                "RackPDUs": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "A link to a collection of rack-level power distribution units.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of rack-level power distribution units.",
                    "readonly": true
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "Switchgear": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "A link to a collection of switchgear.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of switchgear.",
                    "readonly": true
                },
                "TransferSwitches": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionCollection.json#/definitions/PowerDistributionCollection",
                    "description": "A link to a collection of transfer switches.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerDistributionCollection` that contains a set of transfer switches.",
                    "readonly": true
                }
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ]

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerEquipment.PowerEquipment",
    "@odata.id": "/redfish/v1/PowerEquipment",
    "@odata.type": "#PowerEquipment.v1_2_3.PowerEquipment",
    "Id": "PowerEquipment",
    "Name": "DCIM Power Equipment",
    "Status": {
        "State": "Enabled",
        "HealthRollup": "OK"
    },
    "Links": {
        "ManagedBy": [
            {
                "@odata.id": "/redfish/v1/Managers/1"
            }
        ]
    },
    "PowerShelves": {
        "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves"
    }
}

评审点2:
资源URI:
/redfish/v1/PowerEquipment/PowerShelves
资源版本:PowerDistributionCollection
变化类型:新增URI
操作类型: GET
应用场景:获取PowerDistributionCollection信息

RspBody响应体结构:

一级属性 二级属性 三级属性 属性说明
@odata.context / / PowerDistributionCollection资源的的OData描述信息,/redfish/v1/$metadata#PowerDistributionCollection.PowerDistributionCollection
@odata.id / / PowerDistributionCollection资源URI的访问路径
@odata.type / / PowerDistributionCollection资源schema版本号,#PowerDistributionCollection.PowerDistributionCollection
Id / / PowerDistributionCollection资源 Id
Name / / PowerDistributionCollection资源名称
Members@odata.count / / PowerDistribution资源的成员个数
Members @odata.id / PowerDistribution资源的成员链接

schema说明:
新增schema文件PowerDistributionCollection.json

                        "@odata.context": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                        },
                        "@odata.etag": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                        },
                        "@odata.id": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                        },
                        "@odata.type": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                        },
                        "Description": {
                            "anyOf": [
                                {
                                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "readonly": true
                        },
                        "Members": {
                            "description": "The members of this collection.",
                            "items": {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistribution.json#/definitions/PowerDistribution"
                            },
                            "longDescription": "This property shall contain an array of links to the members of this collection.",
                            "readonly": true,
                            "type": "array"
                        },
                        "Members@odata.count": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                        },
                        "Members@odata.nextLink": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/nextLink"
                        },
                        "Name": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                            "readonly": true
                        },
                        "Oem": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                            "description": "The OEM extension property.",
                            "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                        }
                    },
                    "required": [
                        "Members",
                        "Members@odata.count",
                        "@odata.id",
                        "@odata.type",
                        "Name"
                    ],
                    "type": "object"
                }

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerDistributionCollection.PowerDistributionCollection",
    "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves",
    "@odata.type": "#PowerDistributionCollection.PowerDistributionCollection",
    "Id": "PowerShelves",
    "Name": "PowerShelves Collection",
    "Members@odata.count": 1,
    "Members": [
        {
            "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1"
        }
    ]
}

评审点3:
资源URI:
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}
资源版本:PowerDistribution.v1_5_0
PowerDistribution
变化类型:新增URI
操作类型: GET/PATCH
操作权限:GET–>ReadOnly ;PATCH–>PowerMgmt
应用场景:获取/设置PowerDistribution相关信息

属性说明

一级属性 二级属性 三级属性 类型 默认值 取值约束 易变属性 实现PATCH 操作权限 描述
AssetTag / / string “” / PowerMgmt 用户分配给此设备的资产标签
Branches / / object / / / / / /
@odata.id / string / / ReadOnly 连接到此设备的分支电路的链接
EquipmentType / / string “” 枚举:RackPDU,FloorPDU,Switchgear,PowerShelf,AutomaticTransferSwitch,ManualTransferSwitch ReadOnly 设备类型
FirmwareVersion / / string “” / ReadOnly 制造商提供的固件版本
Links / / object / / / / / /
Chassis / array / / / / / /
@odata.id string / / ReadOnly 包含此设备的Chassis链接
ManagedBy / array / / / / / /
@odata.id string / / ReadOnly 指向负责管理此设备的Manager的链接
Location object / / / / / /
PartLocation / object / / / / / /
ServiceLabel string “” / ReadOnly 设备的标识标签
LocationOrdinalValue integer,null / / ReadOnly 设备位置排序编号
LocationType string,null null 枚举:Backplane,Bay,Connector,Embedded,Slot,Socket ReadOnly 设备位置类型
Orientation string,null null 枚举,BackToFront,BottomToTop,FrontToBack,LeftToRight,RightToLeft,TopToBottom ReadOnly 设备的安装方向
Reference string,null null 枚举:Bottom,Front,Left,Middle,Rear,Right,Top ReadOnly 设备的大体位置
Manufacturer / / string “” / ReadOnly 设备制造商
Mains / / object / / / / / /
@odata.id / string / / ReadOnly 连接到此设备的电源输入电路的链接
Metrics / / object / / / / / /
@odata.id / string / / ReadOnly 此设备的摘要度量的链接
Model / / string “” / ReadOnly 设备型号
PartNumber / / string “” / ReadOnly 设备部件号
PowerCapacityVA / / integer,null / / ReadOnly 该设备的最大功率容量
ProductionDate / / string “” / ReadOnly 设备生产日期,格式为 YYYY-MM-DDThh:mm:ssZ 的合法时间字符串
SerialNumber / / string “” / ReadOnly 设备序列号
Status / / object / / / / / /
State / string Enabled / ReadOnly 设备使能状态
Health / string ”OK“ [“OK”,“Warning”,“Critical”] ReadOnly 设备健康状态
TransferConfiguration / / object / / / / / /
ActiveMainsId / string,null “” “0”, “1” PowerMgmt 为输出电路供电的电源电路
AutoTransferEnabled / bool false [true,false] PowerMgmt 当首选市电电路变为不合格时,合格的备用市电电路是否自动接通,并自动断开
ClosedTransitionAllowed / bool false [true,false] PowerMgmt 指示当主电源电路都合格且处于同步状态时,是否允许其先通后断切换顺序
ClosedTransitionTimeoutSeconds / integer,null / / PowerMgmt 等待关闭的转换发生的时间(以秒为单位)
PreferredMainsId / string “” “0”, “1” PowerMgmt 连接到此设备的电源电路的首选源
RetransferDelaySeconds / integer,null / / PowerMgmt 从备用市电电路到首选市电电路的自动转换延迟的时间,以秒为单位
RetransferEnabled / bool false [true,false] PowerMgmt 允许从备用市电线路自动切换到备用市电线路
TransferDelaySeconds / integer,null / / PowerMgmt 当首选市电电路失效时,从首选市电电路到备用市电电路的自动转换延迟的时间,以秒为单位
TransferInhibit / bool false [true,false] PowerMgmt 是否禁止转移
TransferCriteria / / object / / / / / /
OverNominalFrequencyHz / number 0 / PowerMgmt 以赫兹单位表示的频率
OverVoltageRMSPercentage / number ,null . / PowerMgmt 电压有效值在标称值以上的正百分比
TransferSensitivity / string, null null [“High”,“Low”,“Medium”] PowerMgmt 对电压波形质量的敏感度满足启动转移的标准
UnderNominalFrequencyHz / number 0 / PowerMgmt 以赫兹单位表示的符合传递准则的标称值的频率
UnderVoltageRMSPercentage / number,null / / PowerMgmt 电压有效值在标称值以下的负百分比
UserLabel / / string “” / PowerMgmt 用户分配的标签
UUID / / string “” / ReadOnly 设备的UUID
Version / / string “” / ReadOnly 设备的硬件版本
Actions / / object / / / / / /
#PowerDistribution.TransferControl / object / / / / / /
target string / / ReadOnly Action资源链接,将电源输入从现有市电电路转移到备用市电电路
@Redfish.ActionInfo string / / ReadOnly ActionInfo资源链接

schema说明:
新增schema文件PowerDistribution.v1_5_0.json

                "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"
                    ]
                },
                "Branches": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/CircuitCollection.json#/definitions/CircuitCollection",
                    "description": "A link to the branch circuits for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `CircuitCollection` that contains the branch circuits for this equipment.",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "EquipmentType": {
                    "$ref": "#/definitions/PowerEquipmentType",
                    "description": "The type of equipment this resource represents.",
                    "longDescription": "This property shall contain the type of equipment this resource represents.",
                    "readonly": true
                },
                "Feeders": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/CircuitCollection.json#/definitions/CircuitCollection",
                    "description": "A link to the feeder circuits for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `CircuitCollection` that contains the feeder circuits for this equipment.",
                    "readonly": true
                },
                "FirmwareVersion": {
                    "description": "The firmware version of this equipment.",
                    "longDescription": "This property shall contain a string describing the firmware version of this equipment as provided by the manufacturer.",
                    "readonly": true,
                    "type": "string"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "Location": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
                    "description": "The location of the equipment.",
                    "longDescription": "This property shall contain the location information of the associated equipment."
                },
                "Mains": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/CircuitCollection.json#/definitions/CircuitCollection",
                    "description": "A link to the power input circuits for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `CircuitCollection` that contains the power input circuits for this equipment.",
                    "readonly": true
                },
                "MainsRedundancy": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/RedundantGroup",
                    "description": "The redundancy information for the mains (input) circuits for this equipment.",
                    "longDescription": "This property shall contain redundancy information for the mains (input) circuits for this equipment.  The values of the `RedundancyGroup` array shall reference resources of type `Circuit`.",
                    "versionAdded": "v1_1_0"
                },
                "Manufacturer": {
                    "description": "The manufacturer of this equipment.",
                    "longDescription": "This property shall contain the name of the organization responsible for producing the equipment.  This organization may be the entity from which the equipment is purchased, but this is not necessarily true.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Metrics": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerDistributionMetrics.json#/definitions/PowerDistributionMetrics",
                    "description": "A link to the summary metrics for this equipment.",
                    "longDescription": "This property shall contain a link to a resource of type `PowerDistributionMetrics`.",
                    "readonly": true
                },
                "Model": {
                    "description": "The product model number of this equipment.",
                    "longDescription": "This property shall contain the manufacturer-provided model information of this equipment.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "MultipartImportConfigurationPushURI": {
                    "description": "The URI used to perform a Redfish Specification-defined multipart HTTP or HTTPS push import of a vendor-specific configuration file.",
                    "format": "uri-reference",
                    "longDescription": "This property shall contain a URI used to perform a multipart HTTP or HTTPS `POST` of a vendor-specific configuration file for the purpose of importing the configuration contained within the file as defined by the 'Import configuration data' clause of the Redfish Specification.  The value of this property should not contain a URI of a Redfish resource.  See the 'Redfish-defined URIs and relative reference rules' clause in the Redfish Specification.",
                    "readonly": true,
                    "type": "string",
                    "versionAdded": "v1_5_0"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "OutletGroups": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/OutletGroupCollection.json#/definitions/OutletGroupCollection",
                    "description": "A link to the outlet groups for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `OutletCollection` that contains the outlet groups for this equipment.",
                    "readonly": true
                },
                "Outlets": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/OutletCollection.json#/definitions/OutletCollection",
                    "description": "A link to the outlets for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `OutletCollection` that contains the outlets for this equipment.",
                    "readonly": true
                },
                "PartNumber": {
                    "description": "The part number for this equipment.",
                    "longDescription": "This property shall contain the manufacturer-provided part number for the equipment.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "PowerCapacityVA": {
                    "description": "The maximum power capacity, rated as apparent power, of this equipment, in volt-ampere units.",
                    "longDescription": "This property shall contain the maximum power capacity, rated as apparent power, of this equipment, in volt-ampere units.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "V.A",
                    "versionAdded": "v1_4_0"
                },
                "PowerSupplies": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PowerSupplyCollection.json#/definitions/PowerSupplyCollection",
                    "deprecated": "This property has been deprecated in favor of the `PowerSupplies` link in the `Chassis` resource.",
                    "description": "The link to the collection of power supplies for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `PowerSupplyCollection`.",
                    "readonly": true,
                    "versionAdded": "v1_1_0",
                    "versionDeprecated": "v1_3_0"
                },
                "PowerSupplyRedundancy": {
                    "deprecated": "This property has been deprecated in favor of the `PowerSupplyRedundancy` property in the `Chassis` resource.",
                    "description": "The redundancy information for the set of power supplies for this equipment.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/RedundantGroup"
                    },
                    "longDescription": "This property shall contain redundancy information for the set of power supplies for this equipment.  The values of the `RedundancyGroup` array shall reference resources of type `PowerSupply`.",
                    "type": "array",
                    "versionAdded": "v1_1_0",
                    "versionDeprecated": "v1_3_0"
                },
                "ProductionDate": {
                    "description": "The production or manufacturing date of this equipment.",
                    "format": "date-time",
                    "longDescription": "This property shall contain the date of production or manufacture for this equipment.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Sensors": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/SensorCollection.json#/definitions/SensorCollection",
                    "deprecated": "This property has been deprecated in favor of the `Sensors` link in the `Chassis` resource.",
                    "description": "A link to the collection of sensors located in the equipment and sub-components.",
                    "longDescription": "This property shall be a link to a resource collection of type `SensorCollection` that contains the sensors located in the equipment and sub-components.",
                    "readonly": true,
                    "versionDeprecated": "v1_3_0"
                },
                "SerialNumber": {
                    "description": "The serial number for this equipment.",
                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the equipment.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "Subfeeds": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/CircuitCollection.json#/definitions/CircuitCollection",
                    "description": "A link to the subfeed circuits for this equipment.",
                    "longDescription": "This property shall contain a link to a resource collection of type `CircuitCollection` that contains the subfeed circuits for this equipment.",
                    "readonly": true
                },
                "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."
                },
                "UUID": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The UUID for this equipment.",
                    "longDescription": "This property shall contain the UUID for the equipment.",
                    "readonly": true
                },
                "UserLabel": {
                    "description": "A user-assigned label.",
                    "longDescription": "This property shall contain a user-assigned label used to identify this resource.  If a value has not been assigned by a user, the value of this property shall be an empty string.",
                    "readonly": false,
                    "type": "string",
                    "versionAdded": "v1_3_0"
                },
                "Version": {
                    "description": "The hardware version of this equipment.",
                    "longDescription": "This property shall contain the hardware version of this equipment as determined by the vendor or supplier.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                }
            }

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerDistribution.PowerDistribution",
    "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1",
    "@odata.type": "#PowerDistribution.v1_5_0.PowerDistribution",
    "Id": "1",
    "Name": "PowerShelves 1",
    "AssetTag": "",
    "Branches": {
        "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Branches"
    },
    "EquipmentType": "PowerShelf",
    "FirmwareVersion": "",
    "Links": {
        "Chassis": [
            {
                "@odata.id": "/redfish/v1/Chassis/1"
            }
        ],
        "ManagedBy": [
            {
                "@odata.id": "/redfish/v1/Managers/1"
            }
        ]
    },
    "Location": {
        "PartLocation": {
            "ServiceLabel": "",
            "LocationOrdinalValue": null,
            "LocationType": "",
            "Orientation": "",
            "Reference": ""
        }
    },
    "Mains": {
        "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Mains"
    },
    "Manufacturer": "",
    "Metrics": {
        "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Metrics"
    },
    "Model": "",
    "PartNumber": "",
    "PowerCapacityVA": null,
    "ProductionDate": "",
    "SerialNumber": "",
    "Status": {
        "State": "Enabled",
        "Health": "OK"
    },
    "TransferConfiguration": {
        "ActiveMainsId": "",
        "AutoTransferEnabled": false,
        "ClosedTransitionAllowed": false,
        "ClosedTransitionTimeoutSeconds": null,
        "PreferredMainsId": "",
        "RetransferDelaySeconds": null,
        "RetransferEnabled": false,
        "TransferDelaySeconds": null,
        "TransferInhibit": false
    },
    "TransferCriteria": {
        "OverNominalFrequencyHz": 0,
        "OverVoltageRMSPercentage": null,
        "TransferSensitivity": null,
        "UnderNominalFrequencyHz": 0,
        "UnderVoltageRMSPercentage": null
    },
    "UserLabel": "",
    "UUID": "",
    "Version": "",
    "Actions": {
        "#PowerDistribution.TransferControl": {
            "target": "/redfish/v1/PowerEquipment/PowerShelves/1/Actions/PowerDistribution.TransferControl",
            "@Redfish.ActionInfo": "/redfish/v1/PowerEquipment/PowerShelves/1/TransferControlActionInfo"
        }
    }
}

评审点4:
资源URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Actions/PowerDistribution.TransferControl
资源版本:PowerDistribution.v1_5_0
PowerDistribution
变化类型:新增URI
操作类型: POST
操作权限 :PowerMgmt
应用场景:将电源输入从现有市电电路转移到备用市电电路
输入参数:no parameter
ActionInfo: /redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/TransferControlActionInfo

schema说明:
schema文件PowerDistribution.v1_5_0.json

        "TransferControl": {
            "additionalProperties": false,
            "description": "This action transfers control to the alternative input circuit.",
            "longDescription": "This action shall transfer power input from the existing mains circuit to the alternative mains circuit.",
            "parameters": {},
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "@Redfish.ActionInfo": {
                    "type": "string",
                    "readonly": true
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        }

RspBody响应体示例:

{
    "error": {
        "code": "Base.1.0.GeneralError",
        "message": "A general error has occurred. See ExtendedInfo for more information.",
        "@Message.ExtendedInfo": [
            {
                "@odata.type": "#Message.v1_0_0.Message",
                "MessageId": "Base.1.0.Success",
                "RelatedProperties": [],
                "Message": "Successfully Completed Request",
                "MessageArgs": [],
                "Severity": "OK",
                "Resolution": "None"
            }
        ]
    }
}

评审点5:
资源URI:
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Metrics
资源版本:PowerDistributionMetrics.v1_4_0
PowerDistributionMetrics
变化类型:新增URI
操作类型: GET
应用场景:获取/设置PowerDistributionMetrics摘要信息

属性说明

一级属性 二级属性 三级属性 类型 默认值 取值约束 易变属性 实现PATCH 操作权限 描述
AbsoluteHumidity / / object / / / / / /
Reading / number,null / / ReadOnly 此资源的绝对(容量)湿度传感器读数,单位为克每立方米单位
EnergykWh / / object / / / / / /
ApparentkVAh / number,nul / / ReadOnly 电能测量的视在能,以千伏-安培-小时单位表示
LifetimeReading / number,nul / / ReadOnly 传感器寿命期间阅读属性的总累积量
ReactivekVARh / number,nul / / ReadOnly 电能测量的无功电能,单位为千伏-安时(无功)单位
Reading / number ,nul / / ReadOnly 能耗值
SensorResetTime / string “” / ReadOnly 上次重置基于时间的属性的日期和时间,格式为 YYYY-MM-DDThh:mm:ssZ 的合法时间字符串
HumidityPercent / / object / / / / / /
Reading / number,nul / / ReadOnly 此资源的湿度百分比,单位为%
PowerLoadPercent / / object / / / / / /
Reading / number ,nul / / ReadOnly 此设备的电源负荷(百分比)
PowerWatts / / object / / / / / /
ApparentkVAh / number,nul 0/ / ReadOnly 交流电路的电压和电流的乘积,单位为伏安单位
PhaseAngleDegrees / number,nul / / ReadOnly 电流和电压波形之间的相角(度)
PowerFactor / number,nul / / ReadOnly 此传感器的功率因数
ReactiveVAR / number,nul / / ReadOnly 视在VA平方和功率平方的差项的平方根,以VAR为单位
Reading / number,nul / / ReadOnly 功耗传感器值
TemperatureCelsius / / object / / / / / /
Reading / number,nul / / ReadOnly 温度(摄氏度)
Actions / / object / / / / / /
#PowerDistributionMetrics.ResetMetrics / object / / / / / /
target string / / ReadOnly 资源action链接,重置与此设备相关的汇总指标
@Redfish.ActionInfo string / / ReadOnly 资源actionInfo链接

schema说明:
新增schema文件PowerDistributionMetrics.v1_4_0.json

                "AbsoluteHumidity": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Absolute humidity (g/m^3).",
                    "excerptCopy": "SensorExcerpt",
                    "longDescription": "This property shall contain the absolute (volumetric) humidity sensor reading, in grams per cubic meter units, for this resource.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `AbsoluteHumidity`.",
                    "versionAdded": "v1_3_0"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource."
                },
                "AmbientTemperatureCelsius": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Ambient temperature (Celsius).",
                    "excerptCopy": "SensorExcerpt",
                    "longDescription": "This property shall contain the ambient temperature, in degree Celsius units, for this resource.  The ambient temperature shall be the temperature measured at a point exterior to the `Chassis` containing this resource.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Temperature`.  This property shall only be present, if supported, in resource instances subordinate to a `Chassis` or `CoolingUnit` resource.",
                    "versionAdded": "v1_4_0"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "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`."
                },
                "HumidityPercent": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Humidity (percent).",
                    "excerptCopy": "SensorExcerpt",
                    "longDescription": "This property shall contain the humidity, in percent units, for this resource.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Humidity`.",
                    "versionAdded": "v1_1_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PowerLoadPercent": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The power load (percent) for this equipment.",
                    "excerptCopy": "SensorExcerpt",
                    "longDescription": "This property shall contain the power load, in percent units, for this device that represents the `Total` `ElectricalContext` for this device.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Percent`.",
                    "versionAdded": "v1_2_0"
                },
                "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`."
                },
                "TemperatureCelsius": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Temperature (Celsius).",
                    "excerptCopy": "SensorExcerpt",
                    "longDescription": "This property shall contain the temperature, in degree Celsius units, for this resource.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Temperature`.",
                    "versionAdded": "v1_1_0"
                }
            }

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerDistributionMetrics.PowerDistributionMetrics",
    "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Metrics",
    "@odata.type": "#PowerDistributionMetrics.v1_4_0.PowerDistributionMetrics",
    "Id": "Metrics",
    "Name": "Summary Metrics",
    "AbsoluteHumidity": {
        "Reading": null
    },
    "EnergykWh": {
        "ApparentkVAh": null,
        "LifetimeReading": null,
        "ReactivekVARh": null,
        "Reading": null,
        "SensorResetTime": ""
    },
    "HumidityPercent": {
        "Reading": null
    },
    "PowerLoadPercent": {
        "Reading": null
    },
    "PowerWatts": {
        "ApparentVA": null,
        "PhaseAngleDegrees": null,
        "PowerFactor": null,
        "ReactiveVAR": null,
        "Reading": null
    },
    "TemperatureCelsius": {
        "Reading": null
    },
    "Actions": {
        "#PowerDistributionMetrics.ResetMetrics": {
            "target": "/redfish/v1/PowerEquipment/PowerShelves/1/Metrics/Actions/PowerDistributionMetrics.ResetMetrics",
            "@Redfish.ActionInfo": "/redfish/v1/PowerEquipment/PowerShelves/1/Metrics/ResetMetricsActionInfo"
        }
    }
}

评审点6:
资源URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics
资源版本:PowerDistributionMetrics.v1_4_0
PowerDistributionMetrics
变化类型:新增URI
操作类型: POST
操作权限 :PowerMgmt
应用场景:重置与此设备相关的汇总指标
输入参数:no parameter
ActionInfo: /redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Metrics/ResetMetricsActionInfo

schema说明:
schema文件PowerDistributionMetrics.v1_4_0.json

        "ResetMetrics": {
            "additionalProperties": false,
            "description": "This action resets the summary metrics related to this equipment.",
            "longDescription": "This action shall reset any time intervals or counted values for this equipment.",
            "parameters": {},
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "@Redfish.ActionInfo": {
                    "type": "string",
                    "readonly": true
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        }

RspBody响应体示例:

{
    "error": {
        "code": "Base.1.0.GeneralError",
        "message": "A general error has occurred. See ExtendedInfo for more information.",
        "@Message.ExtendedInfo": [
            {
                "@odata.type": "#Message.v1_0_0.Message",
                "MessageId": "Base.1.0.Success",
                "RelatedProperties": [],
                "Message": "Successfully Completed Request",
                "MessageArgs": [],
                "Severity": "OK",
                "Resolution": "None"
            }
        ]
    }
}

评审点7:
资源URI:/redfish/v1/Chassis/{ChassisId}/PowerSubsystem
资源版本:PowerSubsystem.v1_1_3
变化类型:URI属性新增
操作类型: GET
操作权限 :ReadOnly
应用场景:获取系统分配功率

属性说明

一级属性 二级属性 三级属性 类型 默认值 取值约束 易变属性 实现PATCH 操作权限 描述
Allocation object / / / / / /
AllocatedWatts number,null / / ReadOnly 已分配或预算给此子系统的功率总量
RequestedWatts number,null / / ReadOnly 子系统请求的潜在功率(以瓦为单位)可能高于当前消耗水平

schema说明:
新增schema文件PowerSubsystem.v1_1_3.json

         "Allocation": {
                    "$ref": "#/definitions/PowerAllocation",
                    "description": "Power allocation for this subsystem when it represents a subset of the power infrastructure for the chassis or its upstream chassis, such as a chassis containing multiple server blades.",
                    "longDescription": "This property shall contain the set of properties describing the allocation of power for this subsystem as part of the power infrastructure for the chassis or an upstream chassis.  This property should not be present in resources that are not part of a shared power infrastructure."
                },
                "AllocatedWatts": {
                    "description": "The total amount of power that has been allocated or budgeted to this subsystem.",
                    "longDescription": "This property shall represent the total power currently allocated or budgeted to this subsystem.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "W"
                },
                "RequestedWatts": {
                    "description": "The potential power, in watt units, that the subsystem requests, which might be higher than the current level being consumed because the requested power includes a budget that the subsystem wants for future use.",
                    "longDescription": "This property shall represent the amount of power, in watt units, that the subsystem currently requests to be budgeted for future use.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "W"
                }

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerSubsystem.PowerSubsystem",
    "@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem",
    "@odata.type": "#PowerSubsystem.v1_1_2.PowerSubsystem",
    "Id": "PowerSubsystem",
    "Name": "Power Subsystem for Chassis",
    "Oem": {
        "openUBMC": {
            "PowerConverters": {
                "@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/Oem/openUBMC/PowerConverters"
            }
        }
    },
    "CapacityWatts": 4000,
    "PowerSupplyRedundancy": [
        {
            "RedundancyType": "Sharing",
            "MaxSupportedInGroup": 2,
            "MinNeededInGroup": 2,
            "RedundancyGroup": [
                {
                    "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/1"
                },
                {
                    "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/2"
                }
            ],
            "Status": {
                "State": "Enabled",
                "Health": "OK"
            }
        }
    ],
    "PowerSupplies": {
        "@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies"
    },
    "Status": {
        "State": "Enabled",
        "Health": "OK"
    },
    "Allocation": {
        "AllocatedWatts": null,
        "RequestedWatts": null
    }
}

评审结论
通过,具体结论如下:
1.同意新增PowerEquipment资源,URI:/redfish/v1/PowerEquipment,GET响应包含属性@odata.context,@odata.id@odata.type,Id,Name,Status,Links一级PowerShelves的链接。
2.同意新增 PowerDistributionCollection资源,URI:/redfish/v1/PowerEquipment/PowerShelves, GET响应包含属性@odata.context,@odata.id@odata.type,Id,Name,Members@odata.count 和Members链接。
3.同意新增 PowerDistribution资源, URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId},支持GET 和PATCH, 其中支持PATCH的属性有AssetTag,UserLabel,ActiveMainsId,AutoTransferEnabled,ClosedTransitionAllowed,ClosedTransitionTimeoutSeconds,PreferredMainsId,RetransferDelaySeconds,RetransferEnabled,TransferDelaySeconds,TransferInhibit以及OverNominalFrequencyHz,OverVoltageRMSPercentage,TransferSensitivity,UnderNominalFrequencyHz和UnderVoltageRMSPercentage。
4.同意新增PowerDistribution资源Action,URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Actions/PowerDistribution.TransferControl,POST,Action 无参数。同时新增对应的ActionInfo, GET, URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/TransferControlActionInfo
5.同意新增新增PowerDistributionMetric资源, URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Metrics,GET响应包含@odata.context,@odata.id@odata.type,Id,Name,AbsoluteHumidity,EnergykWh的ApparentkVAh,LifetimeReading,ReactivekVARh,Reading,SensorResetTime,HumidityPercent的Reading,PowerLoadPercent的Reading,PowerWatts的ApparentkVAh,PhaseAngleDegrees,PowerFactor,ReactiveVAR,Reading,TemperatureCelsius的Reading,以及Action资源链接。
6.同意新增PowerDistributionMetric资源Action,URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics,POST,Action无参数。同时新增对应的ActionInfo, GET, URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Metrics/ResetMetricsActionInfo
7.同意PowerSubsystem资源URI新增属性,获取系统分配功率。URI:/redfish/v1/Chassis/{ChassisId}/PowerSubsystem, 新增AllocatedWatts和RequestedWatts两个属性。

这里 Health 属性呢?还是只需要 HealthRollup 就可以?

1、对于不确定属性的默认值,如LocationType、Orientation、Reference等,建议默认取值为“”
2、数值和bool类型的默认值,建议为null(如果该属性支持null)
3、按照规范统一修改默认值

评审点5,只保留需要实现的接口,即/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Metrics,其余的删除掉

评审点5,HumidityPercent、PowerLoadPercent应当为对象;其下层应当才是读值属性,请按照标准规范修改。


请按照规范统一排查整改


redfish规范示例返回了 HealthRollup, 按这个示例做的,只有HealthRollup。

1.对于LocationType、Orientation、Reference等redfish 属性值是枚举的类型,如果dbus 对应属性返回空字串“”,redfish 会做转换显示为null
2.其它类型的字符串,dbus 获取到的值,直接赋值给redfish 显示
3.数值类型属性dbus 默认值为0,redfish也显示为0
4.bool 类型属性dbus 默认false,redfish 也显示为false

1.帖子问题已修改,删除未实现的URI
2.HumidityPercent、PowerLoadPercent是一级属性,其下有二级属性Reading。


image

resp返回值,

LocationOrdinalValue 为数值类型吧

1、PowerDistribution资源下缺少Branches、Facility、MainsRedundancy、Feeders、Mains等对象,排查修改补齐
2、data类的,说明中表示为时间格式字段,如ProductionDate
3、ClosedTransitionTimeoutSeconds、RetransferDelaySeconds、TransferDelaySeconds时间为0~255是否合理,理论上支持配置的时间可能会比4min大,且这种定义中支持null的可配置属性,默认值建议为null,默认值为0难以区分是设置为0还是默认0
4、类型为boolean的,且支持null的,默认值统一为null
5、类型为string的,默认值统一为“”
6、评审点4中/redfish/v1/PowerEquipment{EquipmentType}/{PowerdistributionId}/Actions/PowerDistribution.TransferControl—>/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Actions/PowerDistribution.TransferControl
7评审点6中/redfish/v1/PowerEquipment{EquipmentType}/{PowerdistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics—>/redfish/v1/PowerEquipment/PowerShelves/{PowerdistributionId}/Metrics/Actions/PowerDistributionMetrics.ResetMetrics

一级属性、二级属性的格式参考https://discuss.openubmc.cn/t/topic/3785这个帖子,统一整改

Status参考以下帖子的评审点1方式进行修改:

1、部分属性类型为string的字段,默认值没有刷新成""
2、PowerCapacityVA、ClosedTransitionTimeoutSeconds、RetransferDelaySeconds、TransferDelaySeconds这几个字段,redfish的范围和资源树范围不一致
3、评审点3、评审点5的部分字段的操作权限和描述错位了
4、TransferInhibit字段的权限 确认下 ConfigureComponents是PrivilegeMap配置权限,对应我们的九大权限应该是BasicSetting
5、SensorResetTime等时间格式的string字段,描述中增加data-time描述
6、格式问题 把不一样的空格都干掉

@lydia_xicc 这个资源中哪些属性是 PATCH 的,PATCH 的权限是什么,这个要明确出来

已修改。

已添加PATCH权限说明

【审核】

  1. 当前 Action 的资源版本不是 Action?
  2. 当前 Action 的操作权限是 BasicSetting,但是对应资源协作接口权限是 PowerMgmt,确认权限是否可以满足?


对于Action的资源版本,按上图规范应该显示的包含这个Action的资源的版本号。

操作权限BasicSetting (对应redfish 配置为onfigureComponents),实际执行ok。

权限问题已经修改,PowerMgmt,和资源协作接口保持一致。