]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: OSDMonitor: formatter output on 'osd map'
authorDan Mick <dan.mick@inktank.com>
Thu, 11 Jul 2013 00:26:34 +0000 (17:26 -0700)
committerDan Mick <dan.mick@inktank.com>
Thu, 11 Jul 2013 03:58:51 +0000 (20:58 -0700)
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/mon/OSDMonitor.cc

index 1a1884ee760824d17a96ac1f684a3a54520e37a2..aaaf66183547e91732c023f63464b7eb49a1db02 100644 (file)
@@ -2081,16 +2081,32 @@ bool OSDMonitor::preprocess_command(MMonCommand *m)
     pg_t mpgid = osdmap.raw_pg_to_pg(pgid);
     vector<int> up, acting;
     osdmap.pg_to_up_acting_osds(mpgid, up, acting);
+
     string fullobjname;
     if (!namespacestr.empty())
       fullobjname = namespacestr + string("/") + oid.name;
     else
       fullobjname = oid.name;
-    ds << "osdmap e" << osdmap.get_epoch()
-       << " pool '" << poolstr << "' (" << pool << ") object '" << fullobjname << "' ->"
-       << " pg " << pgid << " (" << mpgid << ")"
-       << " -> up " << up << " acting " << acting;
-    rdata.append(ds);
+    if (f) {
+      f->open_object_section("osd_map");
+      f->dump_int("epoch", osdmap.get_epoch());
+      f->dump_string("pool", poolstr);
+      f->dump_int("pool_id", pool);
+      f->dump_stream("objname") << fullobjname;
+      f->dump_stream("raw_pgid") << pgid;
+      f->dump_stream("pgid") << mpgid;
+      f->dump_stream("up") << up;
+      f->dump_stream("acting") << acting;
+      f->close_section(); // osd_map
+      f->flush(rdata);
+    } else {
+      ds << "osdmap e" << osdmap.get_epoch()
+        << " pool '" << poolstr << "' (" << pool << ")"
+        << " object '" << fullobjname << "' ->"
+        << " pg " << pgid << " (" << mpgid << ")"
+        << " -> up " << up << " acting " << acting;
+      rdata.append(ds);
+    }
   } else if ((prefix == "osd scrub" ||
              prefix == "osd deep-scrub" ||
              prefix == "osd repair")) {