]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
honor CINIT_FLAG_NO_DEFAULT_CONFIG_FILE
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 5 Jul 2011 21:47:55 +0000 (14:47 -0700)
committerSage Weil <sage@newdream.net>
Thu, 14 Jul 2011 19:55:03 +0000 (12:55 -0700)
Don't use CEPH_CONF_FILE_DEFAULT when CINIT_FLAG_NO_DEFAULT_CONFIG_FILE
is set.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/common/config.cc
src/common/config.h
src/global/global_init.cc
src/libceph.cc
src/librados.cc
src/test/confutils.cc

index 9dde520f0cf0470e6f5084a2c2bc23a0788e28e5..b30a41ba85b53483a6aa4cd12882c4afe66e42d1 100644 (file)
@@ -491,11 +491,18 @@ remove_observer(md_config_obs_t* observer_)
 
 int md_config_t::
 parse_config_files(const char *conf_files,
-                  std::deque<std::string> *parse_errors)
+                  std::deque<std::string> *parse_errors, int flags)
 {
   if (!conf_files) {
     const char *c = getenv("CEPH_CONF");
-    conf_files = c ? c : CEPH_CONF_FILE_DEFAULT;
+    if (c) {
+      conf_files = c;
+    }
+    else {
+      if (flags & CINIT_FLAG_NO_DEFAULT_CONFIG_FILE)
+       return 0;
+      conf_files = CEPH_CONF_FILE_DEFAULT;
+    }
   }
   std::list<std::string> cfl;
   get_str_list(conf_files, cfl);
index 2d447e64737804bbb6b959fcde9c05766f0efa5b..0ee33d1a50516ac0223ed431dee49df0cac550f9 100644 (file)
@@ -72,7 +72,7 @@ public:
 
   // Parse a config file
   int parse_config_files(const char *conf_files,
-                        std::deque<std::string> *parse_errors);
+                        std::deque<std::string> *parse_errors, int flags);
 
   // Absorb config settings from the environment
   void parse_env();
index 7edd4c57bc9fdc88da8e02caae8d59a848787f01..7679936baa0a9a080037e993d89ac1d86659375f 100644 (file)
@@ -68,7 +68,7 @@ void global_init(std::vector < const char* >& args,
   md_config_t *conf = cct->_conf;
 
   std::deque<std::string> parse_errors;
-  int ret = conf->parse_config_files(c_str_or_null(conf_file_list), &parse_errors);
+  int ret = conf->parse_config_files(c_str_or_null(conf_file_list), &parse_errors, flags);
   if (ret == -EDOM) {
     dout_emergency("global_init: error parsing config file.\n");
     _exit(1);
index ca35b507157198693b162990ef1d69aea15c81c4..fe79bbadce33751dd1cd9461b2851dea0dbcd9bd 100644 (file)
@@ -132,7 +132,7 @@ public:
   int conf_read_file(const char *path_list)
   {
     std::deque<std::string> parse_errors;
-    int ret = cct->_conf->parse_config_files(path_list, &parse_errors);
+    int ret = cct->_conf->parse_config_files(path_list, &parse_errors, 0);
     if (ret)
       return ret;
     cct->_conf->apply_changes();
index 40d5df09eac6da1c99eb8ec95fec7b0b0a96e388..a77c43d821858abeae0408ec99c283a7e61abf9f 100644 (file)
@@ -3213,7 +3213,7 @@ extern "C" int rados_conf_read_file(rados_t cluster, const char *path_list)
   librados::RadosClient *client = (librados::RadosClient *)cluster;
   md_config_t *conf = client->cct->_conf;
   std::deque<std::string> parse_errors;
-  int ret = conf->parse_config_files(path_list, &parse_errors);
+  int ret = conf->parse_config_files(path_list, &parse_errors, 0);
   if (ret)
     return ret;
   conf->parse_env(); // environment variables override
index 22ddf437342576625c5dc4af032ed5e8b25fa01e..b67aadff7ae1b81a69a0c9f568ae4c7b26af00cb 100644 (file)
@@ -464,17 +464,17 @@ TEST(Overrides, ConfUtils) {
   std::string override_conf_1_f(next_tempfile(override_config_1));
 
   conf.name.set(CEPH_ENTITY_TYPE_MON, "0");
-  conf.parse_config_files(override_conf_1_f.c_str(), &err);
+  conf.parse_config_files(override_conf_1_f.c_str(), &err, 0);
   ASSERT_EQ(err.size(), 0U);
   ASSERT_EQ(conf.log_file, "global_log");
 
   conf.name.set(CEPH_ENTITY_TYPE_MDS, "a");
-  conf.parse_config_files(override_conf_1_f.c_str(), &err);
+  conf.parse_config_files(override_conf_1_f.c_str(), &err, 0);
   ASSERT_EQ(err.size(), 0U);
   ASSERT_EQ(conf.log_file, "mds_log");
 
   conf.name.set(CEPH_ENTITY_TYPE_OSD, "0");
-  conf.parse_config_files(override_conf_1_f.c_str(), &err);
+  conf.parse_config_files(override_conf_1_f.c_str(), &err, 0);
   ASSERT_EQ(err.size(), 0U);
   ASSERT_EQ(conf.log_file, "osd0_log");
 }