// --- PG commands are routed here to PG::do_command ---
if (prefix == "pg" ||
prefix == "query" ||
+ prefix == "log" ||
prefix == "mark_unfound_lost" ||
prefix == "list_unfound" ||
prefix == "scrub" ||
asok_hook,
"");
ceph_assert(r == 0);
+ r = admin_socket->register_command(
+ "pg " \
+ "name=pgid,type=CephPgid " \
+ "name=cmd,type=CephChoices,strings=log",
+ asok_hook,
+ "");
+ ceph_assert(r == 0);
r = admin_socket->register_command(
"pg " \
"name=pgid,type=CephPgid " \
asok_hook,
"show details of a specific pg");
ceph_assert(r == 0);
+ r = admin_socket->register_command(
+ "log",
+ asok_hook,
+ "dump pg_log of a specific pg");
+ ceph_assert(r == 0);
r = admin_socket->register_command(
"mark_unfound_lost " \
"name=pgid,type=CephPgid,req=false " \
f->close_section();
}
-
+ else if (prefix == "log") {
+
+ f->open_object_section("op_log");
+ f->open_object_section("pg_log_t");
+ recovery_state.get_pg_log().get_log().dump(f.get());
+ f->close_section();
+ f->close_section();
+ }
else if (prefix == "mark_unfound_lost") {
string mulcmd;
cmd_getval(cmdmap, "mulcmd", mulcmd);