From b41dc4108e89575f67779907e236fc155d012d29 Mon Sep 17 00:00:00 2001 From: John Spray Date: Tue, 11 Jul 2017 10:08:20 -0400 Subject: [PATCH] common: respect daemon defaults in config options Signed-off-by: John Spray --- src/common/ceph_context.cc | 13 ++++++++++++- src/common/config.cc | 10 +++++++--- src/common/config.h | 2 +- src/common/options.h | 5 ----- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index dde6854ef32..be83c442b87 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 47c93f7d41b..12f21ea7db6 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 f3117cc46eb..cb5a9a4e91c 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 388f05dc886..c8ff3f86ce4 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; -- 2.39.5