| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Set the new ManagementInterface to the IPMINative driver. As the only
vendor method of the IPMINative driver was the set_boot_device, the
vendor interface is not needed anymore and was removed.
Also, before the 'persistent' parameter of the _set_boot_device() method
was ignored, this patch is fixing it.
Implements: blueprint new-management-interface
Change-Id: I4f3d13f1e0bebda011b3bfbb71ecd7507ca44c39
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Import fixes from the Nova driver review, based upon revision 7
of https://review.openstack.org/#/c/103167/
- better use of _L* helpers
- dynamically import python-ironicclient when the driver is initialized,
so that Nova does not need to add it to requirements.txt
- remove unused CONF options pxe_bootfile_name
and instance_type_extra_specs
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Change-Id: Iee1481632e9927766776c7d35264e8cf4c469c8a
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch is fixing the problem of leaving the nodes in an inconsistent
state if there's no free conductor workers available to deploy or the
tear down a node, the patch is using the set_spawn_error_hook() method
of TaskManager to run some custom code that will rollback the nodes
to the previous provision_state and target_provision_state in case
NoFreeConductorWorker is raised.
Closes-Bug: #1331494
Change-Id: I5d6e8e2c69cbdf1f9abe169afe617aa79783e57d
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The latest oslo.db code wraps all sqlalchemy exceptions and re-raise
them as oslo.db exceptions. But there is a single case in Ironic when
we suppose to get sqlalchemy exception, so this will break unittest,
when the new version of oslo.db will come.
Added check for the new oslo.db exception, left the old check for the
compatibility.
Closes-Bug: #1214341
Change-Id: Iae5599948d29778ac416edf31d3b1b2f7a8a54a9
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implement GET /v1/drivers/<driver>/properties that returns a
dictionary of (driver_info) properties of the specified driver.
Each entry in the dictionary is:
key: name of the property
value: description of the property
An invalid driver name results in an HTTP 404.
Eg: 'GET /v1/drivers/pxe_ipminative/properties' returns:
{"pxe_deploy_ramdisk": "UUID ... of the ramdisk... Required.",
"ipmi_username": "IPMI username. Required.",
"ipmi_address": "IP of the node's BMC. Required.",
"ipmi_password": "IPMI password. Required.",
"pxe_deploy_kernel": "UUID ... of the deployment kernel. Required."
}
If the properties for a driver are not cached, the API service makes
an RPC request to a conductor to get the properties for that driver.
It then caches that information for subsequent requests of that driver.
Change-Id: I9c98f4369c54a7cdf9e20ea87348e61f7af10303
Blueprint: get-required-driver-info
Partial-Bug: #1261915
|
|\ \ \ \ |
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some very trivial pep8 fixes need to go back into the ironic tree
in case of future round-trip revisions. This patch just backports
then so they won't be forgotten.
Change-Id: I6142c5fa9d06462c1cda863b0d32ced6f06ac66a
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We need to ensure nodes get unprovisioned and disassociated from instances upon
all failure cases, not only the specific exceptions being caught now. This
removes the catching of those specific exceptions during instance spawn and
performs required cleanup and re-raising.
Change-Id: I9461139400d7aa0a339550cf89f3d49e3a8cb2c0
|
|\ \ \ \
| | |/ /
| |/| | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adds ironic.drivers.base.BaseDriver.get_properties() which returns a
dictionary of <property>:<description> entries.
The driver interfaces (DeployInterface, PowerInterface, ...) have a
new get_properties() method that returns a dictionary of
<property>:<description>.
These changes are needed in order to provide an API to get driver_info
properties.
Change-Id: I5994e990deb26841633ca26de1a5fb63b743271a
Blueprint: get-required-driver-info
Partial-Bug: #1261915
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This adds the capability to retry node locking when a node is already
locked. Two conductor configuration variables are added to control this
behavior, which can be totally disabled by setting the value for the
node_locked_retry_attempts variable to zero.
A new unit test is added to check that the retry will work after first
getting a NodeLocked exception, then succeeding getting the lock on the
next lock attempt.
Change-Id: I60b099beea1bc3a954a5ab4699e623aaa71ba6c5
Blueprint: add-nodelocked-retry
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the two commands in this file doesn't need to
be executed as root, so this file can be removed
Closes-Bug: #1248422
Change-Id: I8a3b8b221a260a3a04ba8bbea59c60ed2fc1c8f8
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add the new ManagementInterface to the SeaMicro driver promoting the
set_boot_device() method from the VendorPassthru to the new interface.
The test_set_boot_device_no_input() test was removed because now inputting
a device is part of the function declaration.
Implements: blueprint new-management-interface
Change-Id: I2c5d0bba9045ce27c6b81ddefb6ca6bb019f2991
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ie6300fae8c84bd25684a34001082423bef9c655a
|
|\ \ \ \ |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The functions in the common/tftp.py are not related to TFTP, the
functions are PXE related and most of them are used to generate the
PXE configuration file. Moving it from tftp.py to pxe_utils.py will make
it less confusing and is also needed by the iPXE work since iPXE doesn't
generate any configuration file under the TFTP folder.
The dhcp_options_for_instance() method was updated to not receive the PXE
boot file image from the parameters and just get it from the configuration
because we were always using the value from the configuration anyway.
Implements: blueprint ipxe-boot
Change-Id: Icfbaa4d6cdb9cbe0c392bf3dbd50ad980c70560c
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Import fixes from the Nova scheduler driver review, based upon
revision 4 of https://review.openstack.org/#/c/103165
- create BaseBaremetalHostManager class
- import and refactor the BaremetalHostManager
- refactor IronicHostManager
- minor updates to ExactMatch filters
Note that this change also adds back in copyright notices from
baremetal_host_manager to the ironic_host_manager to reflect
the common heritage of the code.
Change-Id: Iab0d0f1c05474bf341828a2e5aba95715bf71d82
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add the new ManagementInterface to the IPMITool driver. The method
set_boot_device was removed from the VendorPassthru interface because
this method was promoved to the ManagementInterface.
Implements: blueprint new-management-interface
Change-Id: I7bd9cb0a5d38f1044ae3e74dd08564e20828933b
|
|\ \ \ \
| |_|/ /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Refactored migration tests due to use OpportunisticTestCase, removed
unused code and ``test_migrations.conf`` file.
This change allows tests use database ``openstack_citest`` only
for connection to the database backend. The main feature of this
approach is - for each migration test will be created new database
with random name. This will avoid migration tests of race conditions
and reduce tests intersection.
``test_migrations.conf`` file was removed, because we create test
database for migration test, so we no longer need test database credentials.
Closes-Bug: #1327397
Closes-Bug: #1328997
Change-Id: I95ad140ba5f483cd3dc36e2b78f140826d57624f
|
|\ \ \ \
| |/ / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
oslo.db library has been graduated from oslo-incubator,
so now we can use it instead of ironic.openstack.common.db.* code.
Co-Authored-By: Ghe Rivero <ghe.rivero@hp.com>
Implements: blueprint oslo.db
Change-Id: I250050a7dbd8735ba3af954223b54eabae793f59
|
|\ \ \ \ |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This factors the code to get the deploy kernel and ramdisk info out
of the PXE driver, as this can be shared between the PXE and agent
drivers.
Change-Id: I2c3722d091f02259aa9e6cabebaabf25eead8bc2
(cherry picked from commit 8368bf9c66eea3a5f4706c867e266e00a5886213)
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
One of the ilo unit tests makes a call to Mock.assert_once_called_with().
That doesn't exist. It should be Mock.assert_called_once_with().
Change-Id: I7b57483479ddcd5ae00122064f8d4a133e922ae7
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The ipmitool.VendorPassthru class was missing docstrings for
the methods validate and vendor_passthru. This adds them.
Change-Id: I06d6f32a156da625ec5c47a39f2506d129e1a7b1
|
|\ \ \ \
| |/ / /
|/| | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch introduces NodeAlreadyExists, ChassisAlreadyExists,
PortAlreadyExists and InstanceAssociated exceptions for
appropriate cases.
Partial-Bug: #1277555
Change-Id: Iec2a7cd09022b6a12afacec9b9b51f8197817ded
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add a new ironic driver for managing HP Proliant Gen8 servers
using iLO4. This commit introduces the power module for
IloDriver.
Implements: blueprint ironic-ilo-power-driver
Change-Id: I8d521f67fb14a6132626782b05cd490cd42ba476
Co-Authors: Anusha Ramineni<anusha.iiitm@gmail.com>
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit adds two methods to the vendor interface for the
ipmitool driver:
* send_raw: this is used to send arbitrary bytes to a BMC. One
example of a use case for this is: many BMCs fail in strange ways
when 'chassis bootdev disk' is sent without first sending a
certain sequence of bytes. This is common enough that pyghmi
even does this by default. Takes one parameter, 'raw_bytes',
which is the string representation of which bytes should be
sent. For example: '0x00 0x01'.
* bmc_reset: used to reset a BMC. A cold or warm reset can be
selected by setting the warm parameter to False (cold) or True
(warm). Defaults to warm.
Closes-Bug: 1340199
Change-Id: I508eabae7428daea29d749bb2aa9fc9c5a357e8c
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Switch ironic to use oslo.i18n. A new i18n module has been
added under ironic with translation globals and imports the
necessary functions from oslo.i18n.
gettextutils module is still needed in the nova ironic driver.
Change-Id: I682228e158132c628166e4d1e334c4003249d112
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's common for drivers to be able to set the boot device only for the
next boot (that's the default behavior for the IPMITool for example)
but it's also possible to set a boot device as persistent so that the
configuration will persist across multiple boots. This patch is making
the 'persistent' parameter to be part of the method signature of the
set_boot_device() method and also making the get_boot_device() method
to return whether the device is set as persistent or not as part of
the response.
Implements: blueprint new-management-interface
Change-Id: Ia1f9c5449612871a379377d11fb0fe91b0958026
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
Import a few fixes based on comments on rev 4 of
https://review.openstack.org/#/c/103167/
Change-Id: Ic7f6b54e9b4b94b4cb3108dd7d4ea808a99fa382
|
|\ \ \ |
|