From b824f11c7e3794289ef3093b0e2fc8b9e74c2ef5 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 7 May 2021 01:38:36 +0200 Subject: renew containerd role --- filter_plugins/toml.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 filter_plugins/toml.py (limited to 'filter_plugins/toml.py') diff --git a/filter_plugins/toml.py b/filter_plugins/toml.py new file mode 100644 index 00000000..c169a3a6 --- /dev/null +++ b/filter_plugins/toml.py @@ -0,0 +1,52 @@ +# this is from: https://github.com/sivel/toiletwater/tree/master/plugins/filter +# +# (c) 2017, Matt Martz +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import functools + +from ansible.plugins.inventory.toml import HAS_TOML, toml_dumps +try: + from ansible.plugins.inventory.toml import toml +except ImportError: + pass + +from ansible.errors import AnsibleFilterError +from ansible.module_utils._text import to_text +from ansible.module_utils.common._collections_compat import MutableMapping +from ansible.module_utils.six import string_types + + +def _check_toml(func): + @functools.wraps(func) + def inner(o): + if not HAS_TOML: + raise AnsibleFilterError('The %s filter plugin requires the python "toml" library' % func.__name__) + return func(o) + return inner + + +@_check_toml +def from_toml(o): + if not isinstance(o, string_types): + raise AnsibleFilterError('from_toml requires a string, got %s' % type(o)) + return toml.loads(to_text(o, errors='surrogate_or_strict')) + + +@_check_toml +def to_toml(o): + if not isinstance(o, MutableMapping): + raise AnsibleFilterError('to_toml requires a dict, got %s' % type(o)) + return to_text(toml_dumps(o), errors='surrogate_or_strict') + + +class FilterModule(object): + def filters(self): + return { + 'to_toml': to_toml, + 'from_toml': from_toml + } -- cgit v1.2.3