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.
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 |
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:
|
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: |
|
---|---|
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. |
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: |
|
---|---|
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: |
|
---|---|
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. |
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 |
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 |
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: |
|
---|---|
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: |
|
---|---|
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.
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.