return err;
}
-int OSDMonitor::prepare_pool_crush_ruleset(const string &poolstr,
- const unsigned pool_type,
+int OSDMonitor::prepare_pool_crush_ruleset(const unsigned pool_type,
const string &erasure_code_profile,
const string &ruleset_name,
int *crush_ruleset,
string ruleset_name;
cmd_getval(g_ceph_context, cmdmap, "ruleset", ruleset_name);
+ string erasure_code_profile;
+ cmd_getval(g_ceph_context, cmdmap, "erasure_code_profile", erasure_code_profile);
+ if (erasure_code_profile == "")
+ erasure_code_profile = "default";
+ if (ruleset_name == "") {
+ if (erasure_code_profile == "default") {
+ ruleset_name = "erasure-code";
+ } else {
+ dout(1) << "implicitly use ruleset named after the pool: "
+ << poolstr << dendl;
+ ruleset_name = poolstr;
+ }
+ }
err = prepare_new_pool(poolstr, 0, // auid=0 for admin created pool
-1, // default crush rule
int get_erasure_code(const string &erasure_code_profile,
ErasureCodeInterfaceRef *erasure_code,
stringstream &ss);
- int prepare_pool_crush_ruleset(const string &poolstr,
- const unsigned pool_type,
+ int prepare_pool_crush_ruleset(const unsigned pool_type,
const string &erasure_code_profile,
const string &ruleset_name,
int *crush_ruleset,