]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MgrMonitor: store services in map and expose with command
authorJohn Spray <john.spray@redhat.com>
Thu, 27 Jul 2017 15:49:45 +0000 (11:49 -0400)
committerJohn Spray <john.spray@redhat.com>
Wed, 1 Nov 2017 23:03:27 +0000 (23:03 +0000)
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit c3c3e4e90ba6b09e29879b500f211d607ebabb53)

src/mon/MgrMonitor.cc
src/mon/MonCommands.h

index 986a6fb5be894def694239dcc4907b35fa4c960f..0fb57c22676e7a4c99b3177c7cc08c36738bc37d 100644 (file)
@@ -306,6 +306,13 @@ bool MgrMonitor::prepare_beacon(MonOpRequestRef op)
   bool updated = false;
 
   if (pending_map.active_gid == m->get_gid()) {
+    if (pending_map.services != m->get_services()) {
+      dout(4) << "updated services from mgr." << m->get_name()
+              << ": " << m->get_services() << dendl;
+      pending_map.services = m->get_services();
+      updated = true;
+    }
+
     // A beacon from the currently active daemon
     if (pending_map.active_addr != m->get_server_addr()) {
       dout(4) << "learned address " << m->get_server_addr()
@@ -706,6 +713,13 @@ bool MgrMonitor::preprocess_command(MonOpRequestRef op)
     }
     f->close_section();
     f->flush(rdata);
+  } else if (prefix == "mgr services") {
+    f->open_object_section("services");
+    for (const auto &i : map.services) {
+      f->dump_string(i.first.c_str(), i.second);
+    }
+    f->close_section();
+    f->flush(rdata);
   } else if (prefix == "mgr metadata") {
     string name;
     cmd_getval(g_ceph_context, cmdmap, "id", name);
index 22e64d5f52571708f60970a133624c8bbc7f37cd..176ca4055f5e3f6aff2ac96e018e6583168159f8 100644 (file)
@@ -1078,6 +1078,9 @@ COMMAND("mgr fail name=who,type=CephString", \
        "treat the named manager daemon as failed", "mgr", "rw", "cli,rest")
 COMMAND("mgr module ls",
        "list active mgr modules", "mgr", "r", "cli,rest")
+COMMAND("mgr services",
+       "list service endpoints provided by mgr modules",
+        "mgr", "r", "cli,rest")
 COMMAND("mgr module enable "                                           \
        "name=module,type=CephString "                                  \
        "name=force,type=CephChoices,strings=--force,req=false",