diff options
author | James Cassell <code@james.cassell.me> | 2020-02-04 14:40:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-04 11:40:09 -0800 |
commit | fd954a9c5c05c7149eb23271529ff070f2b1f9dc (patch) | |
tree | 95dab7ba4547adea51201ddd147e0193f282fa54 | |
parent | f4a80bb600510669801c5d5c0a250952748e99fd (diff) | |
download | ansible-fd954a9c5c05c7149eb23271529ff070f2b1f9dc.tar.gz |
wait_for_connection: also retry interpreter discovery (#67040)
self._discovered_interpreter_key is None unless a previous iteration
has attempted discovery. In that case, force re-discovery, as the
previous attempt certainly failed.
-rw-r--r-- | changelogs/fragments/wait_for_connection-interpreter-discovery-retry.yaml | 4 | ||||
-rw-r--r-- | lib/ansible/plugins/action/wait_for_connection.py | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/changelogs/fragments/wait_for_connection-interpreter-discovery-retry.yaml b/changelogs/fragments/wait_for_connection-interpreter-discovery-retry.yaml new file mode 100644 index 0000000000..446edd24f1 --- /dev/null +++ b/changelogs/fragments/wait_for_connection-interpreter-discovery-retry.yaml @@ -0,0 +1,4 @@ +--- +bugfixes: +- wait_for_connection - with pipelining enabled, interpreter discovery would + fail if the first connection attempt was not successful diff --git a/lib/ansible/plugins/action/wait_for_connection.py b/lib/ansible/plugins/action/wait_for_connection.py index fbf4e98fa2..8c5b3bea1a 100644 --- a/lib/ansible/plugins/action/wait_for_connection.py +++ b/lib/ansible/plugins/action/wait_for_connection.py @@ -79,6 +79,9 @@ class ActionModule(ActionBase): def ping_module_test(connect_timeout): ''' Test ping module, if available ''' display.vvv("wait_for_connection: attempting ping module test") + # re-run interpreter discovery if we ran it in the first iteration + if self._discovered_interpreter_key: + task_vars['ansible_facts'].pop(self._discovered_interpreter_key, None) # call connection reset between runs if it's there try: self._connection.reset() |