from __future__ import (absolute_import, division, print_function) __metaclass__ = type from functools import partial from ansible import errors from ansible.module_utils.common.text import formatters def resolve_grafana_url(url, config): try: protocol = config.get('protocol', 'http') addr = config.get('http_addr', 'localhost') port = config.get('http_port', '3000') serve_from_sub_path = config.get('serve_from_sub_path', False) if not serve_from_sub_path: return "%s://%s:%s" % (protocol, addr, port) return url.replace('%(protocol)s', str(protocol)).replace('%(domain)s', str(addr)).replace('%(http_port)s', str(port)) except Exception as e: raise errors.AnsibleFilterError("resolve_grafana_url(): %s" % str(e)) class FilterModule(object): filter_map = { 'resolve_grafana_url': resolve_grafana_url, } def filters(self): return self.filter_map