ironic.drivers.modules.irmc.management module

iRMC Management Driver

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

Bases: ironic.drivers.modules.ipmitool.IPMIManagement, ironic.drivers.modules.redfish.management.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.