diff options
author | Luke Meyer <lmeyer@redhat.com> | 2017-05-23 14:16:12 -0400 |
---|---|---|
committer | Luke Meyer <lmeyer@redhat.com> | 2017-05-23 14:56:20 -0400 |
commit | 323301a45b1adc20ea41b0633b53185a1a9d77e9 (patch) | |
tree | 10aa6ae0244963ec66b9192c4fc8cf5d79e88947 /roles/openshift_health_checker | |
parent | 1d5d13308bd79051b0bf3311240ef0e6cb286392 (diff) | |
download | openshift-323301a45b1adc20ea41b0633b53185a1a9d77e9.tar.gz openshift-323301a45b1adc20ea41b0633b53185a1a9d77e9.tar.bz2 openshift-323301a45b1adc20ea41b0633b53185a1a9d77e9.tar.xz openshift-323301a45b1adc20ea41b0633b53185a1a9d77e9.zip |
health checks: specify check skip reason
Added indicator to check result for why that check was skipped.
Note that currently the user will only see it with ansible-playbook -vv
Diffstat (limited to 'roles/openshift_health_checker')
-rw-r--r-- | roles/openshift_health_checker/action_plugins/openshift_health_check.py | 17 | ||||
-rw-r--r-- | roles/openshift_health_checker/test/action_plugin_test.py | 16 |
2 files changed, 24 insertions, 9 deletions
diff --git a/roles/openshift_health_checker/action_plugins/openshift_health_check.py b/roles/openshift_health_checker/action_plugins/openshift_health_check.py index a1df9cea3..a62e4331e 100644 --- a/roles/openshift_health_checker/action_plugins/openshift_health_check.py +++ b/roles/openshift_health_checker/action_plugins/openshift_health_check.py @@ -57,17 +57,18 @@ class ActionModule(ActionBase): display.banner("CHECK [{} : {}]".format(check_name, task_vars["ansible_host"])) check = known_checks[check_name] - if check_name not in user_disabled_checks and check.is_active(task_vars): + if not check.is_active(task_vars): + r = dict(skipped=True, skipped_reason="Not active for this host") + elif check_name in user_disabled_checks: + r = dict(skipped=True, skipped_reason="Disabled by user request") + else: try: r = check.run(tmp, task_vars) except OpenShiftCheckException as e: - r = {} - r["failed"] = True - r["msg"] = str(e) - else: - # TODO(rhcarvalho): we may want to provide some distinctive - # complementary message to know why a check was skipped. - r = {"skipped": True} + r = dict( + failed=True, + msg=str(e), + ) check_results[check_name] = r diff --git a/roles/openshift_health_checker/test/action_plugin_test.py b/roles/openshift_health_checker/test/action_plugin_test.py index 2693ae37b..6ebf0ebb2 100644 --- a/roles/openshift_health_checker/test/action_plugin_test.py +++ b/roles/openshift_health_checker/test/action_plugin_test.py @@ -67,6 +67,7 @@ def changed(result): return result.get('changed', False) +# tests whether task is skipped, not individual checks def skipped(result): return result.get('skipped', False) @@ -101,7 +102,20 @@ def test_action_plugin_skip_non_active_checks(plugin, task_vars, monkeypatch): result = plugin.run(tmp=None, task_vars=task_vars) - assert result['checks']['fake_check'] == {'skipped': True} + assert result['checks']['fake_check'] == dict(skipped=True, skipped_reason="Not active for this host") + assert not failed(result) + assert not changed(result) + assert not skipped(result) + + +def test_action_plugin_skip_disabled_checks(plugin, task_vars, monkeypatch): + checks = [fake_check('fake_check', is_active=True)] + monkeypatch.setattr('openshift_checks.OpenShiftCheck.subclasses', classmethod(lambda cls: checks)) + + task_vars['openshift_disable_check'] = 'fake_check' + result = plugin.run(tmp=None, task_vars=task_vars) + + assert result['checks']['fake_check'] == dict(skipped=True, skipped_reason="Disabled by user request") assert not failed(result) assert not changed(result) assert not skipped(result) |