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.
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(*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:
|
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: |
|
|---|---|
| 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. |
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: |
|
|---|---|
| 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: |
|
|---|---|
| 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. |
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 |
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 |
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: |
|
|---|---|
| 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: |
|
|---|---|
| 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.
| Parameters: |
|
|---|---|
| Raises: | InvalidParameterValue when an invalid parameter value is specified. |
| Raises: | MissingParameterValue if a required parameter is missing. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.