diff options
author | Rodolfo Carvalho <rhcarvalho@gmail.com> | 2017-06-09 17:04:19 +0200 |
---|---|---|
committer | Rodolfo Carvalho <rhcarvalho@gmail.com> | 2017-06-23 15:34:42 +0200 |
commit | 11040f1b76981c22d62d17d1d22a3741e50a27fd (patch) | |
tree | 44937ead88658e0c56c6954d9b9754cd872fd63c | |
parent | 0371aff5b86302d4786a87c0fe6f52b32a2952c9 (diff) | |
download | openshift-11040f1b76981c22d62d17d1d22a3741e50a27fd.tar.gz openshift-11040f1b76981c22d62d17d1d22a3741e50a27fd.tar.bz2 openshift-11040f1b76981c22d62d17d1d22a3741e50a27fd.tar.xz openshift-11040f1b76981c22d62d17d1d22a3741e50a27fd.zip |
Capture exceptions when resolving available checks
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).
-rw-r--r-- | roles/openshift_health_checker/action_plugins/openshift_health_check.py | 5 | ||||
-rw-r--r-- | roles/openshift_health_checker/test/action_plugin_test.py | 12 |
2 files changed, 13 insertions, 4 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 a62e4331e..0390dc82e 100644 --- a/roles/openshift_health_checker/action_plugins/openshift_health_check.py +++ b/roles/openshift_health_checker/action_plugins/openshift_health_check.py @@ -38,14 +38,13 @@ class ActionModule(ActionBase): try: known_checks = self.load_known_checks() + args = self._task.args + resolved_checks = resolve_checks(args.get("checks", []), known_checks.values()) except OpenShiftCheckException as e: result["failed"] = True result["msg"] = str(e) return result - args = self._task.args - resolved_checks = resolve_checks(args.get("checks", []), known_checks.values()) - result["checks"] = check_results = {} user_disabled_checks = [ diff --git a/roles/openshift_health_checker/test/action_plugin_test.py b/roles/openshift_health_checker/test/action_plugin_test.py index 6ebf0ebb2..9383b233c 100644 --- a/roles/openshift_health_checker/test/action_plugin_test.py +++ b/roles/openshift_health_checker/test/action_plugin_test.py @@ -59,7 +59,7 @@ def failed(result, msg_has=None): if msg_has is not None: assert 'msg' in result for term in msg_has: - assert term in result['msg'] + assert term.lower() in result['msg'].lower() return result.get('failed', False) @@ -178,6 +178,16 @@ def test_action_plugin_run_check_exception(plugin, task_vars, monkeypatch): assert not skipped(result) +def test_action_plugin_resolve_checks_exception(plugin, task_vars, monkeypatch): + monkeypatch.setattr(plugin, 'load_known_checks', lambda: {}) + + result = plugin.run(tmp=None, task_vars=task_vars) + + assert failed(result, msg_has=['unknown', 'name']) + assert not changed(result) + assert not skipped(result) + + @pytest.mark.parametrize('names,all_checks,expected', [ ([], [], set()), ( |