summaryrefslogtreecommitdiffstats
path: root/roles/openshift_sanitize_inventory/filter_plugins/openshift_sanitize_inventory.py
blob: 72c47b8ee39c2a52453af7625daa22789cc91f8e (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
'''
 Openshift Sanitize inventory class that provides useful filters used in Logging.
'''


import re


# This should be removed after map_from_pairs is no longer used in __deprecations_logging.yml
def map_from_pairs(source, delim="="):
    ''' Returns a dict given the source and delim delimited '''
    if source == '':
        return dict()

    return dict(item.split(delim) for item in source.split(","))


def vars_with_pattern(source, pattern=""):
    ''' Returns a list of variables whose name matches the given pattern '''
    if source == '':
        return list()

    var_list = list()

    var_pattern = re.compile(pattern)

    for item in source:
        if var_pattern.match(item):
            var_list.append(item)

    return var_list


# pylint: disable=too-few-public-methods
class FilterModule(object):
    ''' OpenShift Logging Filters '''

    # pylint: disable=no-self-use, too-few-public-methods
    def filters(self):
        ''' Returns the names of the filters provided by this class '''
        return {
            'map_from_pairs': map_from_pairs,
            'vars_with_pattern': vars_with_pattern
        }