From 795165528ef05d397e4a83ff07ab286c83a8461a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 27 Feb 2019 11:37:47 -0600 Subject: [PATCH] mon/ConfigMonitor: add 'config ls' Signed-off-by: Sage Weil --- src/mon/ConfigMonitor.cc | 25 +++++++++++++++++++++++++ src/mon/MgrMonitor.h | 3 +++ src/mon/MonCommands.h | 3 +++ 3 files changed, 31 insertions(+) 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") -- 2.39.5