diff options
Diffstat (limited to 'src/mon/MgrMap.h')
-rw-r--r-- | src/mon/MgrMap.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/mon/MgrMap.h b/src/mon/MgrMap.h index 82f6ea88046..1ab542a871f 100644 --- a/src/mon/MgrMap.h +++ b/src/mon/MgrMap.h @@ -297,6 +297,9 @@ public: // active version. std::map<uint32_t, std::set<std::string>> always_on_modules; + // Modules which are always-on but have been force-disabled by user. + std::set<std::string> force_disabled_modules; + // Modules which are reported to exist std::vector<ModuleInfo> available_modules; @@ -448,7 +451,7 @@ public: ENCODE_FINISH(bl); return; } - ENCODE_START(13, 6, bl); + ENCODE_START(14, 6, bl); encode(epoch, bl); encode(active_addrs, bl, features); encode(active_gid, bl); @@ -473,13 +476,14 @@ public: encode(clients_addrs, bl, features); encode(clients_names, bl, features); encode(flags, bl); + encode(force_disabled_modules, bl); ENCODE_FINISH(bl); return; } void decode(ceph::buffer::list::const_iterator& p) { - DECODE_START(13, p); + DECODE_START(14, p); decode(epoch, p); decode(active_addrs, p); decode(active_gid, p); @@ -549,6 +553,11 @@ public: if (struct_v >= 13) { decode(flags, p); } + + if (struct_v >= 14) { + decode(force_disabled_modules, p); + } + DECODE_FINISH(p); } @@ -603,6 +612,13 @@ public: f->close_section(); } f->close_section(); // always_on_modules + + f->open_object_section("force_disabled_modules"); + for (auto& m : force_disabled_modules) { + f->dump_string("module", m); + } + f->close_section(); + f->dump_int("last_failure_osd_epoch", last_failure_osd_epoch); f->open_array_section("active_clients"); for (const auto& i : clients) { |