redfish&rest接口新增MCU类型风扇管理信息属性
背景
新增MCU类型风扇管理能力,redfish&rest接口新增字段
关联ISSUE
整体方案
评审点
评审点1:redfish散热资源接口新增MCU类型风扇基本信息属性
评审点2:Rest散热资源接口新增MCU类型风扇基本信息属性
评审点3:Rest新增风扇日志收集接口
详细描述
评审点1:redfish散热资源接口新增MCU类型风扇基本信息属性
资源URI: /redfish/v1/Chassis/chassis_id/Thermal
变化类型:新增属性
操作类型:GET
应用场景:redfish接口Oem自定义属性下新增属性支持MCU类型风扇基本信息管理
属性列表:
| 父级属性 | 二级属性 | 三级属性 | 四级属性 | 类型 | 示例/取值约束 | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|---|---|
| Fans/Oem/Public | / | / | / | object | / | / | / | / | 风扇自定义属性 |
| Fru | / | / | object | / | / | / | / | 风扇关联的电子标签 | |
| Board | / | object | / | / | / | / | 单板域 | ||
| FruFileId | String | “1.04” | 否 | 否 | ReadOnly | 单板域文件ID | |||
| ManufacturingDate | String | “1996/01/01 Mon 00:00:00” | 否 | 否 | ReadOnly | 单板域制造日期 | |||
| Manufacturer | String | “xxx” | 否 | 否 | ReadOnly | 单板域制造商 | |||
| ProductName | String | “CM90FANA” | 否 | 否 | ReadOnly | 单板域产品名 | |||
| SerialNumber | String | “028FFFFFF6666666” | 否 | 否 | ReadOnly | 单板域序列号 | |||
| PartNumber | String | “32036666” | 否 | 否 | ReadOnly | 单板域部件号 | |||
| Product | / | object | / | / | / | / | 产品域 | ||
| Manufacturer | String | “xxx” | 否 | 否 | ReadOnly | 产品域制造商 | |||
| ProductName | String | “CM90E1FAN” | 否 | 否 | ReadOnly | 产品域产品名 | |||
| SerialNumber | String | “21022226666666000666” | 否 | 否 | ReadOnly | 产品域序列号 | |||
| PartNumber | String | 02122666 | 否 | 否 | ReadOnly | 产品域部件号 | |||
| Version | String | “5.15.0.1” | 否 | 否 | ReadOnly | 产品域版本 | |||
| SoftwareVersion | / | / | String | “114” | 否 | 否 | ReadOnly | 风扇软件版本信息 | |
| PcbVersion | / | / | String | “A” | 否 | 否 | ReadOnly | 风扇硬件版本信息 |
schema说明
"FanFru": {
"type": "object",
"patternProperties": {
"^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
"type": [
"array",
"boolean",
"number",
"null",
"object",
"string"
],
"description": "This property shall specify a valid odata or Redfish property."
}
},
"additionalProperties": false,
"properties": {
"Board": {
"$ref": "#/definitions/FanFruBoard"
},
"Product": {
"$ref": "#/definitions/FanFruProduct"
}
}
},
"FanFruBoard": {
"type": "object",
"patternProperties": {
"^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
"type": [
"array",
"boolean",
"number",
"null",
"object",
"string"
],
"description": "This property shall specify a valid odata or Redfish property."
}
},
"additionalProperties": false,
"properties": {
"FruFileId": {
"type": "string",
"readonly": true
},
"ManufacturingDate": {
"type": "string",
"readonly": true
},
"Manufacturer": {
"type": "string",
"readonly": true
},
"ProductName": {
"type": "string",
"readonly": true
},
"SerialNumber": {
"type": "string",
"readonly": true
},
"PartNumber": {
"type": "string",
"readonly": true
}
}
},
"FanFruProduct": {
"type": "object",
"patternProperties": {
"^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
"type": [
"array",
"boolean",
"number",
"null",
"object",
"string"
],
"description": "This property shall specify a valid odata or Redfish property."
}
},
"additionalProperties": false,
"properties": {
"Manufacturer": {
"type": "string",
"readonly": true
},
"ProductName": {
"type": "string",
"readonly": true
},
"SerialNumber": {
"type": "string",
"readonly": true
},
"PartNumber": {
"type": "string",
"readonly": true
},
"Version": {
"type": "string",
"readonly": true
}
}
},
"PcbVersion": {
"type": [
"String",
"null"
],
"readonly": true
},
"SoftwareVersion": {
"type": [
"string",
"null"
],
"readonly": true
}
响应示例:
"Fans": [
{
"@odata.id": "/redfish/v1/Chassis/Enclosure/Thermal#/Fans/0",
"MemberId": "0",
"Name": "Fan1",
"Oem": {
"Public": {
"Fru": {
"Board": {
"FruFileId": "1.04",
"ManufacturingDate": "1996/01/01 Mon 00:00:00",
"Manufacturer": "xxx",
"ProductName": null,
"SerialNumber": "028FTYDUR4003074",
"PartNumber": null
},
"Product": {
"Manufacturer": "xxx",
"ProductName": null,
"SerialNumber": null,
"PartNumber": null,
"Version": null
}
},
"PcbVersion": "A",
"SoftwareVersion": "114",
"SpeedRatio": 31,
"SlotNumber": 1
}
}
}
]
评审点2:Rest散热资源接口新增MCU类型风扇基本信息属性
资源URI: /UI/Rest/System/Thermal
变化类型:新增属性
操作类型:GET
应用场景:新增属性支持获取MCU类型风扇基本信息
属性列表:
| 一级属性 | 二级属性 | 三级属性 | 四级属性 | 字段说明 | 类型 |
|---|---|---|---|---|---|
| Fans | / | / | / | 风扇资源列表 | Array |
| Fru | / | / | 风扇关联的电子标签 | object | |
| Board | / | 单板域 | object | ||
| FruFileId | 单板域文件ID | String | |||
| Manufacturer | 单板域制造商 | String | |||
| ManufacturingDate | 单板域制造日期 | String | |||
| PartNumber | 单板域部件号 | String | |||
| ProductName | 单板域产品名称 | String | |||
| SerialNumber | 单板域序列号 | String | |||
| Product | / | 产品域 | object | ||
| Manufacturer | 产品域制造商 | String | |||
| PartNumber | 产品域零件号 | String | |||
| ProductName | 产品域产品名称 | String | |||
| SerialNumber | 产品域序列号 | String | |||
| Version | 产品域版本 | String | |||
| Health | / | / | 健康状态 | String | |
| SoftwareVersion | / | / | 软件版本 | Number | |
| PcbVersion | / | / | PCB版本 | String |
评审点3:Rest接口新增风扇日志收集
操作权限:ReadOnly
操作类型:POST
URL:/UI/Rest/System/Thermal/Actions/Thermal.DumpFanLog
变更类型: 新增接口
应用场景:风扇日志收集
请求头
Content-Type: header_type
X-CSRF-Token: auth_value
Cookie: SessionId=session_id_value
请求消息体:
{
“FanIdList”: value
}
参数说明:
| 参数 | 参数说明 | 类型 | |
|---|---|---|---|
| device_ip | 登录设备的IP地址 | IPv4或IPv6地址 | 必选 |
| FanIdList | 收集日志的风扇ID | Array | 必选 |
输出说明
| 字段 | 字段说明 | 类型 |
|---|---|---|
| TaskId | 导出任务的Id | U32 |
是否准备好AI预审
是
评审结论
1.同意redfish接口/redfish/v1/Chassis/chassis_id/Thermal的GET操作响应体Fans/Oem/Public属性下增加如下属性:
| 父级属性 | 二级属性 | 三级属性 | 四级属性 | 类型 | 示例/取值约束 | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|---|---|
| Fans/Oem/Public | / | / | / | object | / | / | / | / | 风扇自定义属性 |
| Fru | / | / | object | / | / | / | / | 风扇关联的电子标签 | |
| Board | / | object | / | / | / | / | 单板域 | ||
| FruFileId | String | “1.04” | 否 | 否 | ReadOnly | 单板域文件ID | |||
| ManufacturingDate | String | “1996/01/01 Mon 00:00:00” | 否 | 否 | ReadOnly | 单板域制造日期 | |||
| Manufacturer | String | “xxx” | 否 | 否 | ReadOnly | 单板域制造商 | |||
| ProductName | String | “CM90FANA” | 否 | 否 | ReadOnly | 单板域产品名 | |||
| SerialNumber | String | “028FFFFFF6666666” | 否 | 否 | ReadOnly | 单板域序列号 | |||
| PartNumber | String | “32036666” | 否 | 否 | ReadOnly | 单板域部件号 | |||
| Product | / | object | / | / | / | / | 产品域 | ||
| Manufacturer | String | “xxx” | 否 | 否 | ReadOnly | 产品域制造商 | |||
| ProductName | String | “CM90E1FAN” | 否 | 否 | ReadOnly | 产品域产品名 | |||
| SerialNumber | String | “21022226666666000666” | 否 | 否 | ReadOnly | 产品域序列号 | |||
| PartNumber | String | 02122666 | 否 | 否 | ReadOnly | 产品域部件号 | |||
| Version | String | “5.15.0.1” | 否 | 否 | ReadOnly | 产品域版本 | |||
| SoftwareVersion | / | / | String | “114” | 否 | 否 | ReadOnly | 风扇软件版本信息 | |
| PcbVersion | / | / | String | “A” | 否 | 否 | ReadOnly | 风扇硬件版本信息 |
2.同意在rest接口/UI/Rest/System/Thermal的GET操作响应体Fans属性下新增如下属性:
| 一级属性 | 二级属性 | 三级属性 | 四级属性 | 字段说明 | 类型 |
|---|---|---|---|---|---|
| Fans | / | / | / | 风扇资源列表 | Array |
| Fru | / | / | 风扇关联的电子标签 | object | |
| Board | / | 单板域 | object | ||
| FruFileId | 单板域文件ID | String | |||
| Manufacturer | 单板域制造商 | String | |||
| ManufacturingDate | 单板域制造日期 | String | |||
| PartNumber | 单板域部件号 | String | |||
| ProductName | 单板域产品名称 | String | |||
| SerialNumber | 单板域序列号 | String | |||
| Product | / | 产品域 | object | ||
| Manufacturer | 产品域制造商 | String | |||
| PartNumber | 产品域零件号 | String | |||
| ProductName | 产品域产品名称 | String | |||
| SerialNumber | 产品域序列号 | String | |||
| Version | 产品域版本 | String | |||
| Health | / | / | 健康状态 | String | |
| SoftwareVersion | / | / | 软件版本 | Number | |
| PcbVersion | / | / | PCB版本 | String |
3.同意新增操作权限为ReadOnly,类型为POST的Rest接口:/UI/Rest/System/Thermal/Actions/Thermal.DumpFanLog
遗留问题
1、需要确认其他产品是否使用MCU类型风扇,如果其他产品有使用,需要抽象为公共模型
结论:其他产品未使用MCU类型风扇,北向接口按照产品定制
2、确认是否将风扇Fru归一至Fru统一查询接口下
结论:产品诉求,需要保持风扇Fru放置在风扇路径下。