diff options
author | Joao Eduardo Luis <joao.luis@inktank.com> | 2013-10-10 17:43:48 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-11 08:05:02 -0700 |
commit | 1c2886964a0c005545abab0cf8feae7e06ac02a8 (patch) | |
tree | 136c2879d59111ef4ab18121d8f39fa9d684cd74 | |
parent | 2fe0d0d97af95c22db80800f5b9da51f672d9407 (diff) | |
download | ceph-1c2886964a0c005545abab0cf8feae7e06ac02a8.tar.gz |
mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set'
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rwxr-xr-x | qa/workunits/cephtool/test.sh | 3 | ||||
-rw-r--r-- | src/mon/MonCommands.h | 2 | ||||
-rw-r--r-- | src/mon/OSDMonitor.cc | 12 |
3 files changed, 16 insertions, 1 deletions
diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 09e55b9a842..b098b13ad71 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -325,6 +325,9 @@ ceph osd pool set data size 3 ceph osd pool get data size | grep 'size: 3' ceph osd pool set data size 2 +ceph osd pool set data hashpspool true +ceph osd pool set data hashpspool false + ceph osd pool get rbd crush_ruleset | grep 'crush_ruleset: 2' ceph osd thrash 10 diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 98903befa16..d9fc56e032d 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -507,7 +507,7 @@ COMMAND("osd pool get " \ "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=CephString", \ "set pool parameter <var> to <val>", "osd", "rw", "cli,rest") // 'val' is a CephString because it can include a unit. Perhaps diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index ed458f64294..425375b29e2 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2715,6 +2715,18 @@ int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap, ss << "crush ruleset " << n << " does not exist"; return -ENOENT; } + } else if (var == "hashpspool") { + if (val == "true") { + p.flags |= pg_pool_t::FLAG_HASHPSPOOL; + ss << "set"; + } else if (val == "false") { + p.flags ^= pg_pool_t::FLAG_HASHPSPOOL; + ss << "unset"; + } else { + ss << "expecting value true or false"; + return -EINVAL; + } + ss << " pool " << pool << " flag hashpspool"; } else { ss << "unrecognized variable '" << var << "'"; return -EINVAL; |