ironic.drivers.modules.irmc.management module

iRMC Management Driver

class ironic.drivers.modules.irmc.management.IRMCManagement(*args, **kwargs)[source]

Bases: IPMIManagement, RedfishManagement

detect_vendor(task)[source]

Detects and returns the hardware vendor.

Parameters:

task – A task from TaskManager.

Raises:

InvalidParameterValue if a required parameter is missing

Raises:

MissingParameterValue if a required parameter is missing

Raises:

RedfishError on Redfish operation error.

Raises:

PasswordFileFailedToCreate from creating or writing to the temporary file during IPMI operation.

Raises:

processutils.ProcessExecutionError from executing ipmi command

Returns:

String representing the BMC reported Vendor or Manufacturer, otherwise returns None.

get_boot_device(task)[source]

Get the current boot device for the task’s node.

Returns the current boot device of the node.

Parameters:

task – a task from TaskManager.

Raises:

InvalidParameterValue if an invalid boot device is specified.

Raises:

MissingParameterValue if a required parameter is missing.

Raises:

IPMIFailure on an error from ipmitool.

Raises:

RedfishConnectionError on Redfish operation failure.

Raises:

RedfishError on Redfish operation failure.

Returns:

a dictionary containing:

boot_device:

the boot device, one of ironic.common.boot_devices or None if it is unknown.

persistent:

Whether the boot device will persist to all future boots or not, None if it is unknown.

get_boot_mode(task)[source]

Get the current boot mode for a node.

IRMCManagement class doesn’t support this method

Parameters:

task – a task from TaskManager.

Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

get_indicator_state(task, component, indicator)[source]

Get current state of the indicator of the hardware component.

IRMCManagement class doesn’t support this method

Parameters:
  • task – A task from TaskManager.

  • component – The hardware component, one of ironic.common.components.

  • indicator – Indicator ID (as reported by get_supported_indicators).

Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

get_mac_addresses(task)[source]

Get MAC address information for the node.

IRMCManagement class doesn’t support this method

Parameters:

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

Raises:

UnsupportedDriverExtension

get_properties()[source]

Return the properties of the interface.

Returns:

Dictionary of <property name>:<property description> entries.

get_secure_boot_state(task)[source]

Get the current secure boot state for the node.

NOTE: Not all drivers support this method. Older hardware

may not implement that.

Parameters:

task – A task from TaskManager.

Raises:

MissingParameterValue if a required parameter is missing

Raises:

DriverOperationError or its derivative in case of driver runtime error.

Raises:

UnsupportedDriverExtension if secure boot is not supported by the driver or the hardware

Returns:

Boolean

get_sensors_data(task)[source]

Get sensors data method.

It gets sensor data from the task’s node via SCCI, and convert the data from XML to the dict format.

Parameters:

task – A TaskManager instance.

Raises:

FailedToGetSensorData when getting the sensor data fails.

Raises:

FailedToParseSensorData when parsing sensor data fails.

Raises:

InvalidParameterValue if required parameters are invalid.

Raises:

MissingParameterValue if a required parameter is missing.

Returns:

Returns a consistent formatted dict of sensor data grouped by sensor type, which can be processed by Ceilometer. Example:

{
  'Sensor Type 1': {
    'Sensor ID 1': {
      'Sensor Reading': 'Value1 Units1',
      'Sensor ID': 'Sensor ID 1',
      'Units': 'Units1'
    },
    'Sensor ID 2': {
      'Sensor Reading': 'Value2 Units2',
      'Sensor ID': 'Sensor ID 2',
      'Units': 'Units2'
    }
  },
  'Sensor Type 2': {
    'Sensor ID 3': {
      'Sensor Reading': 'Value3 Units3',
      'Sensor ID': 'Sensor ID 3',
      'Units': 'Units3'
    },
    'Sensor ID 4': {
      'Sensor Reading': 'Value4 Units4',
      'Sensor ID': 'Sensor ID 4',
      'Units': 'Units4'
    }
  }
}

get_supported_boot_devices(task)[source]

Get list of supported boot devices

Actual code is delegated to IPMIManagement or RedfishManagement based on iRMC firmware version.

Parameters:

task – A TaskManager instance

Returns:

A list with the supported boot devices defined in ironic.common.boot_devices.

get_supported_boot_modes(task)[source]

Get a list of the supported boot modes.

IRMCManagement class doesn’t support this method

Parameters:

task – a task from TaskManager.

Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

get_supported_indicators(task, component=None)[source]

Get a map of the supported indicators (e.g. LEDs).

IRMCManagement class doesn’t support this method

Parameters:
  • task – a task from TaskManager.

  • component – If not None, return indicator information for just this component, otherwise return indicators for all existing components.

Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

inject_nmi(task)[source]

Inject NMI, Non Maskable Interrupt.

Inject NMI (Non Maskable Interrupt) for a node immediately.

Parameters:

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

Raises:

IRMCOperationError on an error from SCCI

Returns:

None

restore_irmc_bios_config(task)[source]

Restore BIOS config for a node.

Parameters:

task – a task from TaskManager.

Raises:

NodeCleaningFailure, on failure to execute step.

Returns:

None.

set_boot_device(task, device, persistent=False)[source]

Set the boot device for a node.

Set the boot device to use on next reboot of the node.

Parameters:
  • task – A task from TaskManager.

  • device – The boot device, one of the supported devices listed in ironic.common.boot_devices.

  • persistent – Boolean value. True if the boot device will persist to all future boots, False if not. Default: False.

Raises:

InvalidParameterValue if an invalid boot device is specified.

Raises:

MissingParameterValue if a required parameter is missing.

Raises:

IPMIFailure on an error from ipmitool.

Raises:

RedfishConnectionError on Redfish operation failure.

Raises:

RedfishError on Redfish operation failure.

set_boot_mode(task, mode)[source]

Set the boot mode for a node.

IRMCManagement class doesn’t support this method

Parameters:
Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

set_indicator_state(task, component, indicator, state)[source]

Set indicator on the hardware component to the desired state.

IRMCManagement class doesn’t support this method

Parameters:
  • task – A task from TaskManager.

  • component – The hardware component, one of ironic.common.components.

  • indicator – Indicator ID (as reported by get_supported_indicators).

State:

Desired state of the indicator, one of ironic.common.indicator_states.

Raises:

UnsupportedDriverExtension if requested operation is not supported by the driver

set_secure_boot_state(task, state)[source]

Set the current secure boot state for the node.

NOTE: Not all drivers support this method. Older hardware

may not implement that.

Parameters:
  • task – A task from TaskManager.

  • state – A new state as a boolean.

Raises:

MissingParameterValue if a required parameter is missing

Raises:

DriverOperationError or its derivative in case of driver runtime error.

Raises:

UnsupportedDriverExtension if secure boot is not supported by the driver or the hardware

validate(task)[source]

Validate the driver-specific management information.

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

Parameters:

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

Raises:

InvalidParameterValue if required parameters are invalid.

Raises:

MissingParameterValue if a required parameter is missing.

verify_http_https_connection_and_fw_version(task)[source]

Check http(s) connection to iRMC and save fw version

:param task’ A task from TaskManager ‘raises: IRMCOperationError

ironic.drivers.modules.irmc.management.backup_bios_config(task)[source]

Backup BIOS config from a node.

Parameters:

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

Raises:

IRMCOperationError on failure.