ironic.drivers.modules.ilo.common module

Common functionalities shared between different iLO modules.

ironic.drivers.modules.ilo.common.POST_FINISHEDPOST_STATE = 'FinishedPost'

Node is in FinishedPost post state.

ironic.drivers.modules.ilo.common.POST_INPOSTDISCOVERY_STATE = 'InPostDiscoveryComplete'

Node is in InPostDiscoveryComplete post state.

ironic.drivers.modules.ilo.common.POST_INPOST_STATE = 'InPost'

Node is in InPost post state.

ironic.drivers.modules.ilo.common.POST_NULL_STATE = 'Null'

Node is in Null post state.

ironic.drivers.modules.ilo.common.POST_POWEROFF_STATE = 'PowerOff'

Node is in PowerOff post state.

ironic.drivers.modules.ilo.common.POST_RESET_STATE = 'Reset'

Node is in Reset post state.

ironic.drivers.modules.ilo.common.POST_UNKNOWN_STATE = 'Unknown'

Node is in Unknown post state.

ironic.drivers.modules.ilo.common.attach_vmedia(node, device, url)[source]

Attaches the given url as virtual media on the node.

Parameters
  • node – an ironic node object.

  • device – the virtual media device to attach

  • url – the http/https url to attach as the virtual media device

Raises

IloOperationError if insert virtual media failed.

ironic.drivers.modules.ilo.common.cleanup_vmedia_boot(task)[source]

Cleans a node after a virtual media boot.

This method cleans up a node after a virtual media boot. It deletes the floppy image if it exists in CONF.ilo.swift_ilo_container or web server. It also ejects both virtual media cdrom and virtual media floppy.

Parameters

task – a TaskManager instance containing the node to act on.

ironic.drivers.modules.ilo.common.copy_image_to_swift(source_file_path, destination_object_name)[source]

Uploads the given image to swift.

This method copies the given image to swift.

Parameters
  • source_file_path – The absolute path of the image file which needs to be copied to swift.

  • destination_object_name – The name of the object that will contain the copied image.

Raises

SwiftOperationError, if any operation with Swift fails.

Returns

temp url from swift after the source image is uploaded.

ironic.drivers.modules.ilo.common.copy_image_to_web_server(source_file_path, destination)[source]

Copies the given image to the http web server.

This method copies the given image to the http_root location. It enables read-write access to the image else the deploy fails as the image file at the web_server url is inaccessible.

Parameters
  • source_file_path – The absolute path of the image file which needs to be copied to the web server root.

  • destination – The name of the file that will contain the copied image.

Raises

ImageUploadFailed exception if copying the source file to the web server fails.

Returns

image url after the source image is uploaded.

ironic.drivers.modules.ilo.common.destroy_floppy_image_from_web_server(node)[source]

Removes the temporary floppy image.

It removes the floppy image created for deploy. :param node: an ironic node object.

ironic.drivers.modules.ilo.common.eject_vmedia_devices(task)[source]

Ejects virtual media devices.

This method ejects virtual media floppy and cdrom.

Parameters

task – a TaskManager instance containing the node to act on.

Returns

None

Raises

IloOperationError, if some error was encountered while trying to eject virtual media floppy or cdrom.

ironic.drivers.modules.ilo.common.get_ilo_object(node)[source]

Gets an IloClient object from proliantutils library.

Given an ironic node object, this method gives back a IloClient object to do operations on the iLO.

Parameters

node – an ironic node object.

Returns

an IloClient object.

Raises

InvalidParameterValue on invalid inputs.

Raises

MissingParameterValue if some mandatory information is missing on the node

ironic.drivers.modules.ilo.common.get_secure_boot_mode(task)[source]

Retrieves current enabled state of UEFI secure boot on the node

Returns the current enabled state of UEFI secure boot on the node.

Parameters

task – a task from TaskManager.

Raises

MissingParameterValue if a required iLO parameter is missing.

Raises

IloOperationError on an error from IloClient library.

Raises

IloOperationNotSupported if UEFI secure boot is not supported.

Returns

Boolean value indicating current state of UEFI secure boot on the node.

ironic.drivers.modules.ilo.common.get_server_post_state(node)[source]

Get the current state of system POST.

Parameters

node – an ironic node object.

Returns

POST state of the server. The valida states are:- null, Unknown, Reset, PowerOff, InPost, InPostDiscoveryComplete and FinishedPost.

Raises

IloOperationError on an error from IloClient library.

Raises

IloOperationNotSupported if retrieving post state is not supported on the server.

ironic.drivers.modules.ilo.common.parse_driver_info(node)[source]

Gets the driver specific Node info.

This method validates whether the ‘driver_info’ property of the supplied node contains the required information for this driver.

Parameters

node – an ironic Node object.

Returns

a dict containing information from driver_info (or where applicable, config values).

Raises

InvalidParameterValue if any parameters are incorrect

Raises

MissingParameterValue if some mandatory information is missing on the node

ironic.drivers.modules.ilo.common.remove_image_from_swift(object_name, associated_with=None)[source]

Removes the given image from swift.

This method removes the given image name from swift. It deletes the image if it exists in CONF.ilo.swift_ilo_container

Parameters
  • object_name – The name of the object which needs to be removed from swift.

  • associated_with – string to depict the component/operation this object is associated to.

ironic.drivers.modules.ilo.common.remove_image_from_web_server(object_name)[source]

Removes the given image from the configured web server.

This method removes the given image from the http_root location, if the image exists.

Parameters

object_name – The name of the image file which needs to be removed from the web server root.

ironic.drivers.modules.ilo.common.remove_single_or_list_of_files(file_location)[source]

Removes (deletes) the file or list of files.

This method only accepts single or list of files to delete. If single file is passed, this method removes (deletes) the file. If list of files is passed, this method removes (deletes) each of the files iteratively.

Parameters

file_location – a single or a list of file paths

ironic.drivers.modules.ilo.common.set_boot_mode(node, boot_mode)[source]

Sets the node to boot using boot_mode for the next boot.

Parameters
  • node – an ironic node object.

  • boot_mode – Next boot mode.

Raises

IloOperationError if setting boot mode failed.

ironic.drivers.modules.ilo.common.set_secure_boot_mode(task, flag)[source]

Enable or disable UEFI Secure Boot for the next boot

Enable or disable UEFI Secure Boot for the next boot

Parameters
  • task – a task from TaskManager.

  • flag – Boolean value. True if the secure boot to be enabled in next boot.

Raises

IloOperationError on an error from IloClient library.

Raises

IloOperationNotSupported if UEFI secure boot is not supported.

ironic.drivers.modules.ilo.common.setup_vmedia(task, iso, ramdisk_options)[source]

Attaches virtual media and sets it as boot device.

This method attaches the given bootable ISO as virtual media, prepares the arguments for ramdisk in virtual media floppy.

Parameters
  • task – a TaskManager instance containing the node to act on.

  • iso

    a bootable ISO image href to attach to. Should be either of below:

    • A Swift object - It should be of format swift:<object-name>. It is assumed that the image object is present in CONF.ilo.swift_ilo_container;

    • A Glance image - It should be format glance://<glance-image-uuid> or just <glance-image-uuid>;

    • An HTTP URL.

  • ramdisk_options – the options to be passed to the ramdisk in virtual media floppy.

Raises

ImageCreationFailed, if it failed while creating the floppy image.

Raises

IloOperationError, if some operation on iLO failed.

ironic.drivers.modules.ilo.common.setup_vmedia_for_boot(task, boot_iso, parameters=None)[source]

Sets up the node to boot from the given ISO image.

This method attaches the given boot_iso on the node and passes the required parameters to it via virtual floppy image.

Parameters
  • task – a TaskManager instance containing the node to act on.

  • boot_iso

    a bootable ISO image to attach to. Should be either of below:

    • A Swift object - It should be of format swift:<object-name>. It is assumed that the image object is present in CONF.ilo.swift_ilo_container;

    • A Glance image - It should be format glance://<glance-image-uuid> or just <glance-image-uuid>;

    • An HTTP URL.

  • parameters – the parameters to pass in the virtual floppy image in a dictionary. This is optional.

Raises

ImageCreationFailed, if it failed while creating the floppy image.

Raises

SwiftOperationError, if any operation with Swift fails.

Raises

IloOperationError, if attaching virtual media failed.

ironic.drivers.modules.ilo.common.update_boot_mode(task)[source]

Update instance_info with boot mode to be used for deploy.

This method updates instance_info with boot mode to be used for deploy if node properties[‘capabilities’] do not have boot_mode. It sets the boot mode on the node.

Parameters

task – Task object.

Raises

IloOperationError if setting boot mode failed.

ironic.drivers.modules.ilo.common.update_ipmi_properties(task)[source]

Update ipmi properties to node driver_info

Parameters

task – a task from TaskManager.

ironic.drivers.modules.ilo.common.update_secure_boot_mode(task, mode)[source]

Changes secure boot mode for next boot on the node.

This method changes secure boot mode on the node for next boot. It changes the secure boot mode setting on node only if the deploy has requested for the secure boot. During deploy, this method is used to enable secure boot on the node by passing ‘mode’ as ‘True’. During teardown, this method is used to disable secure boot on the node by passing ‘mode’ as ‘False’.

Parameters
  • task – a TaskManager instance containing the node to act on.

  • mode – Boolean value requesting the next state for secure boot

Raises

IloOperationNotSupported, if operation is not supported on iLO

Raises

IloOperationError, if some operation on iLO failed.

ironic.drivers.modules.ilo.common.verify_image_checksum(image_location, expected_checksum)[source]

Verifies checksum (md5) of image file against the expected one.

This method generates the checksum of the image file on the fly and verifies it against the expected checksum provided as argument.

Parameters
  • image_location – location of image file whose checksum is verified.

  • expected_checksum – checksum to be checked against

Raises

ImageRefValidationFailed, if invalid file path or verification fails.