The 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.
-
class
ironic.drivers.modules.ipmitool.
IPMIConsole
[source]¶ Bases:
ironic.drivers.base.ConsoleInterface
A base ConsoleInterface that uses ipmitool.
-
class
ironic.drivers.modules.ipmitool.
IPMIManagement
[source]¶ Bases:
ironic.drivers.base.ManagementInterface
-
get_boot_device
(*args, **kwargs)[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 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.
-
get_sensors_data
(*args, **kwargs)[source]¶ 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.
-
get_supported_boot_devices
(task)[source]¶ 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
.
-
inject_nmi
(*args, **kwargs)[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: IPMIFailure on an error from ipmitool. Returns: None
-
set_boot_device
(*args, **kwargs)[source]¶ 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.
-
validate
(*args, **kwargs)[source]¶ 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.
-
-
class
ironic.drivers.modules.ipmitool.
IPMIPower
[source]¶ Bases:
ironic.drivers.base.PowerInterface
-
get_power_state
(*args, **kwargs)[source]¶ 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).
-
get_supported_power_states
(task)[source]¶ 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
.
-
reboot
(*args, **kwargs)[source]¶ 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.
-
set_power_state
(*args, **kwargs)[source]¶ 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.
-
validate
(*args, **kwargs)[source]¶ 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.
-
-
class
ironic.drivers.modules.ipmitool.
IPMIShellinaboxConsole
[source]¶ Bases:
ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and shellinabox.
-
start_console
(*args, **kwargs)[source]¶ 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
-
-
class
ironic.drivers.modules.ipmitool.
IPMISocatConsole
[source]¶ Bases:
ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and socat.
-
get_console
(*args, **kwargs)[source]¶ Get the type and connection information about the console.
Parameters: task – a task from TaskManager
-
start_console
(*args, **kwargs)[source]¶ 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
-
-
class
ironic.drivers.modules.ipmitool.
VendorPassthru
[source]¶ Bases:
ironic.drivers.base.VendorInterface
-
bmc_reset
(*args, **kwargs)[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
-
send_raw
(*args, **kwargs)[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.
-
validate
(*args, **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.
-