]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/ConfigMonitor: add 'config log' command
authorSage Weil <sage@redhat.com>
Mon, 5 Mar 2018 01:24:57 +0000 (19:24 -0600)
committerSage Weil <sage@redhat.com>
Sat, 17 Mar 2018 16:09:04 +0000 (11:09 -0500)
Show recent config changes.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/ConfigMonitor.cc
src/mon/ConfigMonitor.h
src/mon/MonCommands.h

index da2de3cd7fb8b3b46275cad3b5a91183a740a215..5772fdf06546650512672bd06f57169bf17cea83 100644 (file)
@@ -308,6 +308,28 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op)
        f->flush(odata);
       }
     }
+  } else if (prefix == "config log") {
+    int64_t num = 10;
+    cmd_getval(g_ceph_context, cmdmap, "num", num);
+    ostringstream ds;
+    if (f) {
+      f->open_array_section("changesets");
+    }
+    for (version_t v = version; v > version - std::min(version, (version_t)num); --v) {
+      ConfigChangeSet ch;
+      load_changeset(v, &ch);
+      if (f) {
+       f->dump_object("changeset", ch);
+      } else {
+       ch.print(ds);
+      }
+    }
+    if (f) {
+      f->close_section();
+      f->flush(odata);
+    } else {
+      odata.append(ds.str());
+    }
   } else {
     return false;
   }
index e705534186c9edbf1cb781adf1fc53bf9662409e..ace33ae082a62a95afd4e66fe29ee630a6864ed9 100644 (file)
@@ -25,6 +25,7 @@ public:
   void init() override;
 
   void load_config();
+  void load_changeset(version_t v, ConfigChangeSet *ch);
 
   bool preprocess_query(MonOpRequestRef op) override;
   bool prepare_update(MonOpRequestRef op) override;
index 9b5adf625a36ea2639bf47a329e00bf315ea563c..90d5e2c2aae18458fa269ae2681b3ac558130493 100644 (file)
@@ -1117,3 +1117,7 @@ COMMAND("config help " \
 COMMAND("config assimilate-conf",
        "Assimilate options from a conf, and return a new, minimal conf file",
        "config", "rw", "cli,rest")
+COMMAND("config log name=num,type=CephInt,req=False",
+       "Show recent history of config changes",
+       "config", "r", "cli,rest")
+