diff options
author | Scott Dodson <sdodson@redhat.com> | 2018-01-11 18:43:36 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-11 18:43:36 -0500 |
commit | fa649787c6a19bbfffb16d9cce3f8e3f7de5a8a1 (patch) | |
tree | 6c891a58fb0642d9e0f7399f139940fe46c919e9 /roles/lib_utils/filter_plugins/oo_cert_expiry.py | |
parent | fdc5829d6ca252e1574278cd1dc50e932378d98d (diff) | |
parent | d3fefc32a727fe3c13159c4e9fe4399f35b487a8 (diff) | |
download | openshift-fa649787c6a19bbfffb16d9cce3f8e3f7de5a8a1.tar.gz openshift-fa649787c6a19bbfffb16d9cce3f8e3f7de5a8a1.tar.bz2 openshift-fa649787c6a19bbfffb16d9cce3f8e3f7de5a8a1.tar.xz openshift-fa649787c6a19bbfffb16d9cce3f8e3f7de5a8a1.zip |
Merge pull request #6614 from mgugino-upstream-stage/plugins-to-lib-utils
Move more plugins to lib_utils
Diffstat (limited to 'roles/lib_utils/filter_plugins/oo_cert_expiry.py')
-rw-r--r-- | roles/lib_utils/filter_plugins/oo_cert_expiry.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/roles/lib_utils/filter_plugins/oo_cert_expiry.py b/roles/lib_utils/filter_plugins/oo_cert_expiry.py new file mode 100644 index 000000000..58b228fee --- /dev/null +++ b/roles/lib_utils/filter_plugins/oo_cert_expiry.py @@ -0,0 +1,66 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +""" +Custom filters for use in openshift-ansible +""" + + +# Disabling too-many-public-methods, since filter methods are necessarily +# public +# pylint: disable=too-many-public-methods +class FilterModule(object): + """ Custom ansible filters """ + + @staticmethod + def oo_cert_expiry_results_to_json(hostvars, play_hosts): + """Takes results (`hostvars`) from the openshift_cert_expiry role +check and serializes them into proper machine-readable JSON +output. This filter parameter **MUST** be the playbook `hostvars` +variable. The `play_hosts` parameter is so we know what to loop over +when we're extrating the values. + +Returns: + +Results are collected into two top-level keys under the `json_results` +dict: + +* `json_results.data` [dict] - Each individual host check result, keys are hostnames +* `json_results.summary` [dict] - Summary of number of `warning` and `expired` +certificates + +Example playbook usage: + + - name: Generate expiration results JSON + run_once: yes + delegate_to: localhost + when: openshift_certificate_expiry_save_json_results|bool + copy: + content: "{{ hostvars|oo_cert_expiry_results_to_json() }}" + dest: "{{ openshift_certificate_expiry_json_results_path }}" + + """ + json_result = { + 'data': {}, + 'summary': {}, + } + + for host in play_hosts: + json_result['data'][host] = hostvars[host]['check_results']['check_results'] + + total_warnings = sum([hostvars[h]['check_results']['summary']['warning'] for h in play_hosts]) + total_expired = sum([hostvars[h]['check_results']['summary']['expired'] for h in play_hosts]) + total_ok = sum([hostvars[h]['check_results']['summary']['ok'] for h in play_hosts]) + total_total = sum([hostvars[h]['check_results']['summary']['total'] for h in play_hosts]) + + json_result['summary']['warning'] = total_warnings + json_result['summary']['expired'] = total_expired + json_result['summary']['ok'] = total_ok + json_result['summary']['total'] = total_total + + return json_result + + def filters(self): + """ returns a mapping of filters to methods """ + return { + "oo_cert_expiry_results_to_json": self.oo_cert_expiry_results_to_json, + } |