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()
}
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);
"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",