]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: dump json from 'sessions' asok/tell command 32974/head
authorSage Weil <sage@redhat.com>
Wed, 29 Jan 2020 21:37:03 +0000 (15:37 -0600)
committerSage Weil <sage@redhat.com>
Wed, 29 Jan 2020 21:37:03 +0000 (15:37 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/Monitor.cc
src/mon/Session.h

index bb4abfd3d234d718fa121f101ccc4ec7065793f4..807dcb27114a5ce3c6f5982c9c707977efdb3b22 100644 (file)
@@ -340,7 +340,7 @@ int Monitor::do_admin_command(
   } else if (command == "sessions") {
     f->open_array_section("sessions");
     for (auto p : session_map.sessions) {
-      f->dump_stream("session") << *p;
+      f->dump_object("session", *p);
     }
     f->close_section();
   } else if (command == "dump_historic_ops") {
index cf0de07e4e6be52960c8a25406e1546ba41f3c5c..3d190ae2602339ac0f458ab6f6b034c883cace2b 100644 (file)
@@ -109,6 +109,23 @@ struct MonSession : public RefCountedObject {
   const entity_addr_t& get_peer_socket_addr() {
     return socket_addr;
   }
+
+  void dump(Formatter *f) const {
+    f->dump_stream("name") << name;
+    f->dump_stream("entity_name") << entity_name;
+    f->dump_object("addrs", addrs);
+    f->dump_object("socket_addr", socket_addr);
+    f->dump_string("con_type", ceph_entity_type_name(con_type));
+    f->dump_unsigned("con_features", con_features);
+    f->dump_stream("con_features_hex") << std::hex << con_features << std::dec;
+    f->dump_string("con_features_release",
+                  ceph_release_name(ceph_release_from_features(con_features)));
+    f->dump_bool("open", !closed);
+    f->dump_object("caps", caps);
+    f->dump_bool("authenticated", authenticated);
+    f->dump_unsigned("osd_epoch", osd_epoch);
+    f->dump_string("remote_host", remote_host);
+  }
 };