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.
Bases: ironic.drivers.base.ConsoleInterface
A base ConsoleInterface that uses ipmitool.
Bases: ironic.drivers.base.ManagementInterface
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.
| 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 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. |
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. |
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. |
Bases: ironic.drivers.base.PowerInterface
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). |
Cycles the power to the task’s node.
| Parameters: | task – a TaskManager instance containing the node to act on. |
|---|---|
| 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. |
Turn the power on or 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 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. |
Bases: ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and shellinabox.
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 |
Bases: ironic.drivers.modules.ipmitool.IPMIConsole
A ConsoleInterface that uses ipmitool and socat.
Get the type and connection information about the console.
| Parameters: | task – a task from TaskManager |
|---|
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 |
Bases: ironic.drivers.base.VendorInterface
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 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 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. |