]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
add CLI ceph pg ls-by-pool
authorxinxin shu <xinxin.shu@intel.com>
Fri, 30 Jan 2015 04:58:54 +0000 (12:58 +0800)
committerxinxin shu <xinxin.shu@intel.com>
Tue, 10 Feb 2015 00:11:25 +0000 (08:11 +0800)
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
src/mon/MonCommands.h
src/mon/PGMonitor.cc

index 9a4362189561c5abdc303c819610557c5bdd8ec3..75552c6b40e84a7426863e29d3af25d21bc77eb0 100644 (file)
@@ -127,6 +127,10 @@ COMMAND("pg dump_stuck " \
        "name=threshold,type=CephInt,req=false",
        "show information about stuck pgs",\
        "pg", "r", "cli,rest")
+COMMAND("pg ls-by-pool " \
+        "name=poolstr,type=CephString " \
+       "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \
+       "list pg with pool = [poolname | poolid]", "pg", "r", "cli,rest")
 COMMAND("pg ls-by-primary " \
         "name=osd,type=CephOsdName " \
         "name=pool,type=CephInt,req=false " \
index 9a366d238858c932e98facfdad13e9f129ffbe7e..19a7af744bdb536b70b854e327c74f012b71ac93 100644 (file)
@@ -1498,6 +1498,20 @@ bool PGMonitor::preprocess_command(MMonCommand *m)
     prefix = "pg ls";
   } else if (prefix == "pg ls-by-osd") {
     prefix = "pg ls";
+  } else if (prefix == "pg ls-by-pool") {
+    prefix = "pg ls";
+    string poolstr;
+    cmd_getval(g_ceph_context, cmdmap, "poolstr", poolstr);
+    int64_t pool = -2;
+    pool = mon->osdmon()->osdmap.lookup_pg_pool_name(poolstr.c_str());
+    if (pool < 0) {
+      r = -ENOENT;
+      ss << "pool " << poolstr << " does not exist";
+      string rs = ss.str();
+      mon->reply_command(m, r, rs, get_last_committed());
+      return true;
+    }
+    cmd_putval(g_ceph_context, cmdmap, "pool", pool);
   }