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);
// 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();
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);
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();
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
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");
}