summaryrefslogtreecommitdiff
path: root/lib/ansible/executor
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2020-07-17 16:42:01 -0500
committerGitHub <noreply@github.com>2020-07-17 14:42:01 -0700
commitf556b6cdd896b1b0bfa6591bc1f820af12641eb3 (patch)
tree265d454d3cc8aeb3a2e62d30095c321e83e4cb34 /lib/ansible/executor
parent4f978af4ca16ad9828ffe42203b9615425195f8b (diff)
downloadansible-f556b6cdd896b1b0bfa6591bc1f820af12641eb3.tar.gz
[stable-2.9] Allow single vault encrypted values to be used directly as module parameters. Fixes #68275 (#70607) (#70642)
* rebase conflicts * [stable-2.9] Allow single vault encrypted values to be used directly as module parameters. Fixes #68275 (#70607). (cherry picked from commit a77dbf08663e002198d0fa2af502d5cde8009454) Co-authored-by: Matt Martz <matt@sivel.net>
Diffstat (limited to 'lib/ansible/executor')
-rw-r--r--lib/ansible/executor/module_common.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/ansible/executor/module_common.py b/lib/ansible/executor/module_common.py
index d7a4742275..65a52a7064 100644
--- a/lib/ansible/executor/module_common.py
+++ b/lib/ansible/executor/module_common.py
@@ -37,6 +37,7 @@ from ansible.errors import AnsibleError
from ansible.executor.interpreter_discovery import InterpreterDiscoveryRequiredError
from ansible.executor.powershell import module_manifest as ps_manifest
from ansible.module_utils._text import to_bytes, to_text, to_native
+from ansible.module_utils.common.json import AnsibleJSONEncoder
from ansible.module_utils.compat.importlib import import_module
from ansible.plugins.loader import module_utils_loader
# Must import strategy and use write_locks from there
@@ -1003,7 +1004,7 @@ def _find_module_utils(module_name, b_module_data, module_path, module_args, tas
if module_substyle == 'python':
params = dict(ANSIBLE_MODULE_ARGS=module_args,)
try:
- python_repred_params = repr(json.dumps(params))
+ python_repred_params = repr(json.dumps(params, cls=AnsibleJSONEncoder, vault_to_text=True))
except TypeError as e:
raise AnsibleError("Unable to pass options to module, they must be JSON serializable: %s" % to_native(e))
@@ -1195,7 +1196,7 @@ def _find_module_utils(module_name, b_module_data, module_path, module_args, tas
)
elif module_substyle == 'jsonargs':
- module_args_json = to_bytes(json.dumps(module_args))
+ module_args_json = to_bytes(json.dumps(module_args, cls=AnsibleJSONEncoder, vault_to_text=True))
# these strings could be included in a third-party module but
# officially they were included in the 'basic' snippet for new-style