COMMAND("pg send_pg_creates", "trigger pg creates to be issued",\
"pg", "rw", "cli,rest")
COMMAND("pg dump " \
- "name=dumpcontents,type=CephChoices,strings=all|summary|sum|pools|osds|pgs,n=N,req=false", \
+ "name=dumpcontents,type=CephChoices,strings=all|summary|sum|pools|osds|pgs|pgs_brief,n=N,req=false", \
"show human-readable versions of pg map", "pg", "r", "cli,rest")
COMMAND("pg dump_json " \
"name=dumpcontents,type=CephChoices,strings=all|summary|sum|pools|osds|pgs,n=N,req=false", \
void PGMap::dump(Formatter *f) const
{
dump_basic(f);
- dump_pg_stats(f);
+ dump_pg_stats(f, false);
dump_pool_stats(f);
dump_osd_stats(f);
}
f->close_section();
}
-void PGMap::dump_pg_stats(Formatter *f) const
+void PGMap::dump_pg_stats(Formatter *f, bool brief) const
{
f->open_array_section("pg_stats");
for (hash_map<pg_t,pg_stat_t>::const_iterator i = pg_stat.begin();
++i) {
f->open_object_section("pg_stat");
f->dump_stream("pgid") << i->first;
- i->second.dump(f);
+ if (brief)
+ i->second.dump_brief(f);
+ else
+ i->second.dump(f);
f->close_section();
}
f->close_section();
void dump(Formatter *f) const;
void dump_basic(Formatter *f) const;
- void dump_pg_stats(Formatter *f) const;
+ void dump_pg_stats(Formatter *f, bool brief) const;
void dump_pool_stats(Formatter *f) const;
void dump_osd_stats(Formatter *f) const;
pg_map.dump_osd_stats(f.get());
}
if (what.count("pgs")) {
- pg_map.dump_pg_stats(f.get());
+ pg_map.dump_pg_stats(f.get(), false);
+ }
+ if (what.count("pgs_brief")) {
+ pg_map.dump_pg_stats(f.get(), true);
}
}
f->flush(ds);
f->close_section();
}
+void pg_stat_t::dump_brief(Formatter *f) const
+{
+ f->dump_string("state", pg_state_string(state));
+ f->open_array_section("up");
+ for (vector<int>::const_iterator p = up.begin(); p != up.end(); ++p)
+ f->dump_int("osd", *p);
+ f->close_section();
+ f->open_array_section("acting");
+ for (vector<int>::const_iterator p = acting.begin(); p != acting.end(); ++p)
+ f->dump_int("osd", *p);
+ f->close_section();
+}
+
void pg_stat_t::encode(bufferlist &bl) const
{
ENCODE_START(13, 8, bl);
}
void dump(Formatter *f) const;
+ void dump_brief(Formatter *f) const;
void encode(bufferlist &bl) const;
void decode(bufferlist::iterator &bl);
static void generate_test_instances(list<pg_stat_t*>& o);