...in places that the return code was not being checked.
This fixes cases where an error in the config schema or the
value being passed in would cause weird failures beacuse the
set_val had not taken effect.
Signed-off-by: John Spray <john.spray@redhat.com>
return ret;
}
-void md_config_t::set_val_or_die(const std::string &key, const char *val)
+void md_config_t::set_val_or_die(const std::string &key,
+ const std::string &val,
+ bool meta)
{
- int ret = set_val(key, val);
+ std::stringstream err;
+ int ret = set_val(key, val, meta, &err);
+ if (ret != 0) {
+ std::cerr << "set_val_or_die(" << key << "): " << err.str();
+ }
assert(ret == 0);
}
// Set a configuration value, or crash
// Metavariables will be expanded.
- void set_val_or_die(const std::string &key, const char *val);
+ void set_val_or_die(const std::string &key, const std::string &val,
+ bool meta=true);
// Set a configuration value.
// Metavariables will be expanded.
const char* env = getenv("CEPH_LIB");
string directory(env ? env : ".libs");
- g_conf->set_val("erasure_code_dir", directory, false);
+ g_conf->set_val_or_die("erasure_code_dir", directory, false);
::testing::InitGoogleTest(&argc, argv);
const char* env = getenv("CEPH_LIB");
std::string directory(env ? env : ".libs");
- g_conf->set_val("erasure_code_dir", directory, false);
+ g_conf->set_val_or_die("erasure_code_dir", directory, false);
::testing::InitGoogleTest(&argc, argv);
g_ceph_context->_conf->apply_changes(NULL);
const char* env = getenv("CEPH_LIB");
string directory(env ? env : ".libs");
- g_conf->set_val("erasure_code_dir", directory, false);
+ g_conf->set_val_or_die("erasure_code_dir", directory, false);
if (vm.count("help")) {
cout << desc << std::endl;
g_ceph_context->_conf->apply_changes(NULL);
const char* env = getenv("CEPH_LIB");
std::string libs_dir(env ? env : ".libs");
- g_conf->set_val("erasure_code_dir", libs_dir, false);
+ g_conf->set_val_or_die("erasure_code_dir", libs_dir, false);
if (vm.count("help")) {
cout << desc << std::endl;
const char* env = getenv("CEPH_LIB");
if (env) {
- g_conf->set_val("erasure_code_dir", env, false);
- g_conf->set_val("plugin_dir", env, false);
+ g_conf->set_val_or_die("erasure_code_dir", env, false);
+ g_conf->set_val_or_die("plugin_dir", env, false);
}
::testing::InitGoogleTest(&argc, argv);