"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 ", \
int r = -1;
bufferlist rdata;
stringstream ss, ds;
+ bool primary = false;
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
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"));
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()){