tripleo-ansible/tripleo_ansible/tests
Steve Baker be0c1dd6af Reimplement os_tripleo_baremetal_node_introspection
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 e54faf1e10)
2021-09-29 16:52:13 +13:00
..
modules Reimplement os_tripleo_baremetal_node_introspection 2021-09-29 16:52:13 +13:00
plugins Refresh instance after adding allocation 2021-06-16 13:37:21 +00:00
__init__.py Introduce unit tests structure for tripleo-ansible filters 2019-12-02 22:26:16 +00:00
base.py module tripleo_baremetal_expand_roles 2020-03-06 15:12:21 +00:00
stubs.py Extract provisioned networks from stack 2020-10-08 22:11:29 +00:00