summaryrefslogtreecommitdiffstats
path: root/roles/openshift_health_checker/openshift_checks/mixins.py
Commit message (Collapse)AuthorAgeFilesLines
* Remove openshift.common.{is_atomic|is_containerized}Michael Gugino2017-12-201-4/+4
| | | | | We set these variables using facts in init, no need to duplicate the logic all around the codebase.
* openshift_checks: lb and nfs do not need dockerLuke Meyer2017-10-041-3/+5
| | | | | fixes bug 1496760 https://bugzilla.redhat.com/show_bug.cgi?id=1496760
* openshift_checks: use oo group names everywhereLuke Meyer2017-10-041-1/+1
|
* openshift_checks: enable providing file outputsLuke Meyer2017-09-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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_checks: add retries in pythonLuke Meyer2017-09-121-1/+1
|
* openshift_checks: add property to track 'changed'Luke Meyer2017-08-021-4/+4
| | | | | | | | | | 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-15/+10
| | | | | | | | | 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.
* pre-install checks: add more during byo installLuke Meyer2017-06-141-2/+5
| | | | | | | | | | | | Add the docker and RPM checks to the list that run at install time. They can be disabled the same as the existing ones. Removed cockpit-kubernetes RPM requirement as it no longer is. Fixed up docker_image_availability to handle oreg_url and other nuances. Switched to using the openshift_image_tag that's set by openshift_version for both component and infrastructure images. Fixed a bug where execute_module was being called with incorrect positional arg "tmp" as a dict which caused errors down the call stack.
* Improve code readabilityRodolfo Carvalho2017-06-091-1/+3
|
* docker checks: finish and refactorLuke Meyer2017-06-071-1/+39
| | | | | | | | | Incorporated docker_storage_driver into docker_storage as both need driver info. Corrected storage calculation to include VG free space, not just the current amount in the LV pool. Now makes no assumptions about pool name. Improved user messaging. Factored out some methods that can be shared with docker_image_availability.
* Simplify mixin classRodolfo Carvalho2017-04-171-10/+7
| | | | | - Expose only is_active and no other method. - Move general comment to module docstring.
* Renamed NotContainerized to NotContainerizedMixin and dropped no-memberSteve Milner2017-02-221-6/+3
|
* Refactor code to access values from task_varsRodolfo Carvalho2017-02-101-5/+2
|
* Replace multi-role checks with action pluginRodolfo Carvalho2017-02-101-0/+24
This approach should make it easier to add new checks without having to write lots of YAML and doing things against Ansible (e.g. ignore_errors). A single action plugin determines what checks to run per each host, including arguments to the check. A check is implemented as a class with a run method, with the same signature as an action plugin and module, and is normally backed by a regular Ansible module. Each check is implemented as a separate Python file. This allows whoever adds a new check to focus solely in a single Python module, and potentially an Ansible module within library/ too. All checks are automatically loaded, and only active checks that are requested by the playbook get executed.