summaryrefslogtreecommitdiff
path: root/roles/monitoring/grafana/filter_plugins/grafana.py
blob: 750dc46de8a0184fdbae88430bf92b100805d682 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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