PUT /updatableComponents

Use this method to start, apply or cancel a firmware update on target devices.

The request body differs depending on the action that you want to perform. You can use this PUT method to perform the following management actions.

Authentication

Authentication with user name and password is required.

Request URL

PUT https://{management_server_IP}/updatableComponents

Query parameters

Parameters Required / Optional Description
action={action} Optional Action to take. This can be one of the following values.
  • apply. (default) Applies the firmware updates to the specified components using applicable update packages.
  • applyBundle. Applies firmware updates to all components of specified ThinkSystem SR635 and SR655 devices according to the assigned firmware-compliance policy using a bundled image that contain all applicable firmware packages.
    Attention: Before using the bundled-update function, review important information regarding ThinkSystem SR635 and SR655 devices and the bundle-update function limitations (see Firmware update considerations).
  • cancelApply. Cancels the firmware update request for the specified components.
  • powerState. Performs a power operation on the specified device.
activationMode={mode} Optional Indicates when to activate the update. This can be one of the following values.
  • immediate. (default) During the update process, the target device might be automatically restarted multiple times until the entire process is complete. Ensure that you quiesce all applications on the target device before you proceed.
  • delayed. Some but not all update operations are performed. The target device must be restarted manually to continue the update process. Additional restarts are then performed automatically until the update operation completes. This rule is supported only for servers and rack switches.
  • prioritized. Firmware updates on the baseboard management controller are activated immediately; all other firmware updates are firmware updates are activated the next time the device is restarted. Additional restarts are then performed until the update operation completes. This rule is supported only for servers.
forceUpdateMode={mode} Optional Indicates whether to apply the update if firmware is already compliant. This can be one of the following values.
  • true. Applies the firmware update to the selected devices even if the firmware is compliant.
  • false. (default) Skips the firmware update on the selected devices if the firmware is already compliant.
functionType={type} Optional Indicates the function that applies to the power action. This can be one of the following values.
  • firmwareUpdates. (default)
  • osDriverUpdates.
Note: This query parameter is used only when the action=powerState query parameter is specified.
installPrereq={Boolean} Optional Indicates whether to install firmware prerequisites. This can be one of the following values.
  • true. (default) Installs all firmware prerequisites, if needed.
  • false. Do not install firmware prerequisites.

memoryTest={Boolean}

Optional

Indicates whether to run a memory test after the update firmware completes. This can be one of the following values.

  • true. (default) Run a memory test.
  • false. Do not run a memory test.
Note: This option is applicable only when activationMode is immediate and the server is rebooted during the firmware update.
onErrorMode={mode} Optional Indicates how to handle errors during the firmware update. This can be one of the following values.
  • stopOnError. Stops all firmware updates within the selected devices if an error is encountered.
  • stopdeviceOnError. Stops all firmware updates on a specific device if an error is encountered and continues with the other devices.
  • continueOnError. (default) Ignores errors and continues firmware updates on the devices.
The following example applies firmware updates, including firmware prerequisite, to a server using prioritized activation.
PUT https://192.0.2.0/updatableComponents?action=apply&functionType=firmwareUpdates
&activationMode=prioritized

Request body

Table 1. Applying or canceling a firmware update.
Attributes Required / Optional Type Description
DeviceList Required Array of objects List of devices
  CMMList Optional Array of objects List of CMMs
    Components Required Array of strings List of components in the CMM
      Component Required String Component name

To obtain the component name, use the GET /updateRepositories/firmware method.

      Fixid Optional String Firmware-update ID of the target package to be applied to the component. Specify if this attribute if the update is not driven by the firmware-compliance policy. Do not specify if the update is driven by the policy.

To obtain the firmware-update IDs, use the GET /updateRepositories/firmware method.

    UUID Required String UUID of the chassis CMM
  ServerList Optional Array of objects List of servers
    Components Required Array of objects List of components in the server
      Component Required String Component name

To obtain the component name, use the GET /updateRepositories/firmware method.

      Fixid Optional String Firmware-update ID of the target package to be applied to the component. Specify if this attribute if the update is not driven by the firmware-compliance policy. Do not specify if the update is driven by the policy.

To obtain the firmware-update IDs, use the GET /updateRepositories/firmware method.

    UUID Required String UUID of the server
  StorageList Optional Array of objects List of storage devices
    Components Required Array of objects List of components in the storage device
      Component Required String Component name

To obtain the component name, use the GET /updateRepositories/firmware method.

      Fixid Optional String Firmware-update ID of the target package to be applied to the component. Specify if this attribute if the update is not driven by the firmware-compliance policy. Do not specify if the update is driven by the policy.

To obtain the firmware-update IDs, use the GET /updateRepositories/firmware method.

    UUID Required String WWNN of the storage device
  SwitchList Optional Array of objects List of switches
    Components Required Array of objects List of components in the switch
      Component Required String Component name

To obtain the component name, use the GET /updatableComponents method.

      Fixid Optional String Firmware-update ID of the target package to be applied to the component. Specify if this attribute if the update is not driven by the firmware-compliance policy. Do not specify if the update is driven by the policy.

To obtain the firmware-update IDs, use the GET /updateRepositories/firmware method.

    UUID Required String UUID of the switch
The following example applies firmware updates to multiple devices and components.
{   
   "DeviceList": [{
      "ServerList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9903640",
         "Components": [{
            "Fixid": "lnvgy_fw_imm2_tcoo17g-3.00_anyos_noarch",
            "Component": "IMM2 (Backup)"
         },
         {
            "Fixid": "lnvgy_fw_imm2_tcoo17g-3.00_anyos_noarch",
            "Component": "IMM2 (Primary)"
         }]
      }]
   },
   {
      "CMMList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9903640",
         "Components": [{
            "Fixid": "lnvgy_fw_imm2_tcoo17g-3.00_anyos_noarch",
            "Component": "CMM”)"
         }]
      }]
   },
   {
      "SwitchList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9903640",
         "Components": [{
            "Fixid": "lnvgy_fw_scsw_en4093r-8.3.9.0_anyons_noarch",
            "Component": "Main Application"
         }]
      }]
   },
   {
      "StorageList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9903640",
         "Components": [{
            "Fixid": "lnvgy_fw_storage_1.1.1",
            "Component": "Controller a"
         }]
      }]
   }]
}
Table 2. Modifying the power state.
Attributes Required / Optional Type Description
DeviceList Required Array of objects List of devices
  CMMList Optional Array of objects List of CMMs
    PowerState Required String Performs a power operation on the CMM. This can be one of the following values.
  • reset. Restart the CMM.

    UUID Required String UUID of the chassis CMM
  ServerList Optional Array of objects List of servers
    PowerState Required String Performs a power operation on the device. This can be one of the following values:
  • powerOn. Powers on the server

  • powerOff. Powers off the server

  • powerCycleSoft. Immediately restarts the server

  • powerCycleSoftGrace. Restarts the server gracefully (shuts down the operating system where applicable)

  • powerOffHard. Immediately powers off the operating system, and shut down the server

  • powerOffHardGrace. Powers off the server gracefully (shuts down the operating system where applicable)

    UUID Required String UUID of the server
  StorageList Optional Array of objects List of storage devices
    PowerState Required String Performs a power operation on the device. This can be one of the following values.
  • powerOff. Power off the storage device

  • powerCycleSoft. Restart the storage device

    UUID Required String WWNN of the storage device
  SwitchList Optional Array of objects List of switches
    PowerState Required String Performs a power operation on the switch. This can be one of the following values.
  • powerOn. Power on the switch

  • powerOff. Power off the switch

  • powerCycleSoft. Restart the switch

    UUID Required String UUID of the switch
The following example performs power actions on multiple devices.
{
   "DeviceList": [{
      "CMMList": [{
         "PowerState": "reset",
         "UUID": "8BFBADCC33CB11E499F740F2E9972457"
      }]
   },
   {
      "ServerList": [{
         "PowerState": "powerOn",
         "UUID": "8BFBADCC33CB11E499F740F2E9936841"
      }]
   },
   {
      "StorageList": [{
         "PowerState": powerCycleSoft,
         "UUID": "8BFBADCC33CB11E499F740F2E9927945"
      }]
   },
   {
      "SwitchList": [{
         "PowerState": powerCycleSoft,
         "UUID": "8BFBADCC33CB11E499F740F2E9932769"
      }]
   }]
}

Response codes

Code Description Comments
200 OK The request completed successfully.
400 Bad Request A query parameter or request attribute is missing or not valid, or the operation is not supported. A descriptive error message is returned in the response body.
403 Forbidden The orchestrator server was prevented from fulfilling the request. A descriptive error message is returned in the response body. Ensure that you have privileges to perform the request.

For XClarity Administrator advanced functions, ensure that you have active licenses for each managed server that supports the advanced functions.

404 Not found A specified resource cannot be found. A descriptive error message is returned in the response body.
500 Internal Server Error An internal error occurred. A descriptive error message is returned in the response body.

Response body

The response body provides information about the success or failure of the request. The attributes in the response body differ depending on the specified request attributes.

Note: A response body is not returned for some requests.
The following example is returned when modifying the power state for multiple devices.
{
   "DeviceList": [{
      "CMMList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9972457",
         "PowerStatus": {
            "PowerRequest": "reset",
            "Status": "Success",
            "Message”: {
               result: "informational",
               messages: []
            }
         }
      }]
   },
   {
      "ServerList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9936841",
         "PowerStatus": {
            "PowerRequest": "powerOn",
            "Status": "Success",
            "Message”: {
               result: "informational",
               messages: []
            }
         }
      }]
   },
   {
      "StorageList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9927945",
         "PowerStatus": {
            "PowerRequest": "powerCycleSoft",
            "Status": "Success",
            "Message”: {
               result: "informational",
               messages: []
            }
         }
      }]
   },
   {
      "SwitchList": [{
         "UUID": "8BFBADCC33CB11E499F740F2E9932769",
         "PowerStatus": {
            "PowerRequest": "powerCycleSoft",
            "Status": "Success",
            "Message”: {
               result: "informational",
               messages: []
            }
         }
      }]
   }]
}