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.
The process to update Oracle ILOM firmware image on a system device involves these three steps:
Step 1: Upload the Local Firmware Package File
Step 2: View and Answer the Firmware Configuration Questions.
Use a POST request to upload a local firmware package file.
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.
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:
{ "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.
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.
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
{ "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:
{ "code": 0, "description": "PATH Action Complete" }
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.
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:
{ "Target":"/rest/v<version>/SP/firmware/update/1/status", "state":"In Progress", "result":"", "component":"uboot", "component_progress":"7 of 8" }
Related Information