]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: dump json from 'sessions' asok/tell command
authorSage Weil <sage@redhat.com>
Wed, 29 Jan 2020 21:37:03 +0000 (15:37 -0600)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 12 Apr 2021 19:59:41 +0000 (21:59 +0200)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 71a0d8a568bd0034cc1e6329cd20269f11635697)

Conflicts:
src/mon/Monitor.cc [ commit adf1486e46cb ("common/admin_socket:
  pass Formatter from generic infrastructure") not in nautilus ]

src/mon/Monitor.cc
src/mon/Session.h

index 40f7dd6796fd42177499af3084ea29fc92cb86f6..968294d79ccb8818625a47c77d7a425c738feb8d 100644 (file)
@@ -347,7 +347,7 @@ void Monitor::do_admin_command(std::string_view command, const cmdmap_t& cmdmap,
     if (f) {
       f->open_array_section("sessions");
       for (auto p : session_map.sessions) {
-        f->dump_stream("session") << *p;
+        f->dump_object("session", *p);
       }
       f->close_section();
       f->flush(ss);
index e1f2835756f0fee8941d13adb58d6bd8507c2ca2..aab538465be045aaa80cbc29e140c67c6ad0ce53 100644 (file)
@@ -104,6 +104,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);
+  }
 };