评审背景
Chassis接口下SuperPodSize,SuperPodLabel通过调用资源协作接口方法修改属性,无论属性值是否发生变化,组件都会记录操作日志,该接口下的其他属性,如TopologyType等,通过Set-Property方式实现,当属性值不发生变化时,不会触发属性变更信号,业务组件无法感知,导致接口内部不同属性操作日志记录行为不同。
当前现状以及差距
现状
/redfish/v1/Chassis/{ChassisId}接口下的属性在PATCH操作时,后台组件存在以下两种设置方式
| 属性 | 资源协作接口属性设置方式 |
|---|---|
| AssetTag | Method |
| IndicatorLED | Method |
| SuperPodId | Method |
| ServerIndex | Method |
| SuperPodSize | Method |
| SuperPodEnabled | Set-Property |
| TopologyType | Set-Property |
| InterconType | Set-Property |
| PresentDPUCount | Set-Property |
| NPUBootOption | Set-Property |
| UBManagedBy | Set-Property |
| ChassisID | Set-Property |
差距
/redfish/v1/Chassis/{ChassisId}接口下AssetTag等属性在PATCH操作时,是通过资源协作接口的Method修改,无论属性值是否改变,业务组件能够感知属性变化,此时会记录操作日志;SuperPodEnabled等属性在PATCH操作时,是通过Set-Property方式修改,在属性值不发生变化时,由于框架当前的限制,业务组件无法感知,因此不会记录操作日志。
解决方案
新增资源协作接口方法,在用户通过北向接口设置时调用该方法,确保在属性值不发生变化的情况下也能记录操作日志
评审点
新增资源协作接口方法
资源path: /bmc/kepler/Products/Ascend/SuperPodLabel
资源interface:bmc.kepler.Products.SuperPodLabel
| 方法名称 | 变化类型 | 请求签名 | 请求参数说明 | 响应签名 | 响应参数说明 | 访问权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| SetSuperPodLabel | 新增方法 | a{su} | 字典Key表示该接口下的属性名称 字典Value表示待设置的属性值 |
无 | 无 | BasicSetting | 设置超节点配置参数 | 无 |
资源path: /bmc/kepler/Chassis/1/SuperPodLabel
资源interface:bmc.kepler.Chassis.SuperPodLabel
| 方法名称 | 变化类型 | 请求签名 | 请求参数说明 | 响应签名 | 响应参数说明 | 访问权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| SetSuperPodEnabled | 新增方法 | b | true:表示开启超节点使能 false:表示关闭超节点使能 |
无 | 无 | BasicSetting | 设置超节点模式使能状态 | 无 |
评审结论
1、同意资源协作接口bmc.kepler.Products.SuperPodLabel新增方法设置超节点配置参数
path: /bmc/kepler/Products/Ascend/SuperPodLabel
interface:bmc.kepler.Products.SuperPodLabel
新增方法:
- SetSuperPodLabel,签名为a{su},字典的Key(签名s)代表该接口下的属性名称,字典的Value(签名u)代表待设置的属性值,权限为BasicSetting
2、同意资源协作接口bmc.kepler.Chassis.SuperPodLabel增加方法设置超节点模式是否使能
path:/bmc/kepler/Chassis/1/SuperPodLabel
interface:bmc.kepler.Chassis.SuperPodLabel
新增方法:
- SetSuperPodEnabled,签名为b,其中true表示开启超节点模式,false表示关闭,权限为BasicSetting