ISSUE链接
【需求】支持高温下电后是否需要上电属性进行开关设置-fructrl-GitCode
背景
1: CPU过温后,硬件会主动下电,下电后,会根据私有对象ThermTrip的Actions的值决定一段时间后是否要上电还是不上电(默认上电);当cpu持续高温时可能造成os反复上下电,当前该策略配置在CSR里,没有提供相关接口供客户选择,影响可用性
2: 自动上电的延时时间后只能在csr里配置,没有对外的接口可以提供设置,影响可用性
评审点
基于上述背景,redfish需要新增加两个oem自定义属性,同时私有对象ThermTrip需要上到资源协作接口
评审点1: 新增redfish查询和设置高温下电后是否需要上电的接口 与 延时时间
URI:/redifsh/v1/Systems/:systemid
操作类型:GET/PATCH
修改描述:Oem/{{OemIdentifier}} 下新增属性新增如下属性
| 字段 | 字段说明 | 类型 | PrivilegeMap配置 | 取值举例 |
|---|---|---|---|---|
| PowerOnAfterCpuThermalTrip | CPU过温保护下电再上电策略开启状态 | 布尔值 | GET: ReadOnly PATCH:PowerMgmt |
true:需要上电 false:不需要上电 |
| DelaySecondsAfterCpuThermalTrip | CPU过温保护下电再上电间隔秒数 | 整数类型 | GET: ReadOnly PATCH:PowerMgmt |
范围在0~1800的正整数 |
示例:
Oem: {
"{{OemIdentifier}}": {
"PowerOnAfterCpuThermalTrip": true,
”DelaySecondsAfterCpuThermalTrip“:300
}
}
评审点2: 资源协作接口增加 ThermalTrip
新增interface
bmc.kepler.Systems.ThermalTrip
新增属性如下
| 属性名称 | 变化类型 | 描述 | 类型 | 读写&权限 | 持久化 | 变化通知 | 取值说明 |
|---|---|---|---|---|---|---|---|
| Action | 属性新增 | 高温下电后上电策略 | U8 | Write:PowerMgmt Read:ReadOnly |
掉电持久化 | false | 1:需要上电 0:不需要上电 默认是1 |
| TimeDelaySeconds | 属性新增 | 高温下电后上电延时时间 | U32 | Write:PowerMgmt Read:ReadOnly |
掉电持久化 | false | 单位为秒,默认300 |
评审结论
通过,具体结论如下:
- 评审点1:同意 Redfish 接口
/redifsh/v1/Systems/:systemid下新增Oem属性,具体属性信息如下:
PowerOnAfterCpuThermalTrip,类型为boolean, 表征CPU过温保护下电再上电策略开启状态,PATCH操作权限为PowerMgmtDelaySecondsAfterCpuThermalTrip,类型为integer, 表征CPU过温保护下电再上电间隔秒数,PATCH操作权限为PowerMgmt
- 评审点2:同意新增资源协作接口
bmc.kepler.Systems.ThermalTrip,该接口需要挂接在资源/bmc/kepler/Systems/:SystemsId/Fructrl/:FruId,表征当前 Host 的高温下电后上电策略配置。具体属性信息如下:
Action,签名为y, 表征高温下电后上电策略动作,默认为上电;属性可以读写,其中读权限ReadOnly,写权限PowerMgmtTimeDelaySeconds,签名为u, 表征高温下电后上电延时时间,单位为秒,默认300;属性可以读写,其中读权限ReadOnly,写权限PowerMgmt