POST – 固件的简单更新
此操作可以更新软件映像文件(位于 ImageURI 参数引用的 URI 中)包含的已安装软件组件。
请求 URL
POST https://<BMC_IPADDR>/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
请求正文
| 参数 | 类型 | 错误消息 ID | 
|---|---|---|
ImageURI  | 字符串 | 映像文件的 URI  | 
Targets  | 字符串 | 待更新资源的 URI 即当您需要更新 BMC(备用)的固件时,Targets 参数必须为 [/redfish/v1/UpdateService/FirmwareInventory/BMC-Backup]。这也是通过在 Targets 中提供值来使用 Redfish 进行固件更新的例外情况,仅适用于 BMC(备用)更新。为了更新其他类型的固件,不需要 Targets 参数或此参数接受 null 值。  | 
TransferProtocol  | 字符串 | 此服务用于检索固件映像文件的网络协议  | 
Username  | 字符串 | 用于访问 sftp 服务器的用户名。当映像位于 sftp 服务器上,并且 username:password 在 ImageURI 中不可用时,此参数是必需的。  | 
Password  | 字符串 | 用于访问 sftp 服务器的密码。当映像位于 sftp 服务器上,并且 username:password 在 ImageURI 中不可用时,此参数是必需的。  | 
响应
| 字段 | 类型 | 错误消息 ID | 
|---|---|---|
Id  | 字符串 | 创建的任务 ID。  | 
Name  | 字符串 | 任务名称。  | 
Description  | 字符串 | “This resource represents a task for a Redfish implementation.”  | 
TaskMonitor  | 字符串 | 此任务的任务监控器的 URI。  | 
StartTime  | 字符串 | 上次启动任务的日期时间戳。  | 
TaskState  | 字符串 | 任务的状态。  | 
Messages  | 数组 | 这是与任务关联的消息数组。  | 
PercentComplete  | 整数 | 任务完成百分比。  | 
HidePayload  | 布尔 | 指示 Payload 对象为隐藏状态且不会在执行 GET 时返回。  | 
状态代码
| HTTP 状态代码 | 错误消息 ID | 
|---|---|
| 202 | Accepted | 
| 400 | BadRequest、ActionParamMissing、ActionParamTypeError、ActionParamFormatError | 
| 419 | Conflict | 
| 500 | InternalError | 
示例
以下示例是更新 BMC(备用)的请求。POST 正文填充如下:
{
  "ImageURI":"sftp://192.168.1.126/tmp/xcc/lnvgy_fw_xcc_cdi338d-2.70_anyos_noarch.uxz",
  "Targets": [
    "/redfish/v1/UpdateService/FirmwareInventory/BMC-Backup"
  ],
  "Username":"userid",
  "Password":"password"
}
返回以下示例 JSON 响应。
{
   "Id" : "c13eea76-4ee3-4696-8e03-0f0b16bb6512",
   "Messages" : [],
   "TaskState" : "New",
   "@odata.etag" : "\"1577366735335\"",
   "@odata.id" : "/redfish/v1/TaskService/Tasks/c13eea76-4ee3-4696-8e03-0f0b16bb6512",
   "PercentComplete" : 0,
   "@odata.type" : "#Task.v1_4_1.Task",
   "StartTime" : "2019-12-26T13:25:35+00:00",
   "Description" : "This resource represents a task for a Redfish implementation.",
   "Name" : "Task c13eea76-4ee3-4696-8e03-0f0b16bb6512",
   "HidePayload" : true,
   "TaskMonitor" : "/redfish/v1/TaskService/0c24a202-c4ef-4bf8-9c10-2bb806ffd8a2"
}
在响应正文中将包含新创建的 Task 资源。然后,通过“GET”获取 URI 以检查更新过程。返回以下示例 JSON 响应。
{
    "StartTime": "2019-12-26T13:25:35+00:00",
    "TaskState": "Running",
    "HidePayload": true,
    "@odata.id": "/redfish/v1/TaskService/Tasks/c13eea76-4ee3-4696-8e03-0f0b16bb6512",
    "PercentComplete": 17,
    "Name": "Task c13eea76-4ee3-4696-8e03-0f0b16bb6512",
    "TaskMonitor": "/redfish/v1/TaskService/0c24a202-c4ef-4bf8-9c10-2bb806ffd8a2",
    "Id": "c13eea76-4ee3-4696-8e03-0f0b16bb6512",
    "@odata.type": "#Task.v1_4_1.Task",
    "@odata.etag": "\"1577366759808\"",
    "Messages": [
        {
            "@odata.type": "#Message.v1_0_7.Message",
            "Message": "The task with id c13eea76-4ee3-4696-8e03-0f0b16bb6512 has changed to progress 17 percent complete.",
            "Resolution": "None.",
            "Severity": "OK",
            "MessageId": "TaskEvent.1.0.TaskProgressChanged",
            "MessageArgs": [
                "c13eea76-4ee3-4696-8e03-0f0b16bb6512",
                "17"
            ]
        },
        {
            "@odata.type": "#Message.v1_0_7.Message",
            "Message": "Transfer 49 percent complete.",
            "Resolution": "None",
            "Severity": "OK",
            "MessageId": "LenovoFirmwareUpdateRegistry.1.0.UpdateTransferInProgress",
            "MessageArgs": [
                "49"
            ]
        }
    ],
    "Description": "This resource represents a task for a Redfish implementation."
}
以下示例是更新 UEFI 的请求。POST 正文填充如下:
{
  "ImageURI":"sftp://192.168.1.126/tmp/uefi/lnvgy_fw_uefi_ive148m-2.41_anyos_32-64.uxz",
  "Username":"userid",
  "Password":"password"
}
返回 POST SimpleUpdate 操作的以下示例 JSON 响应。
{
   "Id" : "5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
   "Messages" : [],
   "TaskState" : "New",
   "@odata.etag" : "\"1577365985589\"",
   "@odata.id" : "/redfish/v1/TaskService/Tasks/5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
   "PercentComplete" : 0,
   "@odata.type" : "#Task.v1_4_1.Task",
   "StartTime" : "2019-12-26T13:13:05+00:00",
   "Description" : "This resource represents a task for a Redfish implementation.",
   "Name" : "Task 5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
   "HidePayload" : true,
   "TaskMonitor" : "/redfish/v1/TaskService/20c990b8-6a6b-44dd-818c-9e6348bdfc4d"
}
在响应正文中将包含新创建的 Task 资源。然后,通过“GET”获取 URI 以检查更新过程。返回以下示例 JSON 响应。
{
    "StartTime": "2019-12-26T13:13:05+00:00",
    "TaskState": "Running",
    "HidePayload": true,
    "@odata.id": "/redfish/v1/TaskService/Tasks/5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
    "PercentComplete": 59,
    "Messages": [
        {
            "MessageArgs": [
                "5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
                "59"
            ],
            "Message": "The task with id 5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8 has changed to progress 59 percent complete.",
            "MessageId": "TaskEvent.1.0.TaskProgressChanged",
            "Severity": "OK",
            "Resolution": "None.",
            "@odata.type": "#Message.v1_0_7.Message"
        },
        {
            "MessageArgs": [
                "1",
                "/redfish/v1/UpdateService/FirmwareInventory/UEFI",
                "UEFI-IVE1-6",
                "48M-2.41",
                "Unknown"
            ],
            "Message": "Assignment 1: Resource /redfish/v1/UpdateService/FirmwareInventory/UEFI SoftwareID UEFI-IVE1-6 Version 48M-2.41 to Version Unknown.",
            "@odata.type": "#Message.v1_0_7.Message",
            "Severity": "OK",
            "MessageId": "LenovoFirmwareUpdateRegistry.1.0.UpdateAssignment",
            "Resolution": "None"
        },
        {
            "@odata.type": "#Message.v1_0_7.Message",
            "Message": "Assignment 1: Apply 38 percent complete.",
            "Resolution": "None",
            "Severity": "OK",
            "MessageId": "LenovoFirmwareUpdateRegistry.1.0.PayloadApplyInProgress",
            "MessageArgs": [
                "1",
                "38"
            ]
        }
    ],
    "@odata.type": "#Task.v1_4_1.Task",
    "Name": "Task 5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
    "Id": "5913dce0-dbc7-4ba3-a643-0f4cd4bec5e8",
    "@odata.etag": "\"1577366006339\"",
    "TaskMonitor": "/redfish/v1/TaskService/20c990b8-6a6b-44dd-818c-9e6348bdfc4d",
    "Description": "This resource represents a task for a Redfish implementation."
}