Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
(cherry picked from commit
1c2886964a0c005545abab0cf8feae7e06ac02a8)
Conflicts:
src/mon/MonCommands.h
src/mon/OSDMonitor.cc
mon: ceph hashpspool false clears the flag
instead of toggling it.
Signed-off-by: Loic Dachary <loic@dachary.org>
Reviewed-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
(cherry picked from commit
589e2fa485b94244c79079f249428d4d545fca18
Replace some of the infrastructure required by this command that
was not present in Dumpling with single-use code.
Signed-off-by: Greg Farnum <greg@inktank.com>
ceph osd pool get data size | grep 'size: 3'
ceph osd pool set data size 2
+ceph osd pool set data hashpspool 1
+ceph osd pool set data hashpspool 0
+
ceph osd pool get rbd crush_ruleset | grep 'crush_ruleset: 2'
ceph osd thrash 10
"get pool parameter <var>", "osd", "r", "cli,rest")
COMMAND("osd pool set " \
"name=pool,type=CephPoolname " \
- "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset " \
+ "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool " \
"name=val,type=CephInt", \
"set pool parameter <var> to <val>", "osd", "rw", "cli,rest")
// 'val' is a CephString because it can include a unit. Perhaps
ss << "crush ruleset " << n << " does not exist";
err = -ENOENT;
}
- }
+ } else if (var == "hashpspool") {
+ pg_pool_t new_pool = *p;
+ if (pending_inc.new_pools.count(pool))
+ new_pool = pending_inc.new_pools[pool];
+ if (n == 1) {
+ new_pool.flags |= pg_pool_t::FLAG_HASHPSPOOL;
+ ss << "set";
+ } else if (n == 0) {
+ new_pool.flags &= ~pg_pool_t::FLAG_HASHPSPOOL;
+ ss << "unset";
+ } else {
+ ss << "expecting value 1 or 0";
+ err = -EINVAL;
+ }
+ pending_inc.new_pools[pool] = new_pool;
+ ss << " pool " << pool << " flag hashpspool";
+ }
+
pending_inc.new_pools[pool].last_change = pending_inc.epoch;
getline(ss, rs);
wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));