Go to main content

Oracle® ILOM Web Service REST API

Exit Print View

Updated: December 2019
 
 

Updating Oracle ILOM Firmware

To ensure that users have access to the latest Oracle ILOM features and product enhancements,all upgradable system devices should be updated with the latest Oracle ILOM firmware release.


Note -  In addition to using the Oracle ILOM REST API to update firmware on system devices, you can use the Oracle ILOM web interface or CLI. For further details, see Updating Oracle ILOM Firmware in Oracle ILOM Administrator’s Guide for Configuration and Maintenance Firmware Release 5.0.x

The process to update Oracle ILOM firmware image on a system device involves these three steps:

Step 1: Upload the Local Firmware Package File

Use a POST request to upload a local firmware package file.


Note -  Firmware packages can take several minutes to upload depending on network speed.

HTTP Request Format:

POST /rest/v<version>/SP/firmware/update HTTP/1.1
<Header Name>: <value>

<Request body>

Where:

  • The <Request body> contains the package file contents in a multi-part data form format.

Request Headers Required:

The following request headers are required to upload a local firmware package file.

  • Accept header – The Accept: header must specify the value of application/json or a superset of application/json.

  • Content-Type header – The Content-Type: header must specify the value of multipart/form-data.


    Note -  Some tools such as cURL provide the Content-Type and file contents when the user supplies the file path.
  • Other headers– Authenication and Host headers are required. For a description of these headers, see Common Request Header Fields.

Response: Status Codes

  • Success: HTTP Status = 200 OK

  • Failure: HTTP Status = 4xx, 5xx

Response Body:


Note -  To identify the exact response body media type, refer to the Oracle ILOM Swagger Model (swagger.json) description. For more details, see Discovering Management Resources.
{
  "Target":"/rest/v<version>/SP/firmware/update/1",
  "Targets":[
    {
      "name":"questions",
      "uri":"/rest/v1/SP/firmware/update/1/questions"
    },
    {
      "name":"status",
      "uri":"/rest/v1/SP/firmware/update/1/status"
    },
    {
      "name":"versions",
      "uri":"/rest/v1/SP/firmware/update/1/versions"
    }
  ]
}

Where:

  • The context number /1 represents the first local firmware package uploaded to the server SP. For every new firmware package created on the server SP, the content number that the REST API assigns is incremented by one. For example, 1 is assigned to the first package created. If the first package is later removed and another package is created, the second package instance is then assigned 2.


    Note -  As of Oracle ILOM firmware version 5.0, only one firmware update image can be up uploaded to the server SP at a given time. Earlier versions of Oracle ILOM firmware versions (4.0.1 and later 4.x.releases), supported up to three active firmware update instances at a given time.
  • The "questions" are the same firmware update questions that are asked when using the Oracle ILOM CLI to perform the update. All answers to these questions must be answered either true or false. For information on how to view and provide answers to these questions, see Step 2: View and Answer the Firmware Configuration Questions.

Step 2: View and Answer the Firmware Configuration Questions

Use a GET and PATCH request to retrieve and modify the firmware configuration questions that were returned by the POST operation in Step 1: Upload the Local Firmware Package File .

HTTP Request Format: View Questions

The HTTP request to view the firmware configuration questions, would look like this:

GET /rest/v<version>/SP/firmware/update/1/questions HTTP/1.1
<Header Name>: <Value>

Request Headers Required

The request header fields required to retrieve resources are as follows: Accept, Authorization, and Host.

For a description of these required header fields, see Common Request Header Fields.

cURL Request Example: View Questions

Using cURL, the request to view the firmware configuration questions would look like this:

curl -k -u "root:changeme" -H "Accept:application/json" https://<IP addr>:443/rest/v1/SP/firmware/update/1/questions

Response: Status Codes

  • Success: HTTP Status = 200 OK

  • Failure: HTTP Status = 4xx, 5xx

Response Body


Note -  To identify the exact response body media type, refer to the Oracle ILOM Swagger Model (swagger.json) description. For more details, see Discovering Management Resources.
{
  "Target": "/rest/v<version>/SP/firmware/update1/questions",
  "questions":
  [
    {
      "text": "Preserve existing SP configuration",
      "value": true
    },
    {
      "text": "Preserve existing BIOS configuration",
      "value": true
    },
    {
      "text": "Delay BIOS upgrade until next server poweroff or reset",
      "value": true
    }
  ]
}

HTTP Request Format: Answer Questions

The HTTP request to modify a firmware configuration question, would look like this:

PATCH /rest/v<version>/SP/firmware/update/1/questions HTTP/1.1
<Header Name>: <Value>

<Request Body>

The <Request Body> specifies the firmware configuration question and its value in the format described in the Swagger model.

Request Headers Required

The request header fields required to modify resources are as follows: Content-Type, Authorization , and Host.

For a description of these required header fields, see Common Request Header Fields.

cURL Request Example: Answer Questions

Using cURL, the request to modify a firmware question would look like this:

curl --request PATCH --data '{"questions":[{"text":"Preserve existing SP configuration","value":false}]}' -v -k -v -u "root:changeme" -H "Accept:application/json" https://IP addr:443/rest/v1/SP/firmware/update/1/questions

Response: Status Codes

  • Success: HTTP Status = 200 OK

  • Failure: HTTP Status = 4xx, 5xx

Response Body:


Note -  To identify the exact response body media type, refer to the Oracle ILOM Swagger Model (swagger.json) description. For more details, see Discovering Management Resources.
{
  "code": 0,
    "description": "PATH Action Complete"
}

Step 3: Start the Firmware Installation and Poll the Status

Use a PATCH request to start the firmware update. To poll the status of the firmware update while the installation is in process, use a GET request.


Note -  Upon the completion of the firmware update process, the SP will automatically reset and become temporarily non-responsive.

HTTP Request Format: Start Firmware Installation

PATCH /rest/v<version>/SP/firmware/update/1 HTTP/1.1
<Header Name>: <Value>

<Request body>
{
  "start": true
}

Where:

  • The <Request body> specifies the JSON content.

  • The "start":true initiates the configuration and installation of the firmware update package.

Request Headers Required

The request header fields required to modify resources are as follows: Content-Type, Authorization, and Host.

For a description of these required header fields, see Common Request Header Fields.

HTTP Request Format: Poll Installation Status

GET /rest/v<version>/SP/firmware/update/1/status HTTP/1.1
<Header Name>: <Value>

Request Headers Required

The request header fields required to retrieve resources are as follows: Accept, Authorization, and Host.

For a description of these required header fields, see Common Request Header Fields.

Response: Status Codes

  • Success: HTTP Status = 200 OK

  • Failure: HTTP Status = 4xx, 5xx

Response Body:


Note -  To identify the exact response body media type, refer to the Oracle ILOM Swagger Model (swagger.json) description. For more details, see Discovering Management Resources.
{
  "Target":"/rest/v<version>/SP/firmware/update/1/status",
  "state":"In Progress",
  "result":"",
  "component":"uboot",
  "component_progress":"7 of 8"
}

Related Information