【已评审】redfish新增标准资源LeakDetectors和Circuit

背景

为了满足客户对于redfish接口诉求,对redfish标准资源进行升级,需要实现redfish新规范资源

关联ISSUE

支持升级redfish标准LeakDetection资源
支持升级redfish标准LeakDetectors资源
支持新增redfish标准Circuit资源

评审点

1、redfish接口标准资源LeakDetection新增Status属性
2、redfish接口支持标准LeakDetector集合资源
3、redfish接口支持标准LeakDetector资源
4、redfish接口支持标准Circuit集合资源
5、redfish接口支持标准Circuit资源

详细描述

评审点1 :redfish接口标准资源LeakDetection新增Status属性

URI:/redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/LeakDetection

变化类型:新增属性

操作类型:GET

权限:ReadOnly

应用场景:redfish接口查询LeakDetection资源

一级属性 二级属性 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件
Status object 资源及其从属或依赖资源的状态和健康状况 NA NA ReadOnly
State string,null 资源的状态 “Enabled”,“Disabled” null ReadOnly
Health string,null 资源的健康状态 "Critical ",“OK”,“Warning” null ReadOnly
HealthRollup string,null 健康状态卷积 "Critical ",“OK”,“Warning” null ReadOnly

响应示例:

{
    "@odata.context": "/redfish/v1/$metadata#LeakDetection.LeakDetection",
    "@odata.id": "/redfish/v1/Chassis/1/ThermalSubsystem/LeakDetection",
    "@odata.type": "#LeakDetection.v1_0_0.LeakDetection",
    "Id": "LeakDetection",
    "Name": "LeakDetection",
    "LeakDetectors": {
        "@odata.id": "/redfish/v1/Chassis/1/ThermalSubsystem/LeakDetection/LeakDetectors"
     },
    "Status": {
        "State": "Enabled",
        "Health": "OK",
        "HealthRollup": "OK"
    }
}

评审点2:redfish接口支持标准LeakDetector集合资源

URI:/redfish/v1/Chassis/{ChassisId}/LeakDetectors

变化类型:新增URI

操作类型:GET

权限:ReadOnly

应用场景:redfish接口查询LeakDetector集合资源

一级属性 二级属性 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件
@odata.context string 泄露检测器集合资源的OData描述信息 URI /redfish/v1/$metadata#LeakDetectorCollection.LeakDetectorCollection ReadOnly
@odata.id string 泄露检测器集合资源的访问路径 URI /redfish/v1/Chassis/{ChassisId}/LeakDetectors ReadOnly
@odata.type string 泄露检测器集合资源的类型 string #LeakDetectorCollection.LeakDetectorCollection ReadOnly
Name string 泄露检测器集合资源名称 string LeakDetector Collection ReadOnly
Members@odata.count integer 数量 integer 0 ReadOnly
Members array 列表 array 空数组 ReadOnly
@odata.id string 单个资源节点的访问路径 URI NA ReadOnly

响应示例:

{
  "@odata.context": "/redfish/v1/$metadata#LeakDetectorCollection.LeakDetectorCollection",
  "@odata.id": "/redfish/v1/Chassis/1/LeakDetectors",
  "@odata.type": "#LeakDetectorCollection.LeakDetectorCollection",
  "Name": "LeakDetector Collection",
  "Members@odata.count": 1,
  "Members": [
      {
          "@odata.id": "/redfish/v1/Chassis/1/LeakDetectors/Moisture"
      }
  ]
}

评审点3:redfish接口支持标准LeakDetector资源

URI:/redfish/v1/Chassis/{ChassisId}/LeakDetectors/{LeakDetectorId}

变化类型:新增URI

操作类型:GET

权限:ReadOnly

应用场景:redfish接口查询LeakDetectors资源

一级属性 二级属性 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件
DetectorState string,null 泄露检测器状态 “OK”,“Warning”,“Critical” null ReadOnly
LeakDetectorType string,null 泄露检测器类型 “FloatSwitch”,“Moisture” null ReadOnly
Location object 泄露检测器位置信息 NA 获取失败时不显示属性 ReadOnly
Manufacturer string,null 制造商 string null ReadOnly
Model string,null 型号 string null ReadOnly
PartNumber string,null 部件编码 string null ReadOnly
PhysicalContext string,null 泄漏检测器适用的区域或设备 “CPU”、“CPUSubsystem”、“Chassis”、“GPU”、“GPUSubsystem” null ReadOnly
SerialNumber string,null 序列号 string null ReadOnly
Status object 资源及其从属或依赖资源的状态和健康状况 NA NA ReadOnly
State string,null 资源的状态 “Enabled”,“Disabled”, “Absent” null ReadOnly
Health string,null 资源的健康状态 "Critical ",“OK”,“Warning” null ReadOnly

响应示例:

{
    "@odata.context": "/redfish/v1/$metadata#LeakDetector.LeakDetector",
    "@odata.id": "/redfish/v1/Chassis/{ChassisId}/LeakDetectors/Moisture"
    "@odata.type": "#LeakDetector.v1_2_0.LeakDetector",
    "Id": "Moisture",
    "Name": "Moisture-type Leak Detector",
    "LeakDetectorType": "Moisture",
    "Status": {
        "State": "Enabled",
        "Health": "OK"
    },
    "DetectorState": "OK",
    "PartNumber": "3493-A44",
    "SerialNumber": "916239",
    "Manufacturer": "Contoso Water Detection Systems",
    "Model": "Depends 3000",
    "Location": {
        "PartLocation": {
            "Reference": "Bottom",
            "ServiceLabel": "Leak Detector"
        }
    },
    "PhysicalContext": "Chassis"
}

评审点4:redfish接口支持标准Circuit集合资源

URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Mains
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Branchs

变化类型:新增URI

操作类型:GET

权限:ReadOnly

应用场景:redfish接口查询Circuit集合资源

一级属性 二级属性 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件
@odata.context string 电路集合资源的OData描述信息 URI /redfish/v1/$metadata#CircuitCollection.CircuitCollection ReadOnly
@odata.id string 电路集合资源的访问路径 URI /redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Mains
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Branchs
ReadOnly
@odata.type string 电路集合资源的类型 string #CircuitCollection.CircuitCollection ReadOnly
Name string 电路集合资源名称 string Main Circuit Collection
Branch Circuit Collection
ReadOnly
Members@odata.count integer 数量 integer 0 ReadOnly
Members array 列表 array 空数组 ReadOnly
@odata.id string 单个资源节点的访问路径 URI NA ReadOnly

响应示例:

{
  "@odata.context": "/redfish/v1/$metadata#CircuitCollection.CircuitCollection",
  "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Branchs",
  "@odata.type": "#CircuitCollection.CircuitCollection",
  "Name": "Branch Circuit Collection",
  "Members@odata.count": 1,
  "Members": [
      {
          "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Branchs/A"
      }
  ]
}

评审点5:redfish接口支持标准Circuit资源

URI:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Branches/{CircuitId}
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Mains/{CircuitId}

变化类型:新增URI

操作类型:GET

权限:ReadOnly

应用场景:redfish接口查询Circuit资源

一级属性 二级属性 取值类型 说明 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件
CircuitType string,null 电路类型 “Branch”,“Mains” null ReadOnly
PhaseWiringType string,null 未接地的载流导体(相线)数量以及导体的总数(线数) “ThreePhase5Wire” null ReadOnly
NominalVoltage string,null 电路的额定电压 “DC240” null ReadOnly
Status object 资源及其从属或依赖资源的状态和健康状况 NA NA ReadOnly
State string,null 资源的状态 “Enabled”,“Disabled” null ReadOnly
Health string,null 资源的健康状态 "Critical ",“OK”,“Warning” null ReadOnly

响应示例:

{
  "@odata.context": "/redfish/v1/$metadata#Circuit.Circuit",
  "@odata.id": "/redfish/v1/PowerEquipment/PowerShelves/1/Branchs/A"
  "@odata.type": "#Circuit.v1_8_1.Circuit",
  "Id": "A",
  "Name": "Branch Circuit A",
  "Status": {
    "State": "Enabled",
    "Health": "OK"
  },
  "CircuitType": "Branch",
  "PhaseWiringType": "ThreePhase5Wire",
  "NominalVoltage": "DC240"
}

评审结论

决策点1:redfish接口标准资源LeakDetection新增Status属性

结论:

uri:/redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/LeakDetection
操作类型:GET
权限:ReadOnly
变化类型:新增属性

  • Status:资源及其从属或依赖资源的状态和健康状况,类型为object
  • State:资源的状态,类型为string,null,取值范围:“Enabled”,“Disabled”
  • Health:资源的健康状态,类型为string,null,取值范围:"Critical ",“OK”,“Warning”
  • HealthRollup:健康状态卷积,类型为string,null,取值范围:"Critical ",“OK”,“Warning”

决策点2:redfish接口支持标准LeakDetector集合资源

结论:

uri:/redfish/v1/Chassis/{ChassisId}/LeakDetectors
操作类型:GET
权限:ReadOnly
变化类型:新增URI

  • Members@odata.count:漏液检测器数量,类型为integer
  • Members:漏液检测器列表,类型为array
  • @odata.id:单个资源节点的访问路径,类型为string

决策点3:redfish接口支持标准LeakDetector资源

结论:

uri:/redfish/v1/Chassis/{ChassisId}/LeakDetectors/{LeakDetectorId}
操作类型:GET
权限:ReadOnly
变化类型:新增URI

  • DetectorState:泄露检测器状态,类型为string,null,取值范围:“OK”,“Warning”,“Critical”
  • LeakDetectorType:泄露检测器类型,类型为string,null,取值范围:“FloatSwitch”,“Moisture”
  • Location:泄露检测器位置信息,类型为object
  • Manufacturer:制造商,类型为string,null
  • Model:型号,类型为string,null
  • PartNumber:部件编码,类型为string,null
  • PhysicalContext:泄漏检测器适用的区域或设备,类型为string,null,取值范围:“CPU”、“CPUSubsystem”、“Chassis”、“GPU”、“GPUSubsystem”
  • SerialNumber:序列号,类型为string,null
  • Status:资源及其从属或依赖资源的状态和健康状况,类型为object
  • State:资源的状态,类型为string,null,取值范围:“Enabled”,“Disabled”, “Absent”
  • Health:资源的健康状态,类型为string,null,取值范围:"Critical ",“OK”,“Warning”

决策点4:redfish接口支持标准Circuit集合资源

结论:

uri:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Mains
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Branchs
操作类型:GET
权限:ReadOnly
变化类型:新增URI

  • Members@odata.count:电路数量,类型为integer
  • Members:电路列表,类型为array
  • @odata.id:单个资源节点的访问路径,类型为string

决策点5:redfish接口支持标准Circuit资源

结论:

uri:/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Branches/{CircuitId}
/redfish/v1/PowerEquipment/PowerShelves/{PowerDistributionId}/Mains/{CircuitId}
操作类型:GET
权限:ReadOnly
变化类型:新增URI

  • CircuitType:电路类型,类型为string,null,取值范围:“Branch”,“Mains”
  • PhaseWiringType:相线类型,类型为string,null,取值范围:“ThreePhase5Wire”
  • NominalVoltage:电路的额定电压,类型为string,null,取值范围:“DC240”
  • Status:资源及其从属或依赖资源的状态和健康状况,类型为object
  • State:资源的状态,类型为string,null,取值范围:“Enabled”,“Disabled”
  • Health:资源的健康状态,类型为string,null,取值范围: "Critical ",“OK”,“Warning”

@fumingquan
【预审】

  1. State 属性这里面是全集,实现时可以实现子集,确认是否需要实现这么多?
  2. HealthRollup 是健康状态卷积,确认是否需要实现?

1、State不需要实现全集,仅实现部分即可,这里列举了全集;
2、已和DE对齐,需要实现HealthRollup属性