Fix from @jimi-c to use task_vars when polling async tasks. (#17003)

This is needed so that async_status can use ansible_python_interpreter
for the host being contacted.

Fixes #14101
(cherry picked from commit 38ccd11cce)
pull/17045/head
Toshio Kuratomi 8 years ago committed by Toshio Kuratomi
parent 9255a618e3
commit f695dd6892

@ -462,7 +462,7 @@ class TaskExecutor:
if self._task.async > 0: if self._task.async > 0:
if self._task.poll > 0: if self._task.poll > 0:
result = self._poll_async_result(result=result, templar=templar) result = self._poll_async_result(result=result, templar=templar, task_vars=vars_copy)
# ensure no log is preserved # ensure no log is preserved
result["_ansible_no_log"] = self._play_context.no_log result["_ansible_no_log"] = self._play_context.no_log
@ -546,11 +546,14 @@ class TaskExecutor:
display.debug("attempt loop complete, returning result") display.debug("attempt loop complete, returning result")
return result return result
def _poll_async_result(self, result, templar): def _poll_async_result(self, result, templar, task_vars=None):
''' '''
Polls for the specified JID to be complete Polls for the specified JID to be complete
''' '''
if task_vars is None:
task_vars = self._job_vars
async_jid = result.get('ansible_job_id') async_jid = result.get('ansible_job_id')
if async_jid is None: if async_jid is None:
return dict(failed=True, msg="No job id was returned by the async task") return dict(failed=True, msg="No job id was returned by the async task")
@ -578,7 +581,7 @@ class TaskExecutor:
while time_left > 0: while time_left > 0:
time.sleep(self._task.poll) time.sleep(self._task.poll)
async_result = normal_handler.run() async_result = normal_handler.run(task_vars=task_vars)
# We do not bail out of the loop in cases where the failure # We do not bail out of the loop in cases where the failure
# is associated with a parsing error. The async_runner can # is associated with a parsing error. The async_runner can
# have issues which result in a half-written/unparseable result # have issues which result in a half-written/unparseable result

Loading…
Cancel
Save