dell / iDRAC-Redfish-Scripting

Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish
GNU General Public License v2.0
609 stars 279 forks source link

How to cancel the firmware updating procedure and/or Ramdisk #redfish #180

Closed Kdy77k closed 3 years ago

Kdy77k commented 3 years ago

How to cancel the provisioning procedure via standard redfish simple-Update spec? I invoke a firmware updating or setup/boot-up with Ramdisk, I want to know how to cancel the firmware update and/or Ramdisk via redfish standard spec?

texroemer commented 3 years ago

Hi @Kdy77k

Can you give more details on what device did you execute firmware update for? Was it an immediate update device (example: iDRAC) or a staged update device (example: BIOS)? If immediate update device, there is no way to cancel the update once the process has started. If staged update device, if the server hasn't rebooted and started the execution of the update task, then it can be cancelled by deleting the job ID.

Thanks Tex

Kdy77k commented 3 years ago

@texroemer Thank you for your reply. Will Idrac support something like "cancel" or "hang-on" interface as standard or OEM redfish interface in the future? :)

Kdy77k commented 3 years ago

@texroemer Hi :)

texroemer commented 3 years ago

Currently there are no future plans to add a cancel option once a firmware update process has started or update job in running state. By cancelling a firmware update in process this could lead to the server getting into a failed state like no longer booting.

For hang on or delay of running a firmware update, you can technically do this using Redfish since the update process is two steps. One step to download the payload and second step to install the downloaded payload. See code from script "DeviceFirmwareSimpleUpdateREDFISH.py" where function "download_image_payload()" downloads the payload, creates available URI entry. Function "install_image_payload()" will install the downloaded payload using the available URI entry. If you only run function "download_image_payload()", this will only queue up the available URI entry for the download and not apply it. This would be your hang or delay scenario where the download of the payload has been performed but not applied. Also remember the available URI entry is exposed for only 30 minutes. If you don't install the payload within 30 minutes, the available URI entry gets auto deleted.

Thanks Tex