diff options
Diffstat (limited to 'filter_plugins')
-rw-r--r-- | filter_plugins/config-parser.py | 28 |
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 |