From: Sebastian Wagner Date: Wed, 22 Sep 2021 12:20:24 +0000 (+0200) Subject: mgr/orch: re-raise to make debugging easier X-Git-Tag: v16.2.8~251^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=91f34abed4d3602e988614ea113673936e87e440;p=ceph.git mgr/orch: re-raise to make debugging easier Signed-off-by: Sebastian Wagner (cherry picked from commit 38b52f715fa581f3540ad6fc4c595ab0ede83ece) --- diff --git a/src/pybind/mgr/cephadm/tests/test_cephadm.py b/src/pybind/mgr/cephadm/tests/test_cephadm.py index 614abf1c75ce..d6850ae818ff 100644 --- a/src/pybind/mgr/cephadm/tests/test_cephadm.py +++ b/src/pybind/mgr/cephadm/tests/test_cephadm.py @@ -1402,10 +1402,10 @@ class TestCephadm(object): _get_daemon_types.return_value = ['crash'] _hosts.return_value = [hostname, 'other_host'] cephadm_module.inventory.add_host(HostSpec(hostname)) - # should raise an error which will get stored in OrchResult object - retval = cephadm_module.enter_host_maintenance(hostname) - assert retval.exception_str - assert not retval.result_str() + + with pytest.raises(OrchestratorError, match='Failed to place host1 into maintenance for cluster fsid'): + cephadm_module.enter_host_maintenance(hostname) + assert not cephadm_module.inventory._inventory[hostname]['status'] @mock.patch("cephadm.serve.CephadmServe._run_cephadm") @@ -1433,10 +1433,10 @@ class TestCephadm(object): _get_daemon_types.return_value = ['crash'] _hosts.return_value = [hostname, 'other_host'] cephadm_module.inventory.add_host(HostSpec(hostname, status='maintenance')) - # should raise an error which will get stored in OrchResult object - retval = cephadm_module.exit_host_maintenance(hostname) - assert retval.exception_str - assert not retval.result_str() + + with pytest.raises(OrchestratorError, match='Failed to exit maintenance state for host host1, cluster fsid'): + cephadm_module.exit_host_maintenance(hostname) + assert cephadm_module.inventory._inventory[hostname]['status'] == 'maintenance' def test_stale_connections(self, cephadm_module): diff --git a/src/pybind/mgr/orchestrator/_interface.py b/src/pybind/mgr/orchestrator/_interface.py index ee06e2cf1cbb..006b67003835 100644 --- a/src/pybind/mgr/orchestrator/_interface.py +++ b/src/pybind/mgr/orchestrator/_interface.py @@ -125,6 +125,9 @@ def handle_orch_error(f: Callable[..., T]) -> Callable[..., 'OrchResult[T]']: return OrchResult(f(*args, **kwargs)) except Exception as e: logger.exception(e) + import os + if 'UNITTEST' in os.environ: + raise # This makes debugging of Tracebacks from unittests a bit easier return OrchResult(None, exception=e) return cast(Callable[..., OrchResult[T]], wrapper)