From: Sage Weil Date: Wed, 27 Feb 2019 17:37:47 +0000 (-0600) Subject: mon/ConfigMonitor: add 'config ls' X-Git-Tag: v14.1.1~98^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=795165528ef05d397e4a83ff07ab286c83a8461a;p=ceph-ci.git mon/ConfigMonitor: add 'config ls' Signed-off-by: Sage Weil --- diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index 3e83d499a20..3e08b8a49f0 100644 --- a/src/mon/ConfigMonitor.cc +++ b/src/mon/ConfigMonitor.cc @@ -176,6 +176,31 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) } else { odata.append(ss.str()); } + } else if (prefix == "config ls") { + ostringstream ss; + if (f) { + f->open_array_section("options"); + } + for (auto& i : ceph_options) { + if (f) { + f->dump_string("option", i.name); + } else { + ss << i.name << "\n"; + } + } + for (auto& i : mon->mgrmon()->get_mgr_module_options()) { + if (f) { + f->dump_string("option", i.first); + } else { + ss << i.first << "\n"; + } + } + if (f) { + f->close_section(); + f->flush(odata); + } else { + odata.append(ss.str()); + } } else if (prefix == "config dump") { list> sections = { make_pair("global", &config_map.global) diff --git a/src/mon/MgrMonitor.h b/src/mon/MgrMonitor.h index 0fc031403b2..7d6edba958a 100644 --- a/src/mon/MgrMonitor.h +++ b/src/mon/MgrMonitor.h @@ -81,6 +81,9 @@ public: const MgrMap &get_map() const { return map; } + const std::map& get_mgr_module_options() { + return mgr_module_options; + } const Option *find_module_option(const string& name); bool in_use() const { return map.epoch > 0; } diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index d2d9812a5b0..ec2f2cc9b53 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -1162,6 +1162,9 @@ COMMAND("config help " \ "name=key,type=CephString", "Describe a configuration option", "config", "r") +COMMAND("config ls", + "List available configuration options", + "config", "r") COMMAND("config assimilate-conf", "Assimilate options from a conf, and return a new, minimal conf file", "config", "rw")