At the beginning of introspection, ironic inspector sets boot device and
reboot node through ironic, currently it only stops when reboot the node
is failed. Actually the node is not guaranteed to reboot with pxe in either
This patch eliminates the descripency, so that if anything goes wrong, it
will be exposed early.
According to Openstack summit session  stestr is maintained project
to which all Openstack projects should migrate.
Let's switch it then.
Also adjust requirements to pass the gate.
Signed-off-by: Chuck Short <email@example.com>
As Flask version was updated we need to update our own requirements.txt
to avoid reqirements-check job to fail on every patch that changes
anything related to requirements.
Signed-off-by: Chuck Short <firstname.lastname@example.org>
This changes the dnsmasq PXE filter so that it keeps
macs that are no longer in ironic blacklisted unless
introspection is active or node_not_found_hook is set.
Replacing the previous behaviour that would
exclusively whitelist macs that are no longer in
Adds a new node field "manage_boot" to store this value. When it is set
to False, neither boot device nor power state are touched for this node.
Instead, we expect a 3rd party to handle them.
We still manage the PXE filter because the node may need DHCP.
In commit 02ece7fc9f hacking
was capped at version 1.1.0 to fix gate issue.
Change I6c76a43353b1beb572dbde78dba4b4a839d45ea7 fixes
the issues with new rules and new defaults in hacking 1.2.0.
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Currently the default API version used when creating ironic client
objects is 1.19, which was from the Newton (6.1.0) release. While it is
possible to create a client object with a more recent version within
plugins, introspection rules always use the default. This prevents
access to and updating of fields added in versions after 1.19.
This change updates the default ironic API version to 1.38, which was
the version at the time of the most recent Queens series release
Catch SIGTERM signal and call the signal handler method.
The signal handler then raises KeyboardInterrupt. The
KeyboardInterrupt won't be caught by any 'except Exception'
Without this the service does not stop periodic workers,
tear down pxe filters etc as it is supposed to on shutdown.
NOTE: Calling shutdown() directly from the signal handler
causes the below error. This is why the signal handler
AssertionError: Cannot switch to MAINLOOP from MAINLOOP
hacking is not capped in g-r and it is in
blacklist for requirement as hacking new version
can break the gate jobs.
Hacking can break gate jobs because of various
- There might be new rule addition in hacking
- Some rules becomes default from non-default
- Updates in pycodestyle etc
That was the main reason it was not added in g-r
auto sync also. Most of the project maintained the
compatible and cap the hacking version in
test-requirements.txt and update to new version when
project is ready. Bumping new version might need code
fix also on project side depends on what new in that
If project does not have cap the hacking version then,
there is possibility of gate failure whenever new hacking
version is released by QA team.
Example of such failure in recent release of hacking 1.1.0
This fixes the warning/errors except for the C901 Function is
too complex in the ironic_inspector/rules.py's create method.
Bump's max-complexity to 18 in tox.ini to workaround the C901.
Unless one or more nodes are on introspection and
node_not_found_hook is not set a dhcp_hostsdir ignore
record for wildcard mac '*:*:*:*:*:*' is maintained.
The iptables filter driver blocks DHCP requests on the
Inspector interface unless one or more nodes are on
introspection and node_not_found_hook is not set.
This change brings the dnsmasq filter driver to parity
by implementing logic similar to the iptables driver.
Adds oslo.messaging to ironic-inspector, and convert
inspect, abort and reapply to synchronized rpc calls.
This is the first step of API and worker seperation.
Task: # 12609
Option auth_uri from group keystone_authtoken is deprecated.
Use option www_authenticate_uri from group keystone_authtoken.
This adds signal handler to reload mutable configuration options
It has to be done manually, because ironic-inspector doesn't use
ironic-inspector checks node provision state before starting hardware
introspection, to allow inspection for node at inspect wait state,
this state has to be added to ironic-inspector.
Grenade has seven nodes, and chances that at least one of them will
fail PXE booting is quite high. Ironic itself already has automated
cleaning disabled in its grenade jobs.