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.
ironic.drivers.modules.ipmitool.
IPMIConsole
[source]¶Bases: ironic.drivers.base.ConsoleInterface
A base ConsoleInterface that uses ipmitool.
ironic.drivers.modules.ipmitool.
IPMIManagement
[source]¶Bases: ironic.drivers.base.ManagementInterface
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 required IPMI parameters are missing. | ||||
Raises: | IPMIFailure on an error from ipmitool. | ||||
Raises: | MissingParameterValue if a required parameter is missing. | ||||
Returns: | a dictionary containing:
|
get_properties
()[source]¶Return the properties of the interface.
Returns: | dictionary of <property name>:<property description> entries. |
---|
get_sensors_data
(task)[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
(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: | IPMIFailure on an error from ipmitool. |
Returns: | None |
set_boot_device
(task, device, persistent=False)[source]¶Set the boot device for the task’s node.
Set the boot device to use on next reboot of the node.
Parameters: |
|
---|---|
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
(task)[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. |
ironic.drivers.modules.ipmitool.
IPMIPower
[source]¶Bases: ironic.drivers.base.PowerInterface
get_power_state
(task)[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_properties
()[source]¶Return the properties of the interface.
Returns: | dictionary of <property name>:<property description> entries. |
---|
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
(task, timeout=None)[source]¶Cycles the power to the task’s node.
Parameters: |
|
---|---|
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
(task, power_state, timeout=None)[source]¶Turn the power on, off, soft reboot, or soft power off.
Parameters: |
|
---|---|
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
(task)[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. |
ironic.drivers.modules.ipmitool.
IPMIShellinaboxConsole
[source]¶Bases: ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and shellinabox.
start_console
(task)[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 |
ironic.drivers.modules.ipmitool.
IPMISocatConsole
[source]¶Bases: ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and socat.
get_console
(task)[source]¶Get the type and connection information about the console.
Parameters: | task – a task from TaskManager |
---|
start_console
(task)[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 |
ironic.drivers.modules.ipmitool.
VendorPassthru
[source]¶Bases: ironic.drivers.base.VendorInterface
bmc_reset
(task, http_method, warm=True)[source]¶Reset BMC with IPMI command ‘bmc reset (warm|cold)’.
Parameters: |
|
---|---|
Raises: | IPMIFailure on an error from ipmitool. |
Raises: | MissingParameterValue if a required parameter is missing. |
Raises: | InvalidParameterValue when an invalid value is specified |
get_properties
()[source]¶Return the properties of the interface.
Returns: | dictionary of <property name>:<property description> entries. |
---|
send_raw
(task, http_method, raw_bytes)[source]¶Send raw bytes to the BMC. Bytes should be a string of bytes.
Parameters: |
|
---|---|
Raises: | IPMIFailure on an error from ipmitool. |
Raises: | MissingParameterValue if a required parameter is missing. |
Raises: | InvalidParameterValue when an invalid value is specified. |
validate
(task, method, **kwargs)[source]¶Validate vendor-specific actions.
If invalid, raises an exception; otherwise returns None.
Parameters: |
|
---|---|
Raises: | InvalidParameterValue when an invalid parameter value is specified. |
Raises: | MissingParameterValue if a required parameter is missing. |
ironic.drivers.modules.ipmitool.
dump_sdr
(task, file_path)[source]¶Dump SDR data to a file.
Parameters: |
|
---|---|
Raises: | IPMIFailure on an error from ipmitool. |
Raises: | MissingParameterValue if a required parameter is missing. |
Raises: | InvalidParameterValue when an invalid value is specified. |
ironic.drivers.modules.ipmitool.
send_raw
(task, raw_bytes)[source]¶Send raw bytes to the BMC. Bytes should be a string of bytes.
Parameters: |
|
---|---|
Returns: | a tuple with stdout and stderr. |
Raises: | IPMIFailure on an error from ipmitool. |
Raises: | MissingParameterValue if a required parameter is missing. |
Raises: | InvalidParameterValue when an invalid value is specified. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.