背景
OCP卡通知式热插拔能力依赖扩展板或者Riser卡能力,但是当前OCP热插拔相关属性配置在卡的CSR上,不合理,应该改为配置在对应的单板上
"Accessor_ReadyToRemove": {
"Chip": "#/Smc_ExpBoardSMC",
"Offset": "${Slot} |> expr(($1 == 1) ? 469772801 : 469772802)",
"Size": 1,
"Mask": 2,
"Type": 0,
"Value": 0
},
"NetworkAdapter_1": {
...
"ReadyToRemoveValue": "#/Accessor_ReadyToRemove.Value",
...
}
决策点
1、新增HotPlugSlot类,归属general_hardware组件
2、新增path: /bmc/kepler/Chassis/:ChassisId/HotPlugSlots/:Id
3、新增interface: bmc.kepler.Chassis.HotPlugSlot
| 属性名称 | 签名 | 默认值 | 操作权限 | 说明 | 持久化 | 变化通知 |
|---|---|---|---|---|---|---|
| Position | s | 空字符串 | 只读。R: ReadOnly | 位置 | 否 | 否 |
| Slot | y | 255 | 只读。R: ReadOnly | 槽位号 | 否 | 否 |
| Button | y | 不涉及 | 读写。R: ReadOnly。W: BasicSetting | 关联Accessor寄存器,设置为1表示卡电源关闭 | 否 | 否 |
整体方案
通过卡的位置信息、槽位号匹配HotPlugSlot对象,直接修改对象的Button属性
评审结论
遗留问题
1、是否考虑增加UID来区分
2、是否可以通过Connector传对象的方式传递新增类