评审背景
问题
CLI接口ipmcget -d version 实测查询时间1.8-2.5s,BMC的性能基线是命令响应时间2s内
原因分析
ipmcget -d version 查询固件信息时,会遍历资源协作接口 bmc.kepler.UpdateService.FirmwareInfo 的所有对象获取固件信息,对应的资源协作接口路径/bmc/kepler/UpdateService/FirmwareInventory/:Id下固件信息较多,遍历访问导致当前性能降低。
解决方案
CLI接口获取所有的固件版本信息时,由原来的遍历资源接口访问方式为一次性获取所有的固件信息,降低和资源协作接口的访问次数,提升性能。
评审点
新增资源协作接口方法GetAllFirmwareInfo ,一次性获取所有固件信息
- 资源路径 :
/bmc/kepler/UpdateService/FirmwareInventory - 资源接口:
bmc.kepler.UpdateService.FirmwareInventory - 方法 :
GetAllFirmwareInfo - 权限:ReadOnly
- 请求签名 : 无
- 请求参数 :无
- 响应签名 : a(sa{ss})
- 响应参数 :
array<object>类型,所有的固件信息列表。其中具体的参数说明如下:FirmwareId:string类型,当前固件的标识。如:ActiveBMCFirmwareInfoarray<string, string>类型,当前固件的信息。具体的信息见下表1
表1 - GetAllFirmwareInfo 接口获取的固件信息详细说明
| 属性名称 | 属性类型 | 属性说明 | 示例 |
|---|---|---|---|
| Id | string | 固件标识 | ActiveBMC |
| Version | string | 固件版本 | 5.10.0.2 |
| Name | string | 固件对外展示的名称 | ActiveBMC |
| Location | string | 存储固件的器件的位号 | U75 |
| ReleaseDate | string | 固件发布时间 | 11:41:03 Jun 21 2025 |
| BuildNum | string | 固件构建版本号 | 001 |
评审结论
同意在资源协作接口 bmc.kepler.UpdateService.FirmwareInventory 下新增方法 GetAllFirmwareInfo,用于获取当前所有的固件信息,权限为 ReadOnly,无请求参数,响应参数见上述评审材料。