ironic.drivers.modules.irmc.bios module

iRMC BIOS configuration specific methods

class ironic.drivers.modules.irmc.bios.IRMCBIOS(*args, **kwargs)[source]

Bases: BIOSInterface

apply_configuration(task, settings)[source]

Applies BIOS configuration on the given node.

This method takes the BIOS settings from the settings param and applies BIOS configuration on the given node. After the BIOS configuration is done, self.cache_bios_settings() may be called to sync the node’s BIOS-related information with the BIOS configuration applied on the node. It will also validate the given settings before applying any settings and manage failures when setting an invalid BIOS config. In the case of needing password to update the BIOS config, it will be taken from the driver_info properties.

Parameters:
  • task – a TaskManager instance.

  • settings – Dictionary containing the BIOS configuration. It may be an empty dictionary as well.

Raises:

IRMCOperationError,if apply bios settings failed.

cache_bios_settings(task)[source]

Store or update BIOS settings on the given node.

This method stores BIOS properties to the bios settings db

Parameters:

task – a TaskManager instance.

Raises:

IRMCOperationError,if get bios settings failed.

Returns:

None if it is complete.

factory_reset(task)[source]

Reset BIOS configuration to factory default on the given node.

Parameters:

task – a TaskManager instance.

Raises:

UnsupportedDriverExtension, if the node’s driver doesn’t support BIOS reset.

get_properties()[source]

Return the properties of the interface.

validate(task)[source]

Validate the driver-specific Node info.

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

Parameters:

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

Raises:

InvalidParameterValue if required driver_info attribute is missing or invalid on the node.

Raises:

MissingParameterValue if a required parameter is missing in the driver_info property.