]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add MonCommand::FLAG_TELL 31722/head
authorKefu Chai <kchai@redhat.com>
Fri, 20 Dec 2019 07:53:43 +0000 (15:53 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 20 Dec 2019 07:56:04 +0000 (15:56 +0800)
MonCommand::FLAG_TELL implies NOFORWARD and HIDDEN, so we don't need to
specify both of them.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/mon/MonCommand.h
src/mon/MonCommands.h
src/mon/Monitor.cc

index 97c49127cca137ea303dd16b38c3d2840c6439a2..af856510952182c76e254c511bdd9bf1caa11c8c 100644 (file)
@@ -31,6 +31,9 @@ struct MonCommand {
   static const uint64_t FLAG_MGR        = 1 << 3;
   static const uint64_t FLAG_POLL       = 1 << 4;
   static const uint64_t FLAG_HIDDEN     = 1 << 5;
+  // asok and tell commands are not forwarded, and they should not be listed
+  // in --help output.
+  static const uint64_t FLAG_TELL       = (FLAG_NOFORWARD | FLAG_HIDDEN);
 
   bool has_flag(uint64_t flag) const { return (flags & flag) != 0; }
   void set_flag(uint64_t flag) { flags |= flag; }
@@ -76,6 +79,10 @@ struct MonCommand {
        module == o->module && req_perms == o->req_perms;
   }
 
+  bool is_tell() const {
+    return has_flag(MonCommand::FLAG_TELL);
+  }
+
   bool is_noforward() const {
     return has_flag(MonCommand::FLAG_NOFORWARD);
   }
index 94a154e0ab0170ac0a53ce896ef5ecec8faab9a7..b05253339896e0c65f8451528e5c6b72936e89e1 100644 (file)
  *  POLL      - command is intended to be called periodically by the
  *              client (see iostat)
  *  HIDDEN    - command is hidden (no reported by help etc)
+ *  TELL      - tell/asok command. it's an alias of (NOFORWARD | HIDDEN)
  *
  * A command should always be first considered DEPRECATED before being
  * considered OBSOLETE, giving due consideration to users and conforming
@@ -190,7 +191,7 @@ COMMAND("auth rm "
  */
 COMMAND_WITH_FLAG("compact", "cause compaction of monitor's leveldb/rocksdb storage",
             "mon", "rw",
-             FLAG(NOFORWARD))
+             FLAG(TELL))
 COMMAND_WITH_FLAG("scrub", "scrub the monitor stores",
              "mon", "rw",
              FLAG(OBSOLETE))
@@ -243,7 +244,7 @@ COMMAND("tell "
        "name=args,type=CephString,n=N",
        "send a command to a specific daemon", "mon", "rw")
 COMMAND_WITH_FLAG("version", "show mon daemon version", "mon", "r",
-                  FLAG(NOFORWARD))
+                  FLAG(TELL))
 
 COMMAND("node ls "
        "name=type,type=CephChoices,strings=all|osd|mon|mds|mgr,req=false",
@@ -1238,45 +1239,57 @@ COMMAND("config generate-minimal-conf",
 // that shunts these off to the asok machinery.
 
 COMMAND_WITH_FLAG("injectargs "
-            "name=injected_args,type=CephString,n=N",
-            "inject config arguments into monitor", "mon", "rw",
-                 FLAG(NOFORWARD)|FLAG(HIDDEN))
+           "name=injected_args,type=CephString,n=N",
+           "inject config arguments into monitor", "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("smart name=devid,type=CephString,req=false",
-                 "Query health metrics for underlying device",
-                 "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
-COMMAND_WITH_FLAG("mon_status", "report status of monitors", "mon", "r",
-                 FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "Query health metrics for underlying device",
+           "mon", "rw",
+            FLAG(TELL))
+COMMAND_WITH_FLAG("mon_status",
+           "report status of monitors",
+           "mon", "r",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("heap "
             "name=heapcmd,type=CephChoices,strings=dump|start_profiler|stop_profiler|release|stats "
             "name=value,type=CephString,req=false",
             "show heap usage info (available only if compiled with tcmalloc)",
-                 "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+           "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("sync_force "
             "name=validate,type=CephChoices,strings=--yes-i-really-mean-it,req=false",
             "force sync of and clear monitor store",
-            "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("add_bootstrap_peer_hint "
             "name=addr,type=CephIPAddr",
             "add peer address as potential bootstrap "
             "peer for cluster bringup",
-            "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("add_bootstrap_peer_hintv "
             "name=addrv,type=CephString",
             "add peer address vector as potential bootstrap "
             "peer for cluster bringup",
-            "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("quorum enter ",
             "force monitor back into quorum",
-            "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("quorum exit",
             "force monitor out of the quorum",
-            "mon", "rw", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "rw",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("ops",
             "show the ops currently in flight",
-            "mon", "r", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "r",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("sessions",
             "list existing sessions",
-            "mon", "r", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "r",
+            FLAG(TELL))
 COMMAND_WITH_FLAG("dump_historic_ops",
             "dump_historic_ops",
-            "mon", "r", FLAG(NOFORWARD)|FLAG(HIDDEN))
+            "mon", "r",
+            FLAG(TELL))
index 9e04d076ffb67d92fb892ed8c0f8fc4bd01a5410..93ae00fd7f0d02a33d6aa58e71743327eaf0e68d 100644 (file)
@@ -852,8 +852,7 @@ int Monitor::preinit()
   l.unlock();
   // register tell/asock commands
   for (const auto& command : local_mon_commands) {
-    // all asock commands are noforward, vice versa
-    if (!command.is_noforward()) {
+    if (!command.is_tell()) {
       continue;
     }
     const auto prefix = cmddesc_get_prefix(command.cmdstring);