diff options
author | Christian Pointner <equinox@spreadspace.org> | 2023-09-09 20:13:20 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2023-09-09 20:13:20 +0200 |
commit | a7f8038feaf923acda8c9a3a64b5c7f064d47056 (patch) | |
tree | b08ba61121bc9505794bf043c17766fd2834c9cd /roles/monitoring/grafana/filter_plugins | |
parent | ele-winvm: some more tests with Intel Arc A380 pass-through (diff) |
monitoring/grafana: add automatic handling for admin password and additonal users
Diffstat (limited to 'roles/monitoring/grafana/filter_plugins')
-rw-r--r-- | roles/monitoring/grafana/filter_plugins/grafana.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/roles/monitoring/grafana/filter_plugins/grafana.py b/roles/monitoring/grafana/filter_plugins/grafana.py new file mode 100644 index 00000000..750dc46d --- /dev/null +++ b/roles/monitoring/grafana/filter_plugins/grafana.py @@ -0,0 +1,32 @@ +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 |