]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/ConfigMonitor: include LEVEL column in config dump|get
authorSage Weil <sage@redhat.com>
Fri, 5 Jan 2018 22:24:44 +0000 (16:24 -0600)
committerSage Weil <sage@redhat.com>
Tue, 6 Mar 2018 20:44:48 +0000 (14:44 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/options.h
src/mon/ConfigMap.cc
src/mon/ConfigMap.h
src/mon/ConfigMonitor.cc

index ada6d03472e4bd5df5c50db89c9e6eeccb3d1fae..1fb6c8b4495d653b32f503e39514c5e44b448c67 100644 (file)
@@ -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";
index b1228343bfdbd05d85bb9ff4fb7082b2f26f52ea..3ac72f6dd342af09934a48e01f6d3d9314d110dd 100644 (file)
@@ -86,7 +86,7 @@ void ConfigMap::generate_entity_map(
   const CrushWrapper *crush,
   const std::string& device_class,
   std::map<std::string,std::string> *out,
-  std::map<std::string,pair<std::string,OptionMask>> *src)
+  std::map<std::string,pair<std::string,const MaskedOption*>> *src)
 {
   // global, then by type, then by full name.
   vector<pair<string,Section*>> 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;
     }
index 7f6de46e198e240c3c0d591a5b1507e1e87c8070..60cdc68d02a830e89c10ea6336111ee6776d47ca 100644 (file)
@@ -104,7 +104,7 @@ struct ConfigMap {
     const CrushWrapper *crush,
     const std::string& device_class,
     std::map<std::string,std::string> *out,
-    std::map<std::string,pair<std::string,OptionMask>> *src=0);
+    std::map<std::string,pair<std::string,const MaskedOption*>> *src=0);
 
   static bool parse_mask(
     const std::string& in,
index 3b9dc704b485cb5815fc3195cebe1af2500c3c80..e7d0ba5bf29b7b1f00cd00acbeb3588f43426f45 100644 (file)
@@ -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<std::string,std::string> config;
-    std::map<std::string,pair<std::string,OptionMask>> src;
+    std::map<std::string,pair<std::string,const MaskedOption*>> 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();
       }
     }