From 25d983739e75a257e9ba7a4b547268abc063e668 Mon Sep 17 00:00:00 2001 From: xinxin shu Date: Fri, 30 Jan 2015 12:58:54 +0800 Subject: [PATCH] add CLI ceph pg ls-by-pool Signed-off-by: xinxin shu --- src/mon/MonCommands.h | 4 ++++ src/mon/PGMonitor.cc | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 9a4362189561c..75552c6b40e84 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -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 " \ diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 9a366d238858c..19a7af744bdb5 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -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); } -- 2.39.5