From: Sage Weil Date: Mon, 5 Mar 2018 01:24:57 +0000 (-0600) Subject: mon/ConfigMonitor: add 'config log' command X-Git-Tag: v13.1.0~385^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=27eb0aedbe8c84a14d16767e7bd1f582b7830647;p=ceph.git mon/ConfigMonitor: add 'config log' command Show recent config changes. Signed-off-by: Sage Weil --- diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index da2de3cd7fb8..5772fdf06546 100644 --- a/src/mon/ConfigMonitor.cc +++ b/src/mon/ConfigMonitor.cc @@ -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; } diff --git a/src/mon/ConfigMonitor.h b/src/mon/ConfigMonitor.h index e705534186c9..ace33ae082a6 100644 --- a/src/mon/ConfigMonitor.h +++ b/src/mon/ConfigMonitor.h @@ -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; diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 9b5adf625a36..90d5e2c2aae1 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -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") +