summaryrefslogtreecommitdiffstats
path: root/filter_plugins
diff options
context:
space:
mode:
authorKenny Woodson <kwoodson@redhat.com>2015-08-21 17:44:30 -0400
committerKenny Woodson <kwoodson@redhat.com>2015-08-27 14:40:09 -0400
commit693be4802c2b3886b82681c5c1666b9f13d9ca36 (patch)
tree4a6cee11c72601298535c262f5654a4b43ffba14 /filter_plugins
parent2f5486c7174eeacdd52938442daa2ddfa6a8e277 (diff)
downloadopenshift-693be4802c2b3886b82681c5c1666b9f13d9ca36.tar.gz
openshift-693be4802c2b3886b82681c5c1666b9f13d9ca36.tar.bz2
openshift-693be4802c2b3886b82681c5c1666b9f13d9ca36.tar.xz
openshift-693be4802c2b3886b82681c5c1666b9f13d9ca36.zip
Updates for zbx ans module
Diffstat (limited to 'filter_plugins')
-rw-r--r--filter_plugins/oo_filters.py24
-rw-r--r--filter_plugins/oo_zabbix_filters.py29
2 files changed, 51 insertions, 2 deletions
diff --git a/filter_plugins/oo_filters.py b/filter_plugins/oo_filters.py
index c3408702d..a57b0f895 100644
--- a/filter_plugins/oo_filters.py
+++ b/filter_plugins/oo_filters.py
@@ -73,7 +73,7 @@ class FilterModule(object):
if filters is not None:
if not issubclass(type(filters), dict):
- raise errors.AnsibleFilterError("|fialed expects filter to be a"
+ raise errors.AnsibleFilterError("|failed expects filter to be a"
" dict")
retval = [FilterModule.get_attr(d, attribute) for d in data if (
all([d.get(key, None) == filters[key] for key in filters]))]
@@ -83,6 +83,25 @@ class FilterModule(object):
return retval
@staticmethod
+ def oo_select_keys_from_list(data, keys):
+ ''' This returns a list, which contains the value portions for the keys
+ Ex: data = { 'a':1, 'b':2, 'c':3 }
+ keys = ['a', 'c']
+ returns [1, 3]
+ '''
+
+ if not issubclass(type(data), list):
+ raise errors.AnsibleFilterError("|failed expects to filter on a list")
+
+ if not issubclass(type(keys), list):
+ raise errors.AnsibleFilterError("|failed expects first param is a list")
+
+ # Gather up the values for the list of keys passed in
+ retval = [FilterModule.oo_select_keys(item, keys) for item in data]
+
+ return FilterModule.oo_flatten(retval)
+
+ @staticmethod
def oo_select_keys(data, keys):
''' This returns a list, which contains the value portions for the keys
Ex: data = { 'a':1, 'b':2, 'c':3 }
@@ -97,7 +116,7 @@ class FilterModule(object):
raise errors.AnsibleFilterError("|failed expects first param is a list")
# Gather up the values for the list of keys passed in
- retval = [data[key] for key in keys]
+ retval = [data[key] for key in keys if data.has_key(key)]
return retval
@@ -312,6 +331,7 @@ class FilterModule(object):
''' returns a mapping of filters to methods '''
return {
"oo_select_keys": self.oo_select_keys,
+ "oo_select_keys_from_list": self.oo_select_keys_from_list,
"oo_collect": self.oo_collect,
"oo_flatten": self.oo_flatten,
"oo_pdb": self.oo_pdb,
diff --git a/filter_plugins/oo_zabbix_filters.py b/filter_plugins/oo_zabbix_filters.py
index a473993a2..c44b874e8 100644
--- a/filter_plugins/oo_zabbix_filters.py
+++ b/filter_plugins/oo_zabbix_filters.py
@@ -60,6 +60,17 @@ class FilterModule(object):
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
'''
@@ -68,6 +79,22 @@ class FilterModule(object):
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
+
def filters(self):
''' returns a mapping of filters to methods '''
return {
@@ -76,4 +103,6 @@ class FilterModule(object):
"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,
}