]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/orch: re-raise to make debugging easier
authorSebastian Wagner <sewagner@redhat.com>
Wed, 22 Sep 2021 12:20:24 +0000 (14:20 +0200)
committerSebastian Wagner <sewagner@redhat.com>
Wed, 19 Jan 2022 10:44:50 +0000 (11:44 +0100)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
(cherry picked from commit 38b52f715fa581f3540ad6fc4c595ab0ede83ece)

src/pybind/mgr/cephadm/tests/test_cephadm.py
src/pybind/mgr/orchestrator/_interface.py

index 614abf1c75cebe522f473b018c034bff68745c93..d6850ae818ffa4f6adccbaa17e7e8e7abfa5f0d8 100644 (file)
@@ -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):
index ee06e2cf1cbbfc7245850321ac2db157250a9058..006b6700383555716bcae675a7589caa854150e9 100644 (file)
@@ -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)