paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version()));
return true;
}
+ } else if (m->cmd[4] == "crush_ruleset") {
+ if (osdmap.crush.rule_exists(n)) {
+ pending_inc.new_pools[pool] = osdmap.pools[pool];
+ pending_inc.new_pools[pool].v.crush_ruleset = n;
+ pending_inc.new_pools[pool].v.last_change = pending_inc.epoch;
+ ss << "set pool " << pool << " crush_ruleset to " << n;
+ getline(ss, rs);
+ paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version()));
+ return true;
+ } else {
+ ss << "crush ruleset " << n << " dne";
+ err = -ENOENT;
+ }
} else {
ss << "unrecognized pool field " << m->cmd[4];
}