From 3f703bd91f07b2fe43a16df0083d7b7c23803fd5 Mon Sep 17 00:00:00 2001 From: John Spray Date: Thu, 27 Jul 2017 11:45:53 -0400 Subject: [PATCH] mon/MgrMap: store list of services Signed-off-by: John Spray --- src/mon/MgrMap.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/mon/MgrMap.h b/src/mon/MgrMap.h index 01ed2515c34..1af3a0ee766 100644 --- a/src/mon/MgrMap.h +++ b/src/mon/MgrMap.h @@ -77,6 +77,10 @@ public: std::set modules; std::set available_modules; + // Map of module name to URI, indicating services exposed by + // running modules on the active mgr daemon. + std::map services; + epoch_t get_epoch() const { return epoch; } entity_addr_t get_active_addr() const { return active_addr; } uint64_t get_active_gid() const { return active_gid; } @@ -120,7 +124,7 @@ public: void encode(bufferlist& bl, uint64_t features) const { - ENCODE_START(2, 1, bl); + ENCODE_START(3, 1, bl); ::encode(epoch, bl); ::encode(active_addr, bl, features); ::encode(active_gid, bl); @@ -129,6 +133,7 @@ public: ::encode(standbys, bl); ::encode(modules, bl); ::encode(available_modules, bl); + ::encode(services, bl); ENCODE_FINISH(bl); } @@ -145,6 +150,9 @@ public: ::decode(modules, p); ::decode(available_modules, p); } + if (struct_v >= 3) { + ::decode(services, p); + } DECODE_FINISH(p); } @@ -177,6 +185,12 @@ public: f->dump_string("module", j); } f->close_section(); + + f->open_object_section("services"); + for (const auto &i : services) { + f->dump_string(i.first.c_str(), i.second); + } + f->close_section(); } static void generate_test_instances(list &l) { -- 2.39.5