From: John Spray Date: Tue, 11 Jul 2017 14:08:20 +0000 (-0400) Subject: common: respect daemon defaults in config options X-Git-Tag: v12.1.2~192^2~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b41dc4108e89575f67779907e236fc155d012d29;p=ceph.git common: respect daemon defaults in config options Signed-off-by: John Spray --- diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index dde6854ef327..be83c442b87a 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -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_), diff --git a/src/common/config.cc b/src/common/config.cc index 47c93f7d41b5..12f21ea7db6c 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -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(&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 diff --git a/src/common/config.h b/src/common/config.h index f3117cc46eb9..cb5a9a4e91c1 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -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, diff --git a/src/common/options.h b/src/common/options.h index 388f05dc8860..c8ff3f86ce4a 100644 --- a/src/common/options.h +++ b/src/common/options.h @@ -57,7 +57,6 @@ struct Option { value_t value; value_t daemon_value; - value_t nondaemon_value; std::list tags; std::list see_also; @@ -151,10 +150,6 @@ struct Option { Option& set_daemon_default(const T& v) { return set_value(daemon_value, v); } - template - 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;