From d9dfece0dc6804dcf17171f93ab75516fbae256b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 5 Jan 2018 16:24:44 -0600 Subject: [PATCH] mon/ConfigMonitor: include LEVEL column in config dump|get Signed-off-by: Sage Weil --- src/common/options.h | 4 ++-- src/mon/ConfigMap.cc | 4 ++-- src/mon/ConfigMap.h | 2 +- src/mon/ConfigMonitor.cc | 10 +++++++--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/common/options.h b/src/common/options.h index ada6d03472e4b..1fb6c8b4495d6 100644 --- a/src/common/options.h +++ b/src/common/options.h @@ -45,8 +45,8 @@ struct Option { LEVEL_DEV, }; - const char *level_to_str(level_t l) const { - switch(l) { + static const char *level_to_str(level_t l) { + switch (l) { case LEVEL_BASIC: return "basic"; case LEVEL_ADVANCED: return "advanced"; case LEVEL_DEV: return "developer"; diff --git a/src/mon/ConfigMap.cc b/src/mon/ConfigMap.cc index b1228343bfdbd..3ac72f6dd342a 100644 --- a/src/mon/ConfigMap.cc +++ b/src/mon/ConfigMap.cc @@ -86,7 +86,7 @@ void ConfigMap::generate_entity_map( const CrushWrapper *crush, const std::string& device_class, std::map *out, - std::map> *src) + std::map> *src) { // global, then by type, then by full name. vector> sections = { make_pair("global", &global) }; @@ -123,7 +123,7 @@ void ConfigMap::generate_entity_map( } (*out)[i.first] = o.raw_value; if (src) { - (*src)[i.first] = make_pair(s.first, o.mask); + (*src)[i.first] = make_pair(s.first, &o); } prev = &o; } diff --git a/src/mon/ConfigMap.h b/src/mon/ConfigMap.h index 7f6de46e198e2..60cdc68d02a83 100644 --- a/src/mon/ConfigMap.h +++ b/src/mon/ConfigMap.h @@ -104,7 +104,7 @@ struct ConfigMap { const CrushWrapper *crush, const std::string& device_class, std::map *out, - std::map> *src=0); + std::map> *src=0); static bool parse_mask( const std::string& in, diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index 3b9dc704b485c..e7d0ba5bf29b7 100644 --- a/src/mon/ConfigMonitor.cc +++ b/src/mon/ConfigMonitor.cc @@ -145,6 +145,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) if (!f) { tbl.define_column("WHO", TextTable::LEFT, TextTable::LEFT); tbl.define_column("MASK", TextTable::LEFT, TextTable::LEFT); + tbl.define_column("LEVEL", TextTable::LEFT, TextTable::LEFT); tbl.define_column("OPTION", TextTable::LEFT, TextTable::LEFT); tbl.define_column("VALUE", TextTable::LEFT, TextTable::LEFT); } else { @@ -155,6 +156,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) if (!f) { tbl << s.first; tbl << i.second.mask.to_str(); + tbl << Option::level_to_str(i.second.opt->level); tbl << i.first; tbl << i.second.raw_value; tbl << TextTable::endrow; @@ -198,7 +200,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) } std::map config; - std::map> src; + std::map> src; config_map.generate_entity_map( entity, crush_location, @@ -210,6 +212,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) if (!f) { tbl.define_column("WHO", TextTable::LEFT, TextTable::LEFT); tbl.define_column("MASK", TextTable::LEFT, TextTable::LEFT); + tbl.define_column("LEVEL", TextTable::LEFT, TextTable::LEFT); tbl.define_column("OPTION", TextTable::LEFT, TextTable::LEFT); tbl.define_column("VALUE", TextTable::LEFT, TextTable::LEFT); } else { @@ -223,7 +226,8 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) } if (!f) { tbl << q->second.first; - tbl << q->second.second.to_str(); + tbl << q->second.second->mask.to_str(); + tbl << Option::level_to_str(q->second.second->opt->level); tbl << p->first; tbl << p->second; tbl << TextTable::endrow; @@ -231,7 +235,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) f->open_object_section(p->first.c_str()); f->dump_string("value", p->second); f->dump_string("section", q->second.first); - f->dump_object("mask", q->second.second); + f->dump_object("mask", q->second.second->mask); f->close_section(); } } -- 2.39.5