diff options
-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; |