diff options
author | Matt Martz <matt@sivel.net> | 2020-07-17 16:42:01 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-17 14:42:01 -0700 |
commit | f556b6cdd896b1b0bfa6591bc1f820af12641eb3 (patch) | |
tree | 265d454d3cc8aeb3a2e62d30095c321e83e4cb34 /lib/ansible/executor | |
parent | 4f978af4ca16ad9828ffe42203b9615425195f8b (diff) | |
download | ansible-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.py | 5 |
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 |