【已评审】支持并行升级和统一生效redfish接口评审

背景:并行升级特性支持redfish机机接口,需要新增URL,具体评审点如下:

评审点一:redfish新增并行升级接口:

URI: /redfish/v1/UpdateService/Actions/Oem/Huawei/UpdateService.ParallelUpdate
操作类型:POST
请求参数:
{ 
    Packages:[
        { 
            "ImageURI": filepath, 
            "TransferProtocol": protocol,
            "BiosActiveMode": biosactivemode,
            "SystemId": systemid
        },
        { 
            "ImageURI": filepath, 
            "TransferProtocol": protocol,
            "BiosActiveMode": biosactivemode,
            "SystemId": systemid
        }
    ]
}
权限:
BasicSetting

请求参数说明:

参数 必选/可选 参数说明 取值
filepath 必选 升级包所在路径 升级包的URL
protocol 可选 从远程服务器下载升级包时使用的协议 HTTPS/SCP/SFTP/CIFS/NFS(本地升级则不需要该字段。)
biosactivemode 可选 BIOS无感升级生效区域 Default/IMU/M7/All/None
systemid 可选 Multi-Host场景下指定升级某host的固件 字符串[1 ~ N]:表示升级第N个host上的固件,要求对应的host在位 。可选参数,不使用此参数默认升级所有host。
响应消息体举例:
{ 
    "@odata.context": "/redfish/v1/$metadata#TaskService/Tasks/Members/$entity", 
    "@odata.type": "#Task.v1_0_2.Task", 
    "@odata.id": "/redfish/v1/TaskService/Tasks/1", 
    "Id": "1", 
    "Name": "Update Task"
    "TaskState": "Running", 
    "StartTime": "2016-11-28T10:36+00:00", 
    "Messages": [], 
    "SubTasks": {
        "@odata.id": "/redfish/v1/TaskService/Tasks/1/SubTasks"
    } 
    "Oem": { 
       "Huawei": { 
        "TaskPercentage": null
        }
    }
}
响应码:202

响应参数说明:

字段 类型 说明
@odata.context 字符串 当前任务资源的OData描述信息
@odata.type 字符串 当前任务资源的类型
@odata.id 字符串 当前任务资源的访问路径
Id 字符串 任务ID
Name 字符串 任务的名称
TaskState 字符串 任务执行状态
StartTime 字符串 任务的起始时间
TaskPercentage 字符串 任务执行的进度

评审点二:redfish新增统一生效接口:

URI: /redfish/v1/UpdateService/Actions/Oem/Huawei/UpdateService.StartActivate
操作类型:POST
接口功能:所有待生效固件开始生效
请求消息体:
{
    // 可选:"ResetBMC"、"PowerOff"
    "ActivationControl": [
         "ResetBMC" ,
         "PowerOff"
    ]
}

请求参数说明:

字段 类型 说明
ActivationControl 数组 生效控制方式
响应消息体举例:
{ 
    "@odata.context": "/redfish/v1/$metadata#TaskService/Tasks/Members/$entity", 
    "@odata.type": "#Task.v1_0_2.Task", 
    "@odata.id": "/redfish/v1/TaskService/Tasks/1", 
    "Id": "1", 
    "Name": "Update Task"
    "TaskState": "Running", 
    "StartTime": "2016-11-28T10:36+00:00", 
    "Messages": [], 
    "Oem": { 
       "Huawei": { 
        "TaskPercentage": null
        }
    }
}
响应码:202

响应参数说明:

字段 类型 说明
@odata.context 字符串 当前任务资源的OData描述信息
@odata.type 字符串 当前任务资源的类型
@odata.id 字符串 当前任务资源的访问路径
Id 字符串 任务ID
Name 字符串 任务的名称
TaskState 字符串 任务执行状态
StartTime 字符串 任务的起始时间
SubTasks 对象 此任务的子任务集合路径
TaskPercentage 字符串 任务执行的进度

说明:
“ResetBMC”:生效只需要复位BMC的固件,如BMC、CSR;
“PowerOff”:生效只需要下电就生效的固件,如VRD;说明:生效完成后会恢复系统之前的上下电状态
“ResetBMC”与“PowerOff”都选择:生效所有固件;
缺省:均不选择:生效所有固件;
权限:
如果有"PowerOff "则需要PowerMgmt权限,否则需要BasicSetting权限。
如果无权限报错(InsufficientPrivilege,HTTPCode:403)

评审结论

通过,具体结论如下:

  • 同意新增 Redfish 并行升级接口,接口操作类型为 POST, 接口 URI 为 /redfish/v1/UpdateService/Actions/Oem/Huawei/UpdateService.ParallelUpdate
  • 同意新增 Redfish 统一生效接口,接口操作类型为 POST,接口 URI 为 /redfish/v1/UpdateService/Actions/Oem/Huawei/UpdateService.StartActivate

当前BIOS在并行升级时无法支持无感升级,当前问题已经issue进行跟踪。具体issue:
并行升级支持BIOS的无感升级 rackmount issue #120

当前并行升级的响应后续要支持子任务管理,当前问题已经issue进行跟踪,具体issue:
并行升级响应支持子任务处理 rackmount issue #121