]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: show unhandled exceptions during `host add`
authorMichael Fritch <mfritch@suse.com>
Thu, 19 Aug 2021 21:21:06 +0000 (15:21 -0600)
committerSebastian Wagner <sewagner@redhat.com>
Tue, 2 Nov 2021 09:01:16 +0000 (10:01 +0100)
138700e59bcd assumes stderr will always have a line containing the
prefix 'ERROR', which leads to an empty error reason when `check-host`
fails with an unhandled exception

Fixes: https://tracker.ceph.com/issues/51818
Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit dac9225085a1f6d2eeaf209fc3d77c54208db2e8)

src/pybind/mgr/cephadm/module.py

index 2e9704e2358a43ca6abd9974f23843b9268f3392..c46cf6a9ae3d1d7b25b2e92f15f5b48b56ce6038 100644 (file)
@@ -1441,11 +1441,13 @@ Then run the following:
             addr=addr,
             error_ok=True, no_fsid=True)
         if code:
+            msg = 'check-host failed:\n' + '\n'.join(err)
             # err will contain stdout and stderr, so we filter on the message text to
             # only show the errors
             errors = [_i.replace("ERROR: ", "") for _i in err if _i.startswith('ERROR')]
-            raise OrchestratorError('Host %s (%s) failed check(s): %s' % (
-                host, addr, errors))
+            if errors:
+                msg = f'Host {host} ({addr}) failed check(s): {errors}'
+            raise OrchestratorError(msg)
         return ip_addr
 
     def _add_host(self, spec):