]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set'
authorJoao Eduardo Luis <joao.luis@inktank.com>
Fri, 11 Oct 2013 00:43:48 +0000 (17:43 -0700)
committerSage Weil <sage@inktank.com>
Fri, 11 Oct 2013 15:05:02 +0000 (08:05 -0700)
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
qa/workunits/cephtool/test.sh
src/mon/MonCommands.h
src/mon/OSDMonitor.cc

index 09e55b9a8427437c516c5db39b43d90fae0d1316..b098b13ad7102761f200acc3d637e3c0afb9c38e 100755 (executable)
@@ -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
index 98903befa16492a8cba424d49c8c09ff65127414..d9fc56e032d1b32815bc5c86481fcb770f190acf 100644 (file)
@@ -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
index ed458f6429493faf7b903b11387a528fdf2645d3..425375b29e2f2f324226ca0dc63f0b839ac22bdd 100644 (file)
@@ -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;