Ruby Loo 9e87cebc12 Fix handling of 'timeout' parameter to power methods
The PowerInterface methods set_power_state() and reboot() were enhanced
to take a 'timeout' parameter [1]. To handle Interfaces that didn't
support timeout, conductor.utils.node_power_action() used
reflection.get_signature() to determine whether or not the node's
PowerInterface's methods could handle a timeout parameter.

It turns out that there was a bug with the
ironic_lib.metrics.timer decorator [2], such that
reflection.get_signature() did not return the method parameters. This
means that for PowerInterfaces that had this decorator, the conductor
would incorrectly think that 'timeout' was not supported, even if it
were supported.

Instead of trying to decide whether a PowerInterface supports 'timeout',
the conductor now assumes that it does. This patch changes all in-tree
PowerInterfaces so that they accept a 'timeout' parameter for reboot()
and set_power_state().

For any out-of-tree implementations that don't accept a 'timeout'
parameter, a TypeError exception will be raised.

[1] f15d5b9a37260b3876f9dadeb030412e6e1053b2
[2] https://bugs.launchpad.net/ironic/+bug/1746730

Closes-Bug: #1746849
Change-Id: Iae28e94c34d4d69593644d0e5f4542558db9bb79
2018-02-06 08:33:45 -05:00
2018-01-30 15:50:55 +00:00
2018-01-31 13:26:53 +01:00
2018-01-29 12:55:35 +07:00
2013-05-02 14:55:43 -04:00
2013-10-28 10:19:15 +00:00
2013-07-22 09:51:10 +02:00
2017-11-21 21:02:52 +01:00
2017-08-21 17:41:52 -04:00
2013-05-02 14:55:43 -04:00
2017-08-21 17:41:52 -04:00
2018-01-25 00:11:44 +00:00
2017-03-02 11:45:27 +00:00
2018-01-26 18:27:10 +00:00
2015-08-07 09:51:32 +00:00

Team and repository tags

image

Ironic

Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.

Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Project status, bugs, and requests for feature enhancements (RFEs) are tracked on Launchpad: https://launchpad.net/ironic

For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor

Description
A service for managing and provisioning Bare Metal servers.
Readme 305 MiB
Languages
Python 98.2%
Shell 1.8%