[stable-2.7] Add missing self._supports_async to uri action plugin (#47677)

* Add missing self._supports_async to uri action plugin. Fixes #47660

* Additional changes needed to support async

* Missed a call to execute_module
(cherry picked from commit 3633e21)

Co-authored-by: Matt Martz <matt@sivel.net>
This commit is contained in:
Matt Martz 2018-10-26 12:16:26 -05:00 committed by Toshio Kuratomi
parent 6cf1814105
commit 414ee4759d
2 changed files with 8 additions and 3 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- uri - Ensure the ``uri`` module supports async (https://github.com/ansible/ansible/issues/47660)

View file

@ -20,6 +20,8 @@ class ActionModule(ActionBase):
TRANSFERS_FILES = True
def run(self, tmp=None, task_vars=None):
self._supports_async = True
if task_vars is None:
task_vars = dict()
@ -33,7 +35,7 @@ class ActionModule(ActionBase):
if (src and remote_src) or not src:
# everything is remote, so we just execute the module
# without changing any of the module arguments
raise _AnsibleActionDone(result=self._execute_module(task_vars=task_vars))
raise _AnsibleActionDone(result=self._execute_module(task_vars=task_vars, wrap_async=self._task.async_val))
try:
src = self._find_needle('files', src)
@ -51,9 +53,10 @@ class ActionModule(ActionBase):
)
)
result.update(self._execute_module('uri', module_args=new_module_args, task_vars=task_vars))
result.update(self._execute_module('uri', module_args=new_module_args, task_vars=task_vars, wrap_async=self._task.async_val))
except AnsibleAction as e:
result.update(e.result)
finally:
self._remove_tmp_path(self._connection._shell.tmpdir)
if not self._task.async_val:
self._remove_tmp_path(self._connection._shell.tmpdir)
return result