]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: respect daemon defaults in config options
authorJohn Spray <john.spray@redhat.com>
Tue, 11 Jul 2017 14:08:20 +0000 (10:08 -0400)
committerJohn Spray <john.spray@redhat.com>
Fri, 21 Jul 2017 10:27:26 +0000 (06:27 -0400)
Signed-off-by: John Spray <john.spray@redhat.com>
src/common/ceph_context.cc
src/common/config.cc
src/common/config.h
src/common/options.h

index dde6854ef327bbcee8903fd55063d7d93893d529..be83c442b87ae96a08edd24db463579a62061dec 100644 (file)
@@ -530,9 +530,20 @@ void CephContext::do_command(std::string command, cmdmap_t& cmdmap,
 }
 
 
+static bool is_daemon(uint32_t module_type)
+{
+  if (module_type == CEPH_ENTITY_TYPE_OSD ||
+      module_type == CEPH_ENTITY_TYPE_MDS ||
+      module_type == CEPH_ENTITY_TYPE_MON) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
 CephContext::CephContext(uint32_t module_type_, int init_flags_)
   : nref(1),
-    _conf(new md_config_t()),
+    _conf(new md_config_t(is_daemon(module_type_))),
     _log(NULL),
     _module_type(module_type_),
     _init_flags(init_flags_),
index 47c93f7d41b5a30c571bed74887287103003010d..12f21ea7db6c18e87f6812f8dd5731a15440b91d 100644 (file)
@@ -74,7 +74,7 @@ int ceph_resolve_file_search(const std::string& filename_list,
 
 
 
-md_config_t::md_config_t()
+md_config_t::md_config_t(bool is_daemon)
   : cluster(""),
   lock("md_config_t", true, false)
 {
@@ -112,8 +112,12 @@ md_config_t::md_config_t()
 
   // Load default values from the schema
   for (const auto &i : schema) {
-    // TODO: select daemon default if appropriate.
-    values[i.first] = i.second.value;
+    bool has_daemon_default = !boost::get<boost::blank>(&i.second.daemon_value);
+    if (is_daemon && has_daemon_default) {
+      values[i.first] = i.second.daemon_value;
+    } else {
+      values[i.first] = i.second.value;
+    }
   }
 
   // Copy out values (defaults) into any legacy (C struct member) fields
index f3117cc46eb991c92e9cc6a53155a355150bce1e..cb5a9a4e91c1c665c2b7b059abd59fed01f0c503 100644 (file)
@@ -103,7 +103,7 @@ public:
    } opt_type_t;
 
   // Create a new md_config_t structure.
-  md_config_t();
+  md_config_t(bool is_daemon=false);
   ~md_config_t();
 
   // Adds a new observer to this configuration. You can do this at any time,
index 388f05dc88608a488cfb14b823cefd74a565a44d..c8ff3f86ce4aa7011b170c8334dcf097d214846f 100644 (file)
@@ -57,7 +57,6 @@ struct Option {
 
   value_t value;
   value_t daemon_value;
-  value_t nondaemon_value;
 
   std::list<std::string> tags;
   std::list<std::string> see_also;
@@ -151,10 +150,6 @@ struct Option {
   Option& set_daemon_default(const T& v) {
     return set_value(daemon_value, v);
   }
-  template<typename T>
-  Option& set_nondaemon_default(const T& v) {
-    return set_value(nondaemon_value, v);
-  }
   Option& add_tag(const char* t) {
     tags.push_back(t);
     return *this;