summaryrefslogtreecommitdiff
path: root/filter_plugins
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2020-05-26 23:50:38 +0200
committerChristian Pointner <equinox@spreadspace.org>2020-05-26 23:50:38 +0200
commitacc437083cfa7b8f77b8e79af2a0c05bd871e198 (patch)
tree576360023addac147bef43f1ba340c61e3c9fe5b /filter_plugins
parentremove nextcloud test instance (diff)
parentcleanup old configs and playbooks (diff)
Merge branch 'topic/zfs-buster-backports'
Diffstat (limited to 'filter_plugins')
-rw-r--r--filter_plugins/config-parser.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/filter_plugins/config-parser.py b/filter_plugins/config-parser.py
new file mode 100644
index 00000000..c052a7ec
--- /dev/null
+++ b/filter_plugins/config-parser.py
@@ -0,0 +1,28 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from functools import partial
+
+from ansible import errors
+
+
+def from_ini(data):
+ try:
+ import configparser
+ config = configparser.ConfigParser()
+ config.optionxform = lambda option: option
+ config.read_string(data)
+ return {s: dict(config.items(s)) for s in config.sections()}
+ except Exception as e:
+ raise errors.AnsibleFilterError("from_ini(): %s" % str(e))
+
+
+class FilterModule(object):
+
+ ''' config parser filters '''
+ filter_map = {
+ 'from_ini': from_ini,
+ }
+
+ def filters(self):
+ return self.filter_map