ISSUE链接
暂无
背景
- Redfish触发升级后,可以在URI
/redfish/v1/TaskService/Tasks/{taskid}查询升级任务信息。 - 升级完成后,Messages展示Task执行结果
- 当前Messages中的Message是根据错误引擎定义来展示
- 客户诉求:需要在Message中展示特定字段:升级固件当前版本、升级固件目标版本、升级固件的生效方式
现状
当前Messages中的Message是根据错误引擎定义来展示,当前升级成功错误引擎的定义如下。Message的传参为固件类型。
"FirmwareUpgradeComplete": {
"Description": "Indicates that the firmware upgrade is complete.",
"Message": "Upgrading the %1 is complete.",
"Severity": "OK",
"NumberOfArgs": 1,
"ParamTypes": [
"string"
],
"Resolution": "None",
"HttpStatusCode": 200,
"IpmiCompletionCode": "0x00",
"SnmpStatusCode": 0,
"TraceDepth": 0
}
差距
- 升级固件当前版本、目标版本、生效方式 当前只有固件管理内部能获取到,对外无法获取
- 当前Message是根据错误引擎定义来展示,当前升级成功错误引擎的定义如下。Message的传参为固件类型。无法满足客户诉求
- 如果在固件管理直接定制Message,会涉及Redfish接口变更,可能会对上层网管有影响,因此只能在客户定制仓修改。
- 当前存在方法
GetUpdateProgress可以获取升级任务的信息,此方法现在是提供给北向获取升级进度。因此此方法的响应参数中没有 升级固件当前版本、升级固件目标版本、升级固件的生效方式
解决方案
- 扩展方法
GetUpdateProgress的响应参数,使得该方法能够获取升级固件当前版本、升级固件目标版本、升级固件的生效方式,提供给客户定制仓使用 - 在客户定制仓,将Message自定义,展示升级固件当前版本、升级固件目标版本、升级固件的生效方式
评审点1:查询升级进度的资源协作方法响应中增加扩展参数
path(已有):/bmc/kepler/UpdateService
interface(已有): bmc.kepler.UpdateService
method(已有):GetUpdateProgress
方法详情如下:
| 项 | 说明 |
|---|---|
| 方法名称 | GetUpdateProgress |
| 权限 | ReadOnly |
| 请求签名 | 无 |
| 请求参数 | 无 |
| 响应签名 | sa(a{ss}) |
| 响应参数 | UpgradeMode:类型为 string,表征当前升级管理的升级模式UpgradeTasks:类型为 array<dict>,表征当前升级管理的升级任务的进度信息,其中数组的每个元素 UpdateProgress 都是一个正在升级的任务信息。当前 UpdateProgress 已经有的属性如下:TaskName:类型为 string,表征升级任务的名称Firmware:类型为 string,表征升级固件的描述FirmwareInstance:类型为 string,表征升级的固件实例FileName:类型为 string,表征升级固件包的名称Percentage:类型为 string,表征升级任务当前的进度百分比TaskState:类型为 string,表征升级任务当前的状态ErrorCode:类型为 string,表征升级任务的错误码(注意:对于需要映射错误码时可以转换为数字) |
| 说明 | 获取所有升级任务的进度信息 |
本次评审需要在 UpdateProgress 下新增属性如下:
| 属性名称 | 属性签名 | 属性类型 | 属性说明 |
|---|---|---|---|
| CurrentVersion | s | string | 升级固件当前版本号 |
| TargetVersion | s | string | 升级固件目标版本号 |
| ActivateMode | s | string | 固件生效方式,取值有: NoAction:自动生效 ResetBMC:复位BMC生效 PowerOff:下电生效 |
评审结论
同意在资源协作接口 bmc.kepler.UpdateService 下的方法 GetUpdateProgress 在响应参数 UpgradeTasks 中的属性 UpdateProgress 增加元素,用于表示当前固件版本信息以及生效方式。新增的元素以及说明如下:
- CurrentVersion:取值类型为
string,表示当前升级任务中升级固件升级之前的版本号 - TargetVersion:取值类型为
string,表示当前升级任务中升级固件升级之后的版本号 - ActivateMode:取值类型为
string,表示当前升级任务中升级固件的生效方式
遗留问题
问题1:确认客户的需求,在新增上述属性之后是否可以满足要求
结论:已经确认,客户的需求是在升级任务的 Task 任务的描述 Message 中体现当前升级前后的版本号信息,对于Task 的 Message 信息可以通过定制的方式去处理,当前新增加的属性已经满足定制需要的原子能力信息。
