【已废弃】OCP热插拔功能整改

背景

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传对象的方式传递新增类