ironic.drivers.modules.drac.boot module

class ironic.drivers.modules.drac.boot.DracRedfishVirtualMediaBoot(*args, **kwargs)[source]

Bases: RedfishVirtualMediaBoot

iDRAC Redfish interface for virtual media boot-related actions.

Virtual Media allows booting the system from “virtual” CD/DVD drive containing user image that BMC “inserts” into the drive.

The CD/DVD images must be in ISO format and (depending on BMC implementation) could be pulled over HTTP, served as iSCSI targets or NFS volumes.

The baseline boot workflow is mostly based on the standard Redfish virtual media boot interface, which looks like this:

  1. Pull kernel, ramdisk and ESP if UEFI boot is requested (FAT partition image with EFI boot loader) images

  2. Create bootable ISO out of images (#1), push it to Glance and pass to the BMC as Swift temporary URL

  3. Optionally create floppy image with desired system configuration data, push it to Glance and pass to the BMC as Swift temporary URL

  4. Insert CD/DVD and (optionally) floppy images and set proper boot mode

For building deploy or rescue ISO, redfish boot interface uses deploy_kernel/deploy_ramdisk or rescue_kernel/rescue_ramdisk properties from [instance_info] or [driver_info].

For building boot (user) ISO, redfish boot interface seeks kernel_id and ramdisk_id properties in the Glance image metadata found in [instance_info]image_source node property.

iDRAC virtual media boot interface only differs by the way how it sets the node to boot from a virtual media device - this is done via OEM action call implemented in Dell sushy OEM extension package.

VIRTUAL_MEDIA_DEVICES = {'cdrom': VirtualMediaType.CD, 'floppy': VirtualMediaType.FLOPPY}