]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/config: accept initialize_list when adding option properties
authorKefu Chai <kchai@redhat.com>
Fri, 21 Jul 2017 13:01:08 +0000 (21:01 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 26 Jul 2017 16:07:38 +0000 (00:07 +0800)
it's syntax sugar, but more handly this way. and it helps to reduce
memory foot print.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/common/options.cc
src/common/options.h

index ed7dc0c9666cf3d44c5d23cc5aa24e6abdd61375..4385f83f52a6efc3309701a88817166989ffcfd7 100644 (file)
@@ -145,7 +145,7 @@ std::vector<Option> global_options = {
 
   Option("public_addr", Option::TYPE_ADDR, Option::LEVEL_BASIC)
   .set_description("public-facing address to bind to")
-  .add_service("mon mds osd mgr"),
+  .add_service({"mon", "mds", "osd", "mgr"}),
 
   Option("public_bind_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED)
   .set_default(entity_addr_t())
@@ -158,7 +158,7 @@ std::vector<Option> global_options = {
   .add_tag("network"),
 
   Option("public_network", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .add_service("mon mds osd mgr")
+  .add_service({"mon", "mds", "osd", "mgr"})
   .add_tag("network")
   .set_description(""),
 
@@ -224,39 +224,39 @@ std::vector<Option> global_options = {
   .set_default(false)
   .set_daemon_default(true)
   .set_description("whether to daemonize (background) after startup")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service")
-  .add_see_also("pid_file").add_see_also("chdir"),
+  .add_see_also({"pid_file", "chdir"}),
 
   Option("setuser", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("uid or user name to switch to on startup")
   .set_long_description("This is normally specified by the systemd unit file.")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service")
   .add_see_also("setgroup"),
 
   Option("setgroup", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("gid or group name to switch to on startup")
   .set_long_description("This is normally specified by the systemd unit file.")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service")
   .add_see_also("setuser"),
 
   Option("setuser_match_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("if set, setuser/setgroup is condition on this path matching ownership")
   .set_long_description("If setuser or setgroup are specified, and this option is non-empty, then the uid/gid of the daemon will only be changed if the file or directory specified by this option has a matching uid and/or gid.  This exists primarily to allow switching to user ceph for OSDs to be conditional on whether the osd data contents have also been chowned after an upgrade.  This is normally specified by the systemd unit file.")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service")
-  .add_see_also("setuser").add_see_also("setgroup"),
+  .add_see_also({"setuser", "setgroup"}),
 
   Option("pid_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("path to write a pid file (if any)")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service"),
 
   Option("chdir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("path to chdir(2) to after daemonizing")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service")
   .add_see_also("daemonize"),
 
@@ -264,7 +264,7 @@ std::vector<Option> global_options = {
   .set_default(true)
   .set_description("whether to register signal handlers for SIGABRT etc that dump a stack trace")
   .set_long_description("This is normally true for daemons and values for libraries.")
-  .add_service("mon mgr osd mds")
+  .add_service({"mon", "mgr", "osd", "mds"})
   .add_tag("service"),
 
   // restapi
@@ -277,7 +277,7 @@ std::vector<Option> global_options = {
   Option("erasure_code_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default(CEPH_PKGLIBDIR"/erasure-code")
   .set_description("directory where erasure-code plugins can be found")
-  .add_service("mon osd")
+  .add_service({"mon", "osd"})
   .set_safe(),
 
   // logging
@@ -285,10 +285,10 @@ std::vector<Option> global_options = {
   .set_default("")
   .set_daemon_default("/var/log/ceph/$cluster-$name.log")
   .set_description("path to log file")
-  .add_see_also("log_to_stderr")
-  .add_see_also("err_to_stderr")
-  .add_see_also("log_to_syslog")
-  .add_see_also("err_to_syslog"),
+  .add_see_also({"log_to_stderr",
+                 "err_to_stderr",
+                 "log_to_syslog",
+                 "err_to_syslog"}),
 
   Option("log_max_new", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(1000)
@@ -332,23 +332,23 @@ std::vector<Option> global_options = {
   Option("log_to_graylog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
   .set_default(false)
   .set_description("send log lines to remote graylog server")
-  .add_see_also("err_to_graylog")
-  .add_see_also("log_graylog_host")
-  .add_see_also("log_graylog_port"),
+  .add_see_also({"err_to_graylog",
+                 "log_graylog_host",
+                 "log_graylog_port"}),
 
   Option("err_to_graylog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
   .set_default(false)
   .set_description("send critical error log lines to remote graylog server")
-  .add_see_also("log_to_graylog")
-  .add_see_also("log_graylog_host")
-  .add_see_also("log_graylog_port"),
+  .add_see_also({"log_to_graylog",
+                 "log_graylog_host",
+                 "log_graylog_port"}),
 
   Option("log_graylog_host", Option::TYPE_STR, Option::LEVEL_BASIC)
   .set_default("127.0.0.1")
   .set_description("address or hostname of graylog server to log to")
-  .add_see_also("log_to_graylog")
-  .add_see_also("err_to_graylog")
-  .add_see_also("log_graylog_port"),
+  .add_see_also({"log_to_graylog",
+                 "err_to_graylog",
+                 "log_graylog_port"}),
 
   Option("log_graylog_port", Option::TYPE_INT, Option::LEVEL_BASIC)
   .set_default(12201)
index 3d0e928667140f685ff47e11872814a0fa462a58..9044d975dd330cf630ad99955e153ba8ad1067af 100644 (file)
@@ -187,22 +187,30 @@ struct Option {
   Option& set_daemon_default(const T& v) {
     return set_value(daemon_value, v);
   }
-  Option& add_tag(const char* tags_str) {
-    for (const auto t: get_str_vec(tags_str)) {
-      tags.push_back(t);
-    }
+  Option& add_tag(const char* tag) {
+    tags.push_back(tag);
     return *this;
   }
-  Option& add_service(const std::string &services_str) {
-    for (const auto s: get_str_vec(services_str)) {
-      services.push_back(s);
-    }
+  Option& add_tag(std::initializer_list<const char*> ts) {
+    tags.insert(tags.end(), ts.begin(), ts.end());
+    return *this;
+  }
+  Option& add_service(const char* service) {
+    services.push_back(service);
+    return *this;
+  }
+  Option& add_service(std::initializer_list<const char*> ss) {
+    services.insert(services.end(), ss.begin(), ss.end());
     return *this;
   }
   Option& add_see_also(const char* t) {
     see_also.push_back(t);
     return *this;
   }
+  Option& add_see_also(std::initializer_list<const char*> ts) {
+    see_also.insert(see_also.end(), ts.begin(), ts.end());
+    return *this;
+  }
   Option& set_description(const char* new_desc) {
     desc = new_desc;
     return *this;