summaryrefslogtreecommitdiffstats
path: root/filter_plugins/oo_zabbix_filters.py
diff options
context:
space:
mode:
Diffstat (limited to 'filter_plugins/oo_zabbix_filters.py')
-rw-r--r--filter_plugins/oo_zabbix_filters.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/filter_plugins/oo_zabbix_filters.py b/filter_plugins/oo_zabbix_filters.py
new file mode 100644
index 000000000..a473993a2
--- /dev/null
+++ b/filter_plugins/oo_zabbix_filters.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# vim: expandtab:tabstop=4:shiftwidth=4
+'''
+Custom zabbix filters for use in openshift-ansible
+'''
+
+import pdb
+
+class FilterModule(object):
+ ''' Custom zabbix ansible filters '''
+
+ @staticmethod
+ def create_data(data, results, key, new_key):
+ '''Take a dict, filter through results and add results['key'] to dict
+ '''
+ new_list = [app[key] for app in results]
+ data[new_key] = new_list
+ return data
+
+ @staticmethod
+ def oo_set_zbx_trigger_triggerid(item, trigger_results):
+ '''Set zabbix trigger id from trigger results
+ '''
+ if isinstance(trigger_results, list):
+ item['triggerid'] = trigger_results[0]['triggerid']
+ return item
+
+ item['triggerid'] = trigger_results['triggerids'][0]
+ return item
+
+ @staticmethod
+ def oo_set_zbx_item_hostid(item, template_results):
+ ''' Set zabbix host id from template results
+ '''
+ if isinstance(template_results, list):
+ item['hostid'] = template_results[0]['templateid']
+ return item
+
+ item['hostid'] = template_results['templateids'][0]
+ return item
+
+ @staticmethod
+ def oo_pdb(arg):
+ ''' This pops you into a pdb instance where arg is the data passed in
+ from the filter.
+ Ex: "{{ hostvars | oo_pdb }}"
+ '''
+ pdb.set_trace()
+ return arg
+
+ @staticmethod
+ def select_by_name(ans_data, data):
+ ''' test
+ '''
+ for zabbix_item in data:
+ if ans_data['name'] == zabbix_item:
+ data[zabbix_item]['params']['hostid'] = ans_data['templateid']
+ return data[zabbix_item]['params']
+ return None
+
+ @staticmethod
+ def oo_build_zabbix_list_dict(values, string):
+ ''' Build a list of dicts with string as key for each value
+ '''
+ rval = []
+ for value in values:
+ rval.append({string: value})
+ return rval
+
+ def filters(self):
+ ''' returns a mapping of filters to methods '''
+ return {
+ "select_by_name": self.select_by_name,
+ "oo_set_zbx_item_hostid": self.oo_set_zbx_item_hostid,
+ "oo_set_zbx_trigger_triggerid": self.oo_set_zbx_trigger_triggerid,
+ "oo_build_zabbix_list_dict": self.oo_build_zabbix_list_dict,
+ "create_data": self.create_data,
+ }