summaryrefslogtreecommitdiff
path: root/roles/monitoring/grafana/filter_plugins/grafana.py
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/grafana/filter_plugins/grafana.py')
-rw-r--r--roles/monitoring/grafana/filter_plugins/grafana.py32
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