diff options
author | Sage Weil <sage@inktank.com> | 2013-10-14 16:46:58 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-14 16:46:58 -0700 |
commit | e2602c549f8b24077be9461457b97c7308e035bf (patch) | |
tree | 77a5604f11601533dd1c2f7fff56bcac41ba6456 | |
parent | fea1e0e56cbd3d82a173b50532ff51b8bcee9359 (diff) | |
download | ceph-e2602c549f8b24077be9461457b97c7308e035bf.tar.gz |
mon: make 'mon {add,remove}_data_pool ...' take pool name or id
Take either a pool name or an id. Fix up the tests accordingly.
Signed-off-by: Sage Weil <sage@inktank.com>
-rwxr-xr-x | qa/workunits/cephtool/test.sh | 2 | ||||
-rwxr-xr-x | qa/workunits/misc/mkpool_layout_vxattrs.sh | 8 | ||||
-rw-r--r-- | src/mon/MDSMonitor.cc | 51 | ||||
-rw-r--r-- | src/mon/MonCommands.h | 8 |
4 files changed, 48 insertions, 21 deletions
diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 09e55b9a842..338bde5700c 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -147,7 +147,9 @@ ceph mds newfs 0 1 --yes-i-really-mean-it ceph osd pool create data2 10 poolnum=$(ceph osd dump | grep 'pool.*data2' | awk '{print $2;}') ceph mds add_data_pool $poolnum +ceph mds add_data_pool rbd ceph mds remove_data_pool $poolnum +ceph mds remove_data_pool rbd ceph osd pool delete data2 data2 --yes-i-really-really-mean-it ceph mds set_max_mds 4 ceph mds set_max_mds 3 diff --git a/qa/workunits/misc/mkpool_layout_vxattrs.sh b/qa/workunits/misc/mkpool_layout_vxattrs.sh index 16b3cdfe517..91d31664898 100755 --- a/qa/workunits/misc/mkpool_layout_vxattrs.sh +++ b/qa/workunits/misc/mkpool_layout_vxattrs.sh @@ -4,10 +4,12 @@ set -e touch foo.$$ rados mkpool foo.$$ -poolid=$(ceph osd dump | grep "^pool" | awk '{print $2}' | tail -n 1) -ceph mds add_data_pool ${poolid} +ceph mds add_data_pool foo.$$ setfattr -n ceph.file.layout.pool -v foo.$$ foo.$$ # cleanup -rados rmpool foo.$$ foo.$$ --yes-i-really-really-mean-it rm foo.$$ +ceph mds remove_data_pool foo.$$ +rados rmpool foo.$$ foo.$$ --yes-i-really-really-mean-it + +echo OK diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 48c1c99d584..b865c379d1a 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -951,21 +951,44 @@ bool MDSMonitor::prepare_command(MMonCommand *m) } } } else if (prefix == "mds add_data_pool") { - int64_t poolid; - cmd_getval(g_ceph_context, cmdmap, "poolid", poolid); - pending_mdsmap.add_data_pool(poolid); - ss << "added data pool " << poolid << " to mdsmap"; - r = 0; - - } else if (prefix == "mds remove_data_pool") { - int64_t poolid; - cmd_getval(g_ceph_context, cmdmap, "poolid", poolid); - r = pending_mdsmap.remove_data_pool(poolid); - if (r == -ENOENT) + string poolname; + cmd_getval(g_ceph_context, cmdmap, "pool", poolname); + int64_t poolid = mon->osdmon()->osdmap.lookup_pg_pool_name(poolname); + if (poolid < 0) { + string err; + poolid = strict_strtol(poolname.c_str(), 10, &err); + if (err.length()) { + r = -ENOENT; + poolid = -1; + ss << "pool '" << poolname << "' does not exist"; + } + } + if (poolid >= 0) { + pending_mdsmap.add_data_pool(poolid); + ss << "added data pool " << poolid << " to mdsmap"; r = 0; - if (r == 0) - ss << "removed data pool " << poolid << " from mdsmap"; - + } + } else if (prefix == "mds remove_data_pool") { + string poolname; + cmd_getval(g_ceph_context, cmdmap, "pool", poolname); + int64_t poolid = mon->osdmon()->osdmap.lookup_pg_pool_name(poolname); + if (poolid < 0) { + string err; + poolid = strict_strtol(poolname.c_str(), 10, &err); + if (err.length()) { + r = -ENOENT; + poolid = -1; + ss << "pool '" << poolname << "' does not exist"; + } + } + if (poolid >= 0) { + cmd_getval(g_ceph_context, cmdmap, "poolid", poolid); + r = pending_mdsmap.remove_data_pool(poolid); + if (r == -ENOENT) + r = 0; + if (r == 0) + ss << "removed data pool " << poolid << " from mdsmap"; + } } else if (prefix == "mds newfs") { MDSMap newmap; int64_t metadata, data; diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 33e00a98d30..a961574179c 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -284,11 +284,11 @@ COMMAND("mds unset " \ "name=sure,type=CephString,req=false", \ "unset <key>", "mds", "w", "cli,rest") COMMAND("mds add_data_pool " \ - "name=poolid,type=CephInt,range=0", \ - "add data pool <poolid>", "mds", "rw", "cli,rest") + "name=pool,type=CephString", \ + "add data pool <pool>", "mds", "rw", "cli,rest") COMMAND("mds remove_data_pool " \ - "name=poolid,type=CephInt,range=0", \ - "remove data pool <poolid>", "mds", "rw", "cli,rest") + "name=pool,type=CephString", \ + "remove data pool <pool>", "mds", "rw", "cli,rest") COMMAND("mds newfs " \ "name=metadata,type=CephInt,range=0 " \ "name=data,type=CephInt,range=0 " \ |