ironic.drivers.modules.boot_mode_utils module

ironic.drivers.modules.boot_mode_utils.get_boot_mode(node)[source]

Returns the boot mode.

Parameters

node – an ironic node object.

Returns

‘bios’ or ‘uefi’

Raises

InvalidParameterValue, if the node boot mode disagrees with the boot mode set to node properties/capabilities

ironic.drivers.modules.boot_mode_utils.get_boot_mode_for_deploy(node)[source]

Returns the boot mode that would be used for deploy.

This method returns boot mode to be used for deploy. It returns ‘uefi’ if ‘secure_boot’ is set to ‘true’ or returns ‘bios’ if ‘trusted_boot’ is set to ‘true’ in ‘instance_info/capabilities’ of node. Otherwise it returns value of ‘boot_mode’ in ‘properties/capabilities’ of node if set. If that is not set, it returns boot mode in ‘internal_driver_info/deploy_boot_mode’ for the node. If that is not set, it returns boot mode in ‘instance_info/deploy_boot_mode’ for the node. It would return None if boot mode is present neither in ‘capabilities’ of node ‘properties’ nor in node’s ‘internal_driver_info’ nor in node’s ‘instance_info’ (which could also be None).

Parameters

node – an ironic node object.

Returns

‘bios’, ‘uefi’ or None

Raises

InvalidParameterValue, if the node boot mode disagrees with the boot mode set to node properties/capabilities

ironic.drivers.modules.boot_mode_utils.is_secure_boot_requested(node)[source]

Returns True if secure_boot is requested for deploy.

This method checks node property for secure_boot and returns True if it is requested.

Parameters

node – a single Node.

Raises

InvalidParameterValue if the capabilities string is not a dictionary or is malformed.

Returns

True if secure_boot is requested.

ironic.drivers.modules.boot_mode_utils.is_trusted_boot_requested(node)[source]

Returns True if trusted_boot is requested for deploy.

This method checks instance property for trusted_boot and returns True if it is requested.

Parameters

node – a single Node.

Raises

InvalidParameterValue if the capabilities string is not a dictionary or is malformed.

Returns

True if trusted_boot is requested.

ironic.drivers.modules.boot_mode_utils.sync_boot_mode(task)[source]

Set node’s boot mode from bare metal configuration

Attempt to read currently set boot mode off the bare metal machine. Also read node’s boot mode configuration:

  • If BM driver does not implement getting boot mode, assume BM boot mode is not set and apply the logic that follows

  • If Ironic node boot mode is not set and BM node boot mode is not set - set Ironic boot mode to [deploy]/default_boot_mode

  • If Ironic node boot mode is not set and BM node boot mode is set - set BM node boot mode on the Ironic node

  • If Ironic node boot mode is set and BM node boot mode is not set - set Ironic boot mode to BM boot mode

  • If both Ironic and BM node boot modes are set but they differ - try to set Ironic boot mode to BM boot mode and fail hard if underlying hardware type does not support setting boot mode

In the end, the new boot mode may be set in ‘driver_internal_info/deploy_boot_mode’.

Parameters

task – a task object