summaryrefslogtreecommitdiffstats
path: root/roles/openshift_health_checker/test/action_plugin_test.py
Commit message (Collapse)AuthorAgeFilesLines
* openshift_checks: enable providing file outputsLuke Meyer2017-09-181-17/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some refactoring of checks and the action plugin to enable writing files locally about the check operation and results, if the user wants them. This is aimed at enabling persistent and machine-readable results from recurring runs of health checks. Now, rather than trying to build a result hash to return from running each check, checks can just register what they need to as they're going along, and the action plugin processes state when the check is done. Checks can register failures, notes about what they saw, and arbitrary files to be saved into a directory structure where the user specifies. If no directory is specified, no files are written. At this time checks can still return a result hash, but that will likely be refactored away in the next iteration. Multiple failures can be registered without halting check execution. Throwing an exception or returning a hash with "failed" is registered as a failure. execute_module now does a little more with the results. Results are automatically included in notes and written individually as files. "changed" results are propagated. Some json results are decoded. A few of the checks were enhanced to use these features; all get some of the features for free.
* openshift_health_check: allow disabling all checksLuke Meyer2017-09-121-2/+7
| | | | | | | | Can now set openshift_disable_check=* to disable all checks without needing to know their names. fixes bug 1462106 https://bugzilla.redhat.com/show_bug.cgi?id=1462106
* Update error message: s/non-unique/duplicateRodolfo Carvalho2017-08-241-1/+1
|
* List known checks/tags when check name is invalidRodolfo Carvalho2017-08-241-8/+2
|
* List existing health checks when none is requestedRodolfo Carvalho2017-08-241-1/+2
| | | | | | | | This is a simple mechanism to learn what health checks are available. Note that we defer task_vars verification, so that we can compute requested_checks and resolved_checks earlier, allowing us to list checks even if openshift_facts has not run.
* openshift_checks: add property to track 'changed'Luke Meyer2017-08-021-5/+9
| | | | | | | | | | Introduced the 'changed' property for checks that can make changes to track whether they did or not. Rather than the check's own logic having to track this and include it in the result hash, just set the property and have the action plugin insert it in the result hash after running (even if there is an exception). Cleared out a lot of crufty "changed: false" hash entries.
* openshift_checks: refactor to internalize task_varsLuke Meyer2017-07-251-9/+8
| | | | | | | | | Move task_vars into instance variable so we don't have to pass it around everywhere. Also store tmp. Make sure both are filled in on execute_module. In the process, is_active became an instance method, and task_vars is basically never used directly outside of test code.
* Capture exceptions when resolving available checksRodolfo Carvalho2017-06-231-1/+11
| | | | | | | Calling the action plugin (e.g. when running a playbook) with an incorrect check name was raising an unhandled exception, leading to poor output in Ansible (requiring a higher verbosity level to see what is going wrong).
* health checks: specify check skip reasonLuke Meyer2017-05-231-1/+15
| | | | | Added indicator to check result for why that check was skipped. Note that currently the user will only see it with ansible-playbook -vv
* Fix instantiation of action plugin in test fixtureRodolfo Carvalho2017-04-131-1/+3
| | | | | | | | In Ansible 2.3+, the base action plugin class' run method depends on accessing attributes (check_mode) of its play_context. In older versions play_context was not involved in run, and thus None was passed in.
* Add tests for action pluginRodolfo Carvalho2017-04-041-15/+168
|
* Make resolve_checks more strictRodolfo Carvalho2017-04-041-0/+74
So that all names it return are directly usable, without checking for existence.