Skip to main content

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 username and password is required.

Request URL

PUT https://{management_server_IP}/updatableComponents

Query parameters

ParametersRequired / OptionalDescription
action={action}OptionalAction 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}OptionalIndicates 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. The firmware update process starts immediately; however, some but not all update operations are performed. Devices must be restarted to continue the update process. Additional restarts are then performed until the update operation completes. This rule is supported only for servers and rack switches.

    For ThinkSystem V4 servers, the applicable update packages are pushed to the server, but the update process does not start until the next time the server is restarted. No additional power actions are performed after the update process is complete. Updating firmware on the backup management controller is not supported.

  • 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.

    For ThinkSystem V4 servers, firmware updates on the management controller are activated immediately; other firmware updates are pushed to the server, and applied and activated the next time the devices is restarted. XClarity Administrator does not perform additional power actions after the update process on device is complete.

  • onReset. The applicable update packages are downloaded to the server, but the update process does not start until the next time the server is restarted. Additional restarts are then performed until the update operation completes. No additional power actions are performed after the update process is complete. This option is only supported on ThinkSystem v4 serves. Updating firmware on the backup management controller is not supported.

forceUpdateMode={mode}OptionalIndicates 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}OptionalIndicates 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}OptionalIndicates 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}OptionalIndicates 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.
AttributesRequired / OptionalTypeDescription
DeviceListRequiredArray of objectsList of devices
 CMMListOptionalArray of objectsList of CMMs
  ComponentsRequiredArray of stringsList of components in the CMM
   ComponentRequiredStringComponent name

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

   FixidOptionalStringFirmware-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.

  UUIDRequiredStringUUID of the chassis CMM
 ServerListOptionalArray of objectsList of servers
  ComponentsRequiredArray of objectsList of components in the server
   ComponentRequiredStringComponent name

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

   FixidOptionalStringFirmware-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.

  UUIDRequiredStringUUID of the server
 StorageListOptionalArray of objectsList of storage devices
  ComponentsRequiredArray of objectsList of components in the storage device
   ComponentRequiredStringComponent name

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

   FixidOptionalStringFirmware-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.

  UUIDRequiredStringWWNN of the storage device
 SwitchListOptionalArray of objectsList of switches
  ComponentsRequiredArray of objectsList of components in the switch
   ComponentRequiredStringComponent name

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

   FixidOptionalStringFirmware-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.

  UUIDRequiredStringUUID 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.
AttributesRequired / OptionalTypeDescription
DeviceListRequiredArray of objectsList of devices
 CMMListOptionalArray of objectsList of CMMs
  PowerStateRequiredStringPerforms a power operation on the CMM. This can be one of the following values.
  • reset. Restart the CMM.

  UUIDRequiredStringUUID of the chassis CMM
 ServerListOptionalArray of objectsList of servers
  PowerStateRequiredStringPerforms 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)

  UUIDRequiredStringUUID of the server
 StorageListOptionalArray of objectsList of storage devices
  PowerStateRequiredStringPerforms 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

  UUIDRequiredStringWWNN of the storage device
 SwitchListOptionalArray of objectsList of switches
  PowerStateRequiredStringPerforms 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

  UUIDRequiredStringUUID 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

CodeDescriptionComments
200OKThe request completed successfully.
400Bad RequestA 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.
403ForbiddenThe 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.

404Not foundA specified resource cannot be found. A descriptive error message is returned in the response body.
500Internal Server ErrorAn 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: []
}
}
}]
}]
}