In some cases the current conductor may have failed to updated
the heartbeat timestamp due to failure of resource starvation.
When this occurs the dbapi get_offline_conductors method will
include the current conductor in its return value.
In this scenario the conductor may end up forcefully remove
node reservations or allocations from itself, triggering takeover
which fail on-going operations.
This change adds a wrapper to exclude the current conductor.
The wrapper will log a warning to raise the issue.
Related-Bug: #1970484
Stroy: 2010016
Task: 45204
Change-Id: I6a8f38934b475f792433be6f0882540b82ca26c1
So... We can't do this in a single patch, and we *actually*
need to merge the vxlan fix before the subnode will ever pickup
the configuration
From the logs, I can observe the vxlan tunnel connects between
the nodes. Awesome.
Where things break is in the local setup of the local bridges
used to wire everything together.
setup_vxlan_network:3274 : sudo ovs-vsctl add-port sub1brbm phy-brbm-infra
ovs-vsctl: Error detected while setting up 'phy-brbm-infra':
could not open network device phy-brbm-infra (No such device).
See ovs-vswitchd log for details.
Basically, with the same change on a separate patch, we're able to
observe the controller node work perfectly. It is the subnode
connectivity which is just broken.
So, activate the bridge interfaces seems ideal. This likely broke
at some point due to behavior changes in OpenVSwitch.
Change-Id: I11dbba1957d67187d859a1ef60563c0301da9812
When using the node managed by the `irmc` hardware type,
if the port number of the bmc address is manually specified,
the following error will occur when configuring raid:
```
%d format: a number is required, not str
```
Change raid to call parse_driver_info to get irmc_info,
so that irmc-port can be converted to int type to avoid this error.
Story: #2010009
Task: #45151
Signed-off-by: Zhou Hao <zhouhao@fujitsu.com>
Change-Id: I35e0aa2a5e612e6e45c9489153dbb3ff3e500a66
It may be convenient to use [pxe/redfish/...]kernel_append_params as
the universal defaults, while using {driver,instance}_info to only
append values. This change allows that by replacing %default% with
the value of the applicable configuration option.
An example use case: CoreOS requires an additional artifact (root
filesystem URL) when PXE booting.
While here, fix the PXE/iPXE interface documentation.
Change-Id: I829291ab5cc19ec2ca43bc45815d012697f0b408
When adding an image to glance for use with anaconda deploy
interface, the tarball being added should be in the 'bare'
container-format, not 'compressed'.
Change-Id: Iaf976a4c9e04b9a19acd7e2701fb422009b02d0e
Grenade, for some confusing reason, creates a separate network,
and uses that for upgrade testing as opposed to the original network
the VMs were bound to. If Julia's memory is correct, this was for
multinode upgrade testing.
Anyway, When in UEFI mode, it appears that the TFTP packets
don't get tracked nor cross the boundrary. We likley need to
explicitly address this, but first, lets get the job working as
it was and can then update it.
Also, update requirements because markupsafe removed soft_unicode
method taht was deprecated since a while. Jinja2 started using the
new soft_str method since version 3.0.0
Change-Id: Iaebe966569962b0d3d43774d57b570469479f159
Add file to the reno documentation build to show release notes for
stable/yoga.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.
Sem-Ver: feature
Change-Id: I371614afe321758536d7840207c34329f9cba1c5
This is a pre-release commit for the Yoga release following our docs [1]
* No API additions during this cycle (no need to update
doc/source/contributor/webapi-version-history.rst)
* Add prelude releasenote
* Fix highlight in one releasenote
[1] https://docs.openstack.org/ironic/latest/contributor/releasing.html
Change-Id: If26019c5abc0643051f4b11186d7eb819f9c407b
This is an advanced feature, so keep it with other advanced features,
but do link from the deploy interface listing.
Change-Id: If8a3cd4c8eca670be89d5cc1ce4a8bb788e546da
Create a new Sphinx extension called 'web_api_docstring' to process
docstrings from the API classes, in order to generate API
documentation.
Story: 2009785
Task: 44291
Change-Id: Ia6b2b3741e2b1cbd29531c21795df4f0f0dc70ca
documentation
Change https://review.opendev.org/c/openstack/ironic-python-agent/+/818712
improved efficiency of storage cleaning in hybrid NVMe + HDD
environments by adding `erase_devices_express` clean step. This is a
follow up change adding the documentation for this feature.
Story: 2009264
Task: 43498
Change-Id: I33ba925460cc31cc69e58f3e3ff31a0731aee1dc
Use pycdlib to extract the content of the deploy iso to get efiboot
and grub config.
Story: 2009704
Task: 44033
Change-Id: I62cdf2a09bc4233056799b64b7fdb87ad21b5bbd
Bandit's B509 (SNMPv3 no authentication/privacy) check is
triggered by our line wrapping, as the check looks at the
number of arguments, and triggers if it only parses 3 arguments.
In Ironic's case, we pass five arguments. Presumably, this is due
to the line wrapping. Ultimately this bandit check is very new
having only been added with in the last few months.
Change-Id: Idaee72a53a1f33bcab940c6ebe1e7c113a1cb1ce
The anaconda deploy interface was saving internal information in
the node's instance_info, in the user-facing 'stage2' and
'ks_template' fields. This broke rebuilds using a different image
with different stage2 or template specified in the image properties.
This has been fixed by saving the information in the node's
driver_internal_info instead.
Addresses comments/nits from
https://review.opendev.org/c/openstack/ironic/+/827924.
Change-Id: Id9428518d21290fb38a0f7471a2cb69a6cb3ffb2
The anaconda deploy interface wasn't handling configdrive
correctly. This fixes:
- the code was incorrectly treating the config drive as a dict,
whereas it could also be in iso6600 format,
gzipped and base64-encoded. It is handled properly now.
- kickstart commands that deal with the config drive were added
to the end of the kickstart file. Which means that they are
executed after an ironic API request is sent to ironic to
indicate that the node has been provisioned and is ready
to be rebooted. Which means that there is a possible race
condition wrt these commands being completed before the node
is powered off. This has been fixed by putting the API request
at the end of the kickstart file. Also, a sync was added to
ensure that all modifications are written to disk.
- extra newlines ('\n') were incorrectly added to the user data content.
This broke the content-type decoding and cloud-init was unable to
proces them. The extra newlines have been removed.
Change-Id: If00342a1bfa3e87b2094061b0e2b0b69de3a8a4f
The proliantutils version needed is updated to 2.13.0
When running tests with older versions we get the error:
AttributeError: None does not have the attribute 'IloClient'
Change-Id: I6ab0672679c9d929c1e7c43a5966e6ad1e5353c0
Co-Authored-By: Thomas Goirand <thomas@goirand.fr>
This commit fixes incorrect code in commit
c3805b2bea404cf6b831a3262e2602db72324616
There are 2 problems:
1) typo in FAT filesystem label
2) failure of running mcopy
1) typo in FAT filesystem label
Above mentioned commit misspells VFAT label as ``ir-vfd-de``
but it should have been ``ir-vfd-dev``
2) failure of running mcopy
Till this commit, create_vfat_image function fails because it
executes ``mcopy -s <tmp_dir>/*`` but it doesn't expand
``<tmp_dir>/*`` to list of file paths under ``<tmp_dir>``.
This commit modifies create_vfat_image function to explicitly
pass all file paths to mcopy.
Change-Id: I81617fcf1978f19db8d3ce4ca19341ccd51761bf
Story: 2009807
Task: 44366