|
@@ -1,160 +0,0 @@
|
|
|
-#!/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_collect(data, string, value):
|
|
|
- ''' Build a list of dicts from a list of data matched on string attribute
|
|
|
- '''
|
|
|
- rval = []
|
|
|
- for item in data:
|
|
|
- if item[string] == value:
|
|
|
- rval.append(item)
|
|
|
-
|
|
|
- return rval
|
|
|
-
|
|
|
- @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
|
|
|
-
|
|
|
- @staticmethod
|
|
|
- def oo_remove_attr_from_list_dict(data, attr):
|
|
|
- ''' Remove a specific attribute from a dict
|
|
|
- '''
|
|
|
- attrs = []
|
|
|
- if isinstance(attr, str):
|
|
|
- attrs.append(attr)
|
|
|
- else:
|
|
|
- attrs = attr
|
|
|
-
|
|
|
- for attribute in attrs:
|
|
|
- for _entry in data:
|
|
|
- _entry.pop(attribute, None)
|
|
|
-
|
|
|
- return data
|
|
|
-
|
|
|
- @staticmethod
|
|
|
- def itservice_results_builder(data, clusters, keys):
|
|
|
- '''Take a list of dict results,
|
|
|
- loop through each results and create a hash
|
|
|
- of:
|
|
|
- [{clusterid: cluster1, key: 111 }]
|
|
|
- '''
|
|
|
- r_list = []
|
|
|
- for cluster in clusters:
|
|
|
- for results in data:
|
|
|
- if cluster == results['item'][0]:
|
|
|
- results = results['results']
|
|
|
- if results and len(results) > 0 and all([_key in results[0] for _key in keys]):
|
|
|
- tmp = {}
|
|
|
- tmp['clusterid'] = cluster
|
|
|
- for key in keys:
|
|
|
- tmp[key] = results[0][key]
|
|
|
- r_list.append(tmp)
|
|
|
-
|
|
|
- return r_list
|
|
|
-
|
|
|
- @staticmethod
|
|
|
- def itservice_dependency_builder(data, cluster):
|
|
|
- '''Take a list of dict results,
|
|
|
- loop through each results and create a hash
|
|
|
- of:
|
|
|
- [{clusterid: cluster1, key: 111 }]
|
|
|
- '''
|
|
|
- r_list = []
|
|
|
- for dep in data:
|
|
|
- if cluster == dep['clusterid']:
|
|
|
- r_list.append({'name': '%s - %s' % (dep['clusterid'], dep['description']), 'dep_type': 'hard'})
|
|
|
-
|
|
|
- return r_list
|
|
|
-
|
|
|
- @staticmethod
|
|
|
- def itservice_dep_builder_list(data):
|
|
|
- '''Take a list of dict results,
|
|
|
- loop through each results and create a hash
|
|
|
- of:
|
|
|
- [{clusterid: cluster1, key: 111 }]
|
|
|
- '''
|
|
|
- r_list = []
|
|
|
- for dep in data:
|
|
|
- r_list.append({'name': '%s' % dep, 'dep_type': 'hard'})
|
|
|
-
|
|
|
- return r_list
|
|
|
-
|
|
|
- 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,
|
|
|
- "oo_build_zabbix_collect": self.oo_build_zabbix_collect,
|
|
|
- "oo_remove_attr_from_list_dict": self.oo_remove_attr_from_list_dict,
|
|
|
- "itservice_results_builder": self.itservice_results_builder,
|
|
|
- "itservice_dependency_builder": self.itservice_dependency_builder,
|
|
|
- "itservice_dep_builder_list": self.itservice_dep_builder_list,
|
|
|
- }
|