From: Loic Dachary Date: Sun, 29 Dec 2013 11:18:02 +0000 (+0100) Subject: mon: set CINIT_FLAG_NO_DAEMON_ACTIONS when appropriate X-Git-Tag: v0.75~9^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=10aa220a55a79e652b45429bb4d336a1ea0c1159;p=ceph.git mon: set CINIT_FLAG_NO_DAEMON_ACTIONS when appropriate --mkfs, --inject_monmap and --extract-monmap are no daemon actions. Signed-off-by: Loic Dachary --- diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index e4e402991199..49e4fb936cfc 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -139,7 +139,27 @@ int main(int argc, const char **argv) argv_to_vec(argc, argv, args); env_to_vec(args); - global_init(NULL, args, CEPH_ENTITY_TYPE_MON, CODE_ENVIRONMENT_DAEMON, 0); + int flags = 0; + { + vector args_copy = args; + std::string val; + for (std::vector::iterator i = args_copy.begin(); + i != args_copy.end(); ) { + if (ceph_argparse_double_dash(args_copy, i)) { + break; + } else if (ceph_argparse_flag(args_copy, i, "--mkfs", (char*)NULL)) { + flags |= CINIT_FLAG_NO_DAEMON_ACTIONS; + } else if (ceph_argparse_witharg(args_copy, i, &val, "--inject_monmap", (char*)NULL)) { + flags |= CINIT_FLAG_NO_DAEMON_ACTIONS; + } else if (ceph_argparse_witharg(args_copy, i, &val, "--extract-monmap", (char*)NULL)) { + flags |= CINIT_FLAG_NO_DAEMON_ACTIONS; + } else { + ++i; + } + } + } + + global_init(NULL, args, CEPH_ENTITY_TYPE_MON, CODE_ENVIRONMENT_DAEMON, flags); uuid_d fsid; std::string val;