]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
add CLI ceph pg ls-by-primary
authorxinxin shu <xinxin.shu@intel.com>
Fri, 30 Jan 2015 02:11:54 +0000 (10:11 +0800)
committerxinxin shu <xinxin.shu@intel.com>
Mon, 2 Feb 2015 05:06:21 +0000 (13:06 +0800)
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
src/mon/MonCommands.h
src/mon/PGMonitor.cc

index 9bbd1fb374c5cf305d9e27b7f32ce81eeb2b7f63..33631ee36be7537601e77757b06332ccba2eb199 100644 (file)
@@ -127,6 +127,11 @@ COMMAND("pg dump_stuck " \
        "name=threshold,type=CephInt,req=false",
        "show information about stuck pgs",\
        "pg", "r", "cli,rest")
+COMMAND("pg ls-by-primary " \
+        "name=osd,type=CephOsdName " \
+        "name=pool,type=CephInt,req=false " \
+       "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 primary = [osd]", "pg", "r", "cli,rest")
 COMMAND("pg ls " \
         "name=pool,type=CephInt,req=false " \
        "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 ", \
index 963174c6eae8f0a2365a48891dae71419c0d058c..d9f956db89ad9aece8b5357a5368a4b8d4d083d1 100644 (file)
@@ -1461,6 +1461,7 @@ bool PGMonitor::preprocess_command(MMonCommand *m)
   int r = -1;
   bufferlist rdata;
   stringstream ss, ds;
+  bool primary = false;
 
   map<string, cmd_vartype> cmdmap;
   if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
@@ -1492,7 +1493,11 @@ bool PGMonitor::preprocess_command(MMonCommand *m)
     cmd_putval(g_ceph_context, cmdmap, "format", string("json"));
     cmd_putval(g_ceph_context, cmdmap, "dumpcontents", v);
     prefix = "pg dump";
+  } else if (prefix == "pg ls-by-primary") {
+    primary = true;
+    prefix = "pg ls";
   }
+   
 
   string format;
   cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain"));
@@ -1615,7 +1620,7 @@ bool PGMonitor::preprocess_command(MMonCommand *m)
     while (!states.empty()) {
       string state = states.back();
       what.insert(state);
-      pg_map.get_filtered_pg_stats(state,pool,osd,false,pgs);
+      pg_map.get_filtered_pg_stats(state,pool,osd,primary,pgs);
       states.pop_back();
     }
     if (f && !pgs.empty()){