diff options
author | Joao Eduardo Luis <joao.luis@inktank.com> | 2013-10-09 14:58:05 +0100 |
---|---|---|
committer | Joao Eduardo Luis <joao.luis@inktank.com> | 2013-10-09 14:58:05 +0100 |
commit | c274f6c5692e19c65cb035b4b8b114b254780f9b (patch) | |
tree | 89fbd9d010b8910d4e7eed3bc07e318be6474ec8 | |
parent | b26a3026ce2ce41ca4d009dd59a0b0e7c48f38fb (diff) | |
download | ceph-c274f6c5692e19c65cb035b4b8b114b254780f9b.tar.gz |
mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set'wip-mon-set-pspool
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r-- | src/mon/OSDMonitor.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 2b089fa5335..13f752009df 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2595,6 +2595,17 @@ int OSDMonitor::prepare_command_pool_set(const map<string,cmd_vartype> &cmdmap, var == "crash_replay_interval" || var == "pg_num" || var == "pgp_num" || var == "crush_ruleset") { cmd_getval(g_ceph_context, cmdmap, "val", n); + } else if (var == "hashpspool") { + string flag; + cmd_getval(g_ceph_context, cmdmap, "val", flag); + if (flag == "true") { + n = 1; + } else if (flag == "false") { + n = 0; + } else { + ss << "unrecognized value '" << flag << "'; use 'true' or 'false'"; + return -EINVAL; + } } else { ss << "unrecognized variable '" << var << "'"; return -EINVAL; @@ -2644,6 +2655,15 @@ int OSDMonitor::prepare_command_pool_set(const map<string,cmd_vartype> &cmdmap, ss << "crush ruleset " << n << " does not exist"; err = -ENOENT; } + } else if (var == "hashpspool") { + if (val) { + pendng_inc.new_pools[pool].flags |= pg_pool_t::FLAG_HASHPSPOOL; + ss << "set"; + } else { + pending_inc_new_pools[pool].flags ^= pg_pool_t::FLAG_HASHPSPOOL; + ss << "unset"; + } + ss << " pool " << pool << " flag hashpspool"; } return 0; } |