]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: return nonzero exit code when applying spec fails in bootstrap 47665/head
authorAdam King <adking@redhat.com>
Wed, 17 Aug 2022 20:54:54 +0000 (16:54 -0400)
committerAdam King <adking@redhat.com>
Wed, 17 Aug 2022 20:54:54 +0000 (16:54 -0400)
This is mostly useful for testing automation, but right now if applying the
spec provided with --apply-spec fails, the return code remains zero. We don't
want to error out entirely in that case as we still want to print the remaining
output (e.g. the dashboard password). Continuing onward and then returning a
nonzero code could provide a balance where we still give all the output but
still have something to make it easier for those writing automation around bootstrap.

Fixes: https://tracker.ceph.com/issues/57173
Signed-off-by: Adam King <adking@redhat.com>
src/cephadm/cephadm

index 049048f346f4edbdb0bf41020a091452e1d55c73..d92451165d2480d29d19bbd0b6010da7e72e3312 100755 (executable)
@@ -5528,6 +5528,8 @@ def save_cluster_config(ctx: CephadmContext, uid: int, gid: int, fsid: str) -> N
 def command_bootstrap(ctx):
     # type: (CephadmContext) -> int
 
+    ctx.error_code = 0
+
     if not ctx.output_config:
         ctx.output_config = os.path.join(ctx.output_dir, CEPH_CONF)
     if not ctx.output_keyring:
@@ -5746,6 +5748,7 @@ def command_bootstrap(ctx):
             out = cli(['orch', 'apply', '-i', '/tmp/spec.yml'], extra_mounts=mounts)
             logger.info(out)
         except Exception:
+            ctx.error_code = -errno.EINVAL
             logger.info('\nApplying %s to cluster failed!\n' % ctx.apply_spec)
 
     save_cluster_config(ctx, uid, gid, fsid)
@@ -5771,7 +5774,7 @@ def command_bootstrap(ctx):
                 'For more information see:\n\n'
                 '\thttps://docs.ceph.com/en/latest/mgr/telemetry/\n')
     logger.info('Bootstrap complete.')
-    return 0
+    return ctx.error_code
 
 ##################################