mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge pull request #15248 from abadger/fix-async
Fix async for old style modules and don't send an args file for new-style modules
This commit is contained in:
commit
441fe44569
1 changed files with 13 additions and 3 deletions
|
@ -22,7 +22,7 @@ import random
|
|||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action import ActionBase
|
||||
|
||||
from ansible.utils.unicode import to_unicode
|
||||
|
||||
class ActionModule(ActionBase):
|
||||
|
||||
|
@ -60,7 +60,14 @@ class ActionModule(ActionBase):
|
|||
(async_module_style, shebang, async_module_data) = self._configure_module(module_name='async_wrapper', module_args=dict(), task_vars=task_vars)
|
||||
self._transfer_data(async_module_path, async_module_data)
|
||||
|
||||
argsfile = self._transfer_data(self._connection._shell.join_path(tmp, 'arguments'), json.dumps(module_args))
|
||||
argsfile = None
|
||||
if module_style == 'non_native_want_json':
|
||||
argsfile = self._transfer_data(self._connection._shell.join_path(tmp, 'arguments'), json.dumps(module_args))
|
||||
elif module_style == 'old':
|
||||
args_data = ""
|
||||
for k, v in iteritems(module_args):
|
||||
args_data += '%s="%s" ' % (k, pipes.quote(to_unicode(v)))
|
||||
argsfile = self._transfer_data(self._connection._shell.join_path(tmp, 'arguments'), args_data)
|
||||
|
||||
self._fixup_perms(tmp, remote_user, execute=True, recursive=True)
|
||||
# Only the following two files need to be executable but we'd have to
|
||||
|
@ -77,7 +84,10 @@ class ActionModule(ActionBase):
|
|||
async_limit = self._task.async
|
||||
async_jid = str(random.randint(0, 999999999999))
|
||||
|
||||
async_cmd = " ".join([str(x) for x in [env_string, async_module_path, async_jid, async_limit, remote_module_path, argsfile]])
|
||||
async_cmd = [env_string, async_module_path, async_jid, async_limit, remote_module_path]
|
||||
if argsfile:
|
||||
async_cmd.append(argsfile)
|
||||
async_cmd = " ".join([to_unicode(x) for x in async_cmd])
|
||||
result.update(self._low_level_execute_command(cmd=async_cmd))
|
||||
|
||||
# clean up after
|
||||
|
|
Loading…
Reference in a new issue