]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: set CINIT_FLAG_NO_DAEMON_ACTIONS when appropriate
authorLoic Dachary <loic@dachary.org>
Sun, 29 Dec 2013 11:18:02 +0000 (12:18 +0100)
committerLoic Dachary <loic@dachary.org>
Tue, 31 Dec 2013 12:46:38 +0000 (13:46 +0100)
--mkfs, --inject_monmap and --extract-monmap are no daemon actions.

Signed-off-by: Loic Dachary <loic@dachary.org>
src/ceph_mon.cc

index e4e402991199fc5ddf1e1bfaa2c36806b5f68e82..49e4fb936cfc28103e0169e7764d5d6dc77c07fc 100644 (file)
@@ -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<const char*> args_copy = args;
+    std::string val;
+    for (std::vector<const char*>::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;