ironic.drivers.modules.ipmitool module

ironic.drivers.modules.ipmitool module

IPMI power manager driver.

Uses the ‘ipmitool’ command (http://ipmitool.sourceforge.net/) to remotely manage hardware. This includes setting the boot device, getting a serial-over-LAN console, and controlling the power state of the machine.

NOTE THAT CERTAIN DISTROS MAY INSTALL openipmi BY DEFAULT, INSTEAD OF ipmitool, WHICH PROVIDES DIFFERENT COMMAND-LINE OPTIONS AND IS NOT SUPPORTED BY THIS DRIVER.

service None

Bases: ironic.drivers.base.ConsoleInterface

A base ConsoleInterface that uses ipmitool.

IPMIConsole.get_properties()

Return the properties of the interface.

Returns:dictionary of <property name>:<property description> entries.
IPMIConsole.validate(task)

Validate the Node console info.

Parameters:task – a task from TaskManager.
Raises:InvalidParameterValue
Raises:MissingParameterValue when a required parameter is missing
service None

Bases: ironic.drivers.base.ManagementInterface

IPMIManagement.get_boot_device(task)

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 required IPMI parameters are missing.
Raises:IPMIFailure on an error from ipmitool.
Raises:MissingParameterValue if a required parameter is missing.
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.
IPMIManagement.get_properties()

Return the properties of the interface.

Returns:dictionary of <property name>:<property description> entries.
IPMIManagement.get_sensors_data(task)

Get sensors data.

Parameters:task – a TaskManager instance.
Raises:FailedToGetSensorData when getting the sensor data fails.
Raises:FailedToParseSensorData when parsing sensor data fails.
Raises:InvalidParameterValue if required ipmi parameters are missing
Raises:MissingParameterValue if a required parameter is missing.
Returns:returns a dict of sensor data group by sensor type.
IPMIManagement.get_supported_boot_devices(task)

Get a list of the supported boot devices.

Parameters:task – a task from TaskManager.
Returns:A list with the supported boot devices defined in ironic.common.boot_devices.
IPMIManagement.inject_nmi(task)

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:IPMIFailure on an error from ipmitool.
Returns:None
IPMIManagement.set_boot_device(task, device, persistent=False)

Set the boot device for the task’s 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 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 required ipmi parameters are missing.

Raises:

IPMIFailure on an error from ipmitool.

IPMIManagement.validate(task)

Check that ‘driver_info’ contains IPMI credentials.

Validates whether the ‘driver_info’ property of the supplied task’s node contains the required credentials information.

Parameters:task – a task from TaskManager.
Raises:InvalidParameterValue if required IPMI parameters are missing.
Raises:MissingParameterValue if a required parameter is missing.
service None

Bases: ironic.drivers.base.PowerInterface

IPMIPower.get_power_state(task)

Get the current power state of the task’s node.

Parameters:task – a TaskManager instance containing the node to act on.
Returns:one of ironic.common.states POWER_OFF, POWER_ON or ERROR.
Raises:InvalidParameterValue if required ipmi parameters are missing.
Raises:MissingParameterValue if a required parameter is missing.
Raises:IPMIFailure on an error from ipmitool (from _power_status call).
IPMIPower.get_properties()

Return the properties of the interface.

Returns:dictionary of <property name>:<property description> entries.
IPMIPower.get_supported_power_states(task)

Get a list of the supported power states.

Parameters:task – A TaskManager instance containing the node to act on. currently not used.
Returns:A list with the supported power states defined in ironic.common.states.
IPMIPower.reboot(task, timeout=None)

Cycles the power to the task’s node.

Parameters:
  • task – a TaskManager instance containing the node to act on.
  • timeout – timeout (in seconds) positive integer (> 0) for any power state. The timeout is counted once during power off and once during power on for reboots. None indicates that the default timeout will be used.
Raises:

MissingParameterValue if required ipmi parameters are missing.

Raises:

InvalidParameterValue if an invalid power state was specified.

Raises:

PowerStateFailure if the final state of the node is not POWER_ON or the intermediate state of the node is not POWER_OFF.

IPMIPower.set_power_state(task, power_state, timeout=None)

Turn the power on, off, soft reboot, or soft power off.

Parameters:
  • task – a TaskManager instance containing the node to act on.
  • power_state – desired power state. one of ironic.common.states, POWER_ON, POWER_OFF, SOFT_POWER_OFF, or SOFT_REBOOT.
  • timeout – timeout (in seconds) positive integer (> 0) for any power state. The timeout is counted once during power off and once during power on for reboots. None indicates that the default timeout will be used.
Raises:

InvalidParameterValue if an invalid power state was specified.

Raises:

MissingParameterValue if required ipmi parameters are missing

Raises:

PowerStateFailure if the power couldn’t be set to pstate.

IPMIPower.validate(task)

Validate driver_info for ipmitool driver.

Check that node[‘driver_info’] contains IPMI credentials.

Parameters:task – a TaskManager instance containing the node to act on.
Raises:InvalidParameterValue if required ipmi parameters are missing.
Raises:MissingParameterValue if a required parameter is missing.
service None

Bases: ironic.drivers.modules.ipmitool.IPMIConsole

A ConsoleInterface that uses ipmitool and shellinabox.

IPMIShellinaboxConsole.get_console(task)

Get the type and connection information about the console.

IPMIShellinaboxConsole.start_console(task)

Start a remote console for the node.

Parameters:task – a task from TaskManager
Raises:InvalidParameterValue if required ipmi parameters are missing
Raises:PasswordFileFailedToCreate if unable to create a file containing the password
Raises:ConsoleError if the directory for the PID file cannot be created
Raises:ConsoleSubprocessFailed when invoking the subprocess failed
IPMIShellinaboxConsole.stop_console(task)

Stop the remote console session for the node.

Parameters:task – a task from TaskManager
Raises:ConsoleError if unable to stop the console
service None

Bases: ironic.drivers.modules.ipmitool.IPMIConsole

A ConsoleInterface that uses ipmitool and socat.

IPMISocatConsole.get_console(task)

Get the type and connection information about the console.

Parameters:task – a task from TaskManager
IPMISocatConsole.start_console(task)

Start a remote console for the node.

Parameters:task – a task from TaskManager
Raises:InvalidParameterValue if required ipmi parameters are missing
Raises:PasswordFileFailedToCreate if unable to create a file containing the password
Raises:ConsoleError if the directory for the PID file cannot be created
Raises:ConsoleSubprocessFailed when invoking the subprocess failed
IPMISocatConsole.stop_console(task)

Stop the remote console session for the node.

Parameters:task – a task from TaskManager
Raises:ConsoleError if unable to stop the console
service None

Bases: ironic.drivers.base.VendorInterface

VendorPassthru.bmc_reset(task, http_method, warm=True)[source]

Reset BMC with IPMI command ‘bmc reset (warm|cold)’.

Parameters:
  • task – a TaskManager instance.
  • http_method – the HTTP method used on the request.
  • warm – boolean parameter to decide on warm or cold reset.
Raises:

IPMIFailure on an error from ipmitool.

Raises:

MissingParameterValue if a required parameter is missing.

Raises:

InvalidParameterValue when an invalid value is specified

VendorPassthru.get_properties()[source]

Return the properties of the interface.

Returns:dictionary of <property name>:<property description> entries.
VendorPassthru.send_raw(task, http_method, raw_bytes)[source]

Send raw bytes to the BMC. Bytes should be a string of bytes.

Parameters:
  • task – a TaskManager instance.
  • http_method – the HTTP method used on the request.
  • raw_bytes – a string of raw bytes to send, e.g. ‘0x00 0x01’
Raises:

IPMIFailure on an error from ipmitool.

Raises:

MissingParameterValue if a required parameter is missing.

Raises:

InvalidParameterValue when an invalid value is specified.

VendorPassthru.validate(task, method, **kwargs)[source]

Validate vendor-specific actions.

If invalid, raises an exception; otherwise returns None.

Valid methods:
  • send_raw
  • bmc_reset
Parameters:
  • task – a task from TaskManager.
  • method – method to be validated
  • kwargs – info for action.
Raises:

InvalidParameterValue when an invalid parameter value is specified.

Raises:

MissingParameterValue if a required parameter is missing.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.