be0c1dd6af
Triggering introspection via the introspection API is discouraged when
also using the Ironic API, because Ironic will be out of sync with
introspection state. This is suspected to be causing occasional errors
in CI and with end users.
This module was one of the very first to be converted from mistral, so
hasn't benefited from the concurrency and logging patterns in later
modules.
The internal implementation of this module has been rewritten, and now
does the following:
- Concurrency uses a ThreadPoolExecutor instead of a custom pool with
async calls
- Waiting for state changes uses existing openstacksdk wait functions
- Logging ends up in a 'logging' result value instead of calling
module.log which ansible does not pass back to the caller
- Introspection is triggered by setting the node provision state to
'inspect'
- Node is powered off after a successful introspection
- Auth configuration relies on environment, as for other modules
- Debug tasks are added to the playbook to print the logging
This was reverted previously due to a 50% failure rate in the periodic
featureset001, the locking interaction between inspector and ironic
has now been fixed so the root cause of these failures is now
resolved.
Change-Id: I24eb7014cc657f50be63767af439208eb854dfb6
Closes-Bug: 1903786
(cherry picked from commit
|
||
---|---|---|
.. | ||
modules | ||
plugins | ||
__init__.py | ||
base.py | ||
stubs.py |