背景
当前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两个属性。




