From: Joao Eduardo Luis Date: Sun, 9 Jul 2017 10:27:35 +0000 (+0100) Subject: mon/Monitor: list sessions via admin socket X-Git-Tag: v12.1.1~87^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b414be7dc43e23a5a27e4619f4cc1c2a93d042a1;p=ceph-ci.git mon/Monitor: list sessions via admin socket Signed-off-by: Joao Eduardo Luis --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 9c936b1c940..e9b26f9d404 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -296,7 +296,8 @@ void Monitor::do_admin_command(string command, cmdmap_t& cmdmap, string format, bool read_only = (command == "mon_status" || command == "mon metadata" || command == "quorum_status" || - command == "ops"); + command == "ops" || + command == "sessions"); (read_only ? audit_clog->debug() : audit_clog->info()) << "from='admin socket' entity='admin socket' " @@ -334,6 +335,17 @@ void Monitor::do_admin_command(string command, cmdmap_t& cmdmap, string format, if (f) { f->flush(ss); } + } else if (command == "sessions") { + + if (f) { + f->open_array_section("sessions"); + for (auto p : session_map.sessions) { + f->dump_stream("session") << *p; + } + f->close_section(); + f->flush(ss); + } + } else { assert(0 == "bad AdminSocket command binding"); } @@ -768,6 +780,11 @@ int Monitor::preinit() admin_hook, "show the ops currently in flight"); assert(r == 0); + r = admin_socket->register_command("sessions", + "sessions", + admin_hook, + "list existing sessions"); + assert(r == 0); lock.Lock(); @@ -898,6 +915,7 @@ void Monitor::shutdown() admin_socket->unregister_command("quorum enter"); admin_socket->unregister_command("quorum exit"); admin_socket->unregister_command("ops"); + admin_socket->unregister_command("sessions"); delete admin_hook; admin_hook = NULL; }