teach the ipmitool driver about _get_ipmitool_args and use that in all
cases that we want to build an ipmitool command line. this solves
the problem that the serial console drivers were failing to honor the
ipmi_port setting in driver_info, while it was being correctly used
for power state, etc.
Change-Id: Ifbf6a92c2305567985cfbc41dbf76a076ecb8a7b
Story: 2005138
Task: 29826
The docstring contains parameter mode which is not
present. Move the param description to a comment
in code where mode is resolved.
Also fixes a typo in pxe_utils.py docstring.
Change-Id: Ic0a31612023a4985178dbb6e3078dff53f0aba0a
This parameter makes no sense for them and is actually ignored after
validation. This change makes it optional (still allowed for backward
compatibility). Also cleanly separate validation code for partition and
whole-disk images.
Change-Id: I98da7d54cc6dd158d415e83c61659badc83fbeda
Story: #2005165
Task: #29895
This patch adds the option to configure the python interpreter
that is used when deploying machines using the ansible deploy
interface.
Also set the default interpreter for tinyipa image with
ansible deploy interface to /usr/bin/python3 on devstack
and marks ironic-standalone job as voting again.
Change-Id: I8eb58fb00980c9e8946e3b3ef77611a9f5212668
Story: #2005159
Task: #29877
The ironic-standalone job is failing because the most recent IPA
image has only python3 and ansible uses python 2 as default
interpreter, resulting in a /usr/bin/python not found error.
Marking ironic-standalone non voting and removing it from the
gate until we can run ansible with python3 on remote machines.
Change-Id: I56768d7c8a577f267172de02d77e2cc2ead785ad
Extend the API with the ability to build config drives from meta_data,
network_data and user_data, where meta_data and network_data are JSON
objects, and user_data is either a JSON object, a JSON array or
raw contents as a string.
This change uses openstacksdk (which is already an indirect dependency)
for building config drives.
Change-Id: Ie1f399a4cb6d4fe5afec79341d3bccc0f81204b2
Story: #2005083
Task: #29663
Currently we fetch all nodes one by one when validating the provided
candidate_nodes. This is not overly efficient, so this change introduces
a new database API to specifically validate a list of names/uuids and
convert it to uuids. As a nice side effect, no database query is done
for identities that cannot be a valid node name or uuid.
Change-Id: I7adfe897200b1b05d9e632c68d0d3d046c06a921
Story: #2004341
This change contains two fixes for the same issue:
* Do not pass an instance of ImageRefValidationFailed as a message
to an exception constructor.
* Make sure that IronicException.__str__ always returns an str,
even when a non-string is passed as the first argument to __init__.
Change-Id: I96edb28955e64915e9d6a481634857fd27690555
Story: #2003682
Task: #26206
Adds deploy_templates REST API endpoints for retrieving, creating,
updating and deleting deployment templates. Also adds notification
objects for deploy templates.
Bumps the minimum WSME requirement to 0.9.3, since the lower constraints
job was failing with a 500 error when sending data in an unexpected
format to the POST /deploy_templates API.
Change-Id: I0e8c97e600f9b1080c8bdec790e5710e7a92d016
Story: 1722275
Task: 28677
Adds the conductor-side logic required to map an instance's requested
traits to zero or more deploy templates. The steps defined in those
deploy templates are combined and added to deployment steps from the
driver interfaces, and used when provisioning the node.
The deploy steps for a node that come from deploy templates are
validated during node validation, and when deploying a node.
Change-Id: Ic4ac7926a1eaeb8b84d4f9f1af23bbe54554f250
Story: 1722275
Task: 28675
Pip will install libvirt-python later in the process and with pip >= 10
it will fail to remove the system version.
Change-Id: I33be5426ce8ff2301d28096af11a1023b8048a15
Needed-By: https://review.openstack.org/#/c/561597
This should catch the case where the API version has been updated but
release mappings has not (or vice versa).
Change-Id: I62183d329c0efe9fe3bd47a0ca478155075b3230
This patch updates the log message for ``ilo``
drivers and extends the warning to Gen9 as well.
The proliantutils fix which added active NIC inspection
for Gen9 has been reverted back in
I02c27d820b27bd532f23ab7ef276b39f868f5205
story: #2004950
task: #29366
Change-Id: Ifbffb782c10b952bfb3498b882f07d313d410356
If a step in a deploy template is updated, changing only the step's
'args' field, then we see the following error on Python 3:
TypeError: unorderable types: dict() < dict()
In Python 3, dicts are no longer orderable, so cannot be used as part of
the key to a sort function. This change uses a JSON dump of the step
with sorted keys for comparison, as suggested in [1].
[1] https://stackoverflow.com/a/22003440
Change-Id: I70b806d5850f0678f3dd6633228947f6cd39d691
Story: 1722275
Task: 29750
Currently, any patch that changes one of the requirements files is
failing the requirements-check job, with the following error:
Requirement(package='pysendfile', location='', specifiers='>=2.0.0',
markers='', comment='# MIT', extras=frozenset()) 'markers': '' does not
match "sys_platform!='win32'"
Could not find a global requirements entry to match package {}. If the
package is already included in the global list, the name or platform
markers there may not match the local settings.
The problem is that a "sys_platform!='win32'" marker was added [1] to
the pysendfile requirement in the requirements repo, which needs to be
propagated to the requirements of all repos using the package.
This change adds the required marker to requirements.txt.
[1] https://review.openstack.org/#/c/639084/
Change-Id: Ibd7656cbcfbf204930f9c8562f79ab92bd4aefb5
Story: 2005096
Task: 29697
Ironic allows to delete nodes which are in state 'available'.
As bringing nodes into 'available' comes at an operational cost
(i.e. enroll, inspect, clean, ...), this patch proposes a new
option 'allow_deleting_available_nodes' to support the protection
of available nodes against accidental removal.
Change-Id: I08d31b5ddbad626811c971389e634a450aeaf066
Story: #2005060
Task: #29604
The original patch [1] to add DB & object support for deploy templates
did not include an 'extra' field for metadata. This patch adds the
field, and bumps the object version.
Change-Id: I95b4beae217704defc9eab851780fd9c42847c40
Story: 1722275
Task: 29698
The power states already contain the word 'power', so currently
an error reads:
"Timed out after 30 secs wating for power power off on node ..."
Change-Id: I2535c15172df475a7d08c5219c2b97690ea67a58
As per title, this patch adds default_boot_interface and
enabled_boot_interfaces references, definitions and examples
to the api-ref documentation.
Change-Id: I35d4829c32cc48d5734c269c0a83ad9b4fbdd660
The patch sets the available_nodes config option in tempest.conf
that is consumed by the ironic multitenancy tests.
Needed-By: https://review.openstack.org/639098
Change-Id: Id8087375088180174247370d129f78cc06b1d49e