PUT /updatableComponents

Use the PUT 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 associated firmware to the submitted components.

  • cancelApply. Cancels the firmware update request to the selected 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.
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.

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. (default) Stops all firmware updates on a specific device if an error is encountered and continues with the other devices.
  • continueOnError. Ignores errors and continues firmware updates on the devices.
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.
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 Lenovo 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 Lenovo 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
200 OK
400 Bad request
403 Forbidden
404 Not found
500 Internal server error

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 be returned for some requests.

Response example

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: []
            }
         }
      }]
   }]
}