]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: MonCommands: accept FLAG(f) instead of 'f' in command sig
authorJoao Eduardo Luis <joao@suse.de>
Fri, 8 May 2015 14:47:55 +0000 (15:47 +0100)
committerJoao Eduardo Luis <joao@suse.de>
Thu, 16 Jul 2015 11:20:02 +0000 (12:20 +0100)
This allows us to do nifty stuff like 'FLAG(foo) | FLAG(bar)' and expand
it to (MonCommand::FLAG_foo | MonCommand::FLAG_bar), instead of being
bound by a single flag on macro expansion.

Signed-off-by: Joao Eduardo Luis <joao@suse.de>
src/mon/MonCommands.h
src/mon/Monitor.cc
src/test/common/get_command_descriptions.cc

index cf9fe963a32c1c947db7cda5806d0c35e8f7eb0e..c28cec91a6582835c8572dca3d0ee43a4d613cb8 100644 (file)
  * type, so the monitor is expected to know the type of each argument.
  * See cmdparse.cc/h for more details.
  *
- * The flag parameter for COMMAND_WITH_FLAGS macro may be:
+ * The flag parameter for COMMAND_WITH_FLAGS macro must be passed using
+ * FLAG(f), where 'f' may be one of the following:
  *
  *  NOFORWARD - command may not be forwarded
  */
@@ -216,7 +217,7 @@ COMMAND("auth del " \
  * Monitor commands (Monitor.cc)
  */
 COMMAND_WITH_FLAG("compact", "cause compaction of monitor's leveldb storage", \
-            "mon", "rw", "cli,rest", NOFORWARD)
+            "mon", "rw", "cli,rest", FLAG(NOFORWARD))
 COMMAND("scrub", "scrub the monitor stores", "mon", "rw", "cli,rest")
 COMMAND("fsid", "show cluster FSID/UUID", "mon", "r", "cli,rest")
 COMMAND("log name=logtext,type=CephString,n=N", \
@@ -224,7 +225,7 @@ COMMAND("log name=logtext,type=CephString,n=N", \
 COMMAND_WITH_FLAG("injectargs " \
             "name=injected_args,type=CephString,n=N",                  \
             "inject config arguments into monitor", "mon", "rw", "cli,rest",
-            NOFORWARD)
+            FLAG(NOFORWARD))
 COMMAND("status", "show cluster status", "mon", "r", "cli,rest")
 COMMAND("health name=detail,type=CephChoices,strings=detail,req=false", \
        "show cluster health", "mon", "r", "cli,rest")
@@ -240,7 +241,7 @@ COMMAND("mon_metadata name=id,type=CephString",
        "mon", "r", "cli,rest")
 
 COMMAND_WITH_FLAG("mon_status", "report status of monitors", "mon", "r", "cli,rest",
-            NOFORWARD)
+            FLAG(NOFORWARD))
 COMMAND("sync force " \
        "name=validate1,type=CephChoices,strings=--yes-i-really-mean-it,req=false " \
        "name=validate2,type=CephChoices,strings=--i-know-what-i-am-doing,req=false", \
@@ -248,7 +249,7 @@ COMMAND("sync force " \
 COMMAND_WITH_FLAG("heap " \
             "name=heapcmd,type=CephChoices,strings=dump|start_profiler|stop_profiler|release|stats", \
             "show heap usage info (available only if compiled with tcmalloc)", \
-            "mon", "rw", "cli,rest", NOFORWARD)
+            "mon", "rw", "cli,rest", FLAG(NOFORWARD))
 COMMAND("quorum name=quorumcmd,type=CephChoices,strings=enter|exit,n=1", \
        "enter or exit quorum", "mon", "rw", "cli,rest")
 COMMAND("tell " \
@@ -256,7 +257,8 @@ COMMAND("tell " \
        "name=args,type=CephString,n=N", \
        "send a command to a specific daemon", "mon", "rw", "cli,rest")
 COMMAND_WITH_FLAG("version", "show mon daemon version", "mon", "r", "cli,rest",
-            NOFORWARD)
+                  FLAG(NOFORWARD))
+
 COMMAND("node ls " \
        "name=type,type=CephChoices,strings=all|osd|mon|mds,req=false",
        "list all nodes in cluster [type]", "mon", "r", "cli,rest")
index 6950aad8ab918ae666fe608e886f62a7574fc051..09a46db69ad1a045f0309310ab00be784d0040d3 100644 (file)
@@ -96,13 +96,15 @@ const string Monitor::MONITOR_NAME = "monitor";
 const string Monitor::MONITOR_STORE_PREFIX = "monitor_store";
 
 
+#undef FLAG
 #undef COMMAND
 #undef COMMAND_WITH_FLAG
 MonCommand mon_commands[] = {
+#define FLAG(f) (MonCommand::FLAG_##f)
 #define COMMAND(parsesig, helptext, modulename, req_perms, avail)      \
   {parsesig, helptext, modulename, req_perms, avail, 0},
-#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flag) \
-  {parsesig, helptext, modulename, req_perms, avail, MonCommand::FLAG_##flag},
+#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flags) \
+  {parsesig, helptext, modulename, req_perms, avail, flags},
 #include <mon/MonCommands.h>
 };
 #undef COMMAND
index 7cc5b6ab1dec8ddd31fd253d4120604e63d350ee..eb4c0f9db91b5341ee9862738279ccebb95d362e 100644 (file)
@@ -53,13 +53,15 @@ static void json_print(const MonCommand *mon_commands, int size)
 
 static void all()
 {
+#undef FLAG
 #undef COMMAND
 #undef COMMAND_WITH_FLAG
   MonCommand mon_commands[] = {
+#define FLAG(f) (MonCommand::FLAG_##f)
 #define COMMAND(parsesig, helptext, modulename, req_perms, avail)      \
     {parsesig, helptext, modulename, req_perms, avail, 0},
-#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flag) \
-    {parsesig, helptext, modulename, req_perms, avail, MonCommand::FLAG_##flag},
+#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flags) \
+    {parsesig, helptext, modulename, req_perms, avail, flags},
 #include <mon/MonCommands.h>
   };