【已评审】并行升级新增查询升级状态和生效状态资源协作接口评审

背景:为支持并行升级web界面展示升级进度及生效状态,需要提供资源协作接口以支持北向接口及业务组件的交互;

评审点一:资源协作接口查询所有固件升级状态

UpdateService 资源协作接口新增方法:GetUpdateProgress
path: /bmc/kepler/UpdateService
interface : bmc.kepler.UpdateService

方法说明:

项目
方法名称 GetUpdateProgress
变化类型 新增
权限 Readonly
请求签名 ‘’
响应签名 ‘sa(ssssssi)’
响应参数 UpgradeMode:签名为 s,表征当前升级模式
响应参数 UpgradeTasks:签名为 a(ssssssi),表征当前所有固件的升级进度,结构体(ssssssi)具体定义见下表

结构体(ssssssi)定义

签名 名称 取值 取值说明 取值样例
s TaskName String 任务名称
s Firmware String 升级的固件类型 CPLD
s FirmwareInstance String 升级的具体的固件名称 MB_CPLD
s FileName String 升级的文件名称 image.hpm
s Percentage String 升级进度(百分比) 8%
s TaskState String 升级状态,具体取值如下:
Pending:挂起状态
Running:正在升级
Exception:升级异常
Completed:升级完成)
Running
i ErrorCode int32 错误码,取值如下:
1:升级固件异常
2:升级文件不存在
3:无效的升级固件
4:内存不足
8:先下电之后才能升级
9:固件版本不匹配
12:升级固件和设备类型不匹配
13:不支持升级BIOS
27:升级版本和WEB不匹配28:设备状态不支持固件升级70:升级固件太旧
1

评审点二:资源协作接口查询所有待生效固件生效状态

UpdateService 资源协作接口新增方法:GetPendingFirmwareList
path: /bmc/kepler/UpdateService
interface : bmc.kepler.UpdateService

方法说明:

项目
方法名称 GetPendingFirmwareList
变化类型 新增
权限 Readonly
请求签名 ‘’
响应签名 ‘a(ysss)’
响应参数 PendingFirmwareList:签名为 a(yssss),表征当前所有待生效固件的状态,结构体(yssss)定义见下表

结构体(yssss)定义

签名 名称 取值 取值说明 取值样例
y SystemId uint8 升级的设备归属的Host 1
s Firmware String 升级的固件类型 CPLD
s FirmwareInstance String 升级的具体的固件名称 MB_CPLD
s ActiveStatus String 生效状态,具体取值如下:
ToBeActivated:待生效
Activating:生效中
Activated:生效完成
Activating
s ActiveAction String 生效执行的动作,具体取值如下:
ResetBMC:复位BMC生效
PowerOff:下电Host生效
ResetBMC

评审结论

通过,具体结论如下:

  • 同意资源协作接口 bmc.kepler.UpdateService 新增方法 GetUpdateProgress,请求签名:无,响应签名:sa(ssssssi),权限为 Readonly
  • 同意资源协作接口 bmc.kepler.UpdateService 新增方法 GetPendingFirmwareList,请求签名:无,响应签名:a(ysss),权限为 Readonly