From 3f41c76564678d2cc09334f0c694439e8e452071 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Thu, 27 Aug 2020 12:35:36 -0500 Subject: [PATCH] [stable-2.10] Allow the TOML inventory to dump unsafe. Fixes #71307 (#71309) (#71317) (cherry picked from commit 9da8801) Co-authored-by: Matt Martz --- changelogs/fragments/71307-toml-dumps-unsafe.yml | 4 ++++ lib/ansible/plugins/inventory/toml.py | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 changelogs/fragments/71307-toml-dumps-unsafe.yml diff --git a/changelogs/fragments/71307-toml-dumps-unsafe.yml b/changelogs/fragments/71307-toml-dumps-unsafe.yml new file mode 100644 index 00000000000..9b964fc1417 --- /dev/null +++ b/changelogs/fragments/71307-toml-dumps-unsafe.yml @@ -0,0 +1,4 @@ +bugfixes: +- TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to support dumping unsafe values. + Note that the TOML format has no functionality to mark that the data is unsafe for re-consumption. + (https://github.com/ansible/ansible/issues/71307) diff --git a/lib/ansible/plugins/inventory/toml.py b/lib/ansible/plugins/inventory/toml.py index 32885956830..8a3e7f7a62c 100644 --- a/lib/ansible/plugins/inventory/toml.py +++ b/lib/ansible/plugins/inventory/toml.py @@ -98,6 +98,7 @@ from ansible.module_utils.six import string_types, text_type from ansible.parsing.yaml.objects import AnsibleSequence, AnsibleUnicode from ansible.plugins.inventory import BaseFileInventoryPlugin from ansible.utils.display import Display +from ansible.utils.unsafe_proxy import AnsibleUnsafeBytes, AnsibleUnsafeText try: import toml @@ -121,6 +122,8 @@ if HAS_TOML and hasattr(toml, 'TomlEncoder'): self.dump_funcs.update({ AnsibleSequence: self.dump_funcs.get(list), AnsibleUnicode: self.dump_funcs.get(str), + AnsibleUnsafeBytes: self.dump_funcs.get(str), + AnsibleUnsafeText: self.dump_funcs.get(str), }) toml_dumps = partial(toml.dumps, encoder=AnsibleTomlEncoder()) else: