]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mgr/DaemonServer.h
update sources to v12.1.1
[ceph.git] / ceph / src / mgr / DaemonServer.h
index a1ed292e1a0c1a15cf5b7a52641c70da22fd58db..4877cfe85aed8c0eedef5b1832db77ea68bc5177 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "auth/AuthAuthorizeHandler.h"
 
+#include "ServiceMap.h"
 #include "MgrSession.h"
 #include "DaemonState.h"
 
@@ -66,6 +67,9 @@ protected:
   /// connections for osds
   ceph::unordered_map<int,set<ConnectionRef>> osd_cons;
 
+  ServiceMap pending_service_map;  // uncommitted
+  epoch_t pending_service_map_dirty = 0;
+
   Mutex lock;
 
   static void _generate_command_map(map<string,cmd_vartype>& cmdmap,
@@ -83,6 +87,13 @@ private:
   bool _reply(MCommand* m,
              int ret, const std::string& s, const bufferlist& payload);
 
+  void _prune_pending_service_map();
+
+  utime_t started_at;
+  bool pgmap_ready = false;
+  std::set<int32_t> reported_osds;
+  void maybe_ready(int32_t osd_id);
+
 public:
   int init(uint64_t gid, entity_addr_t client_addr);
   void shutdown();
@@ -116,6 +127,7 @@ public:
   bool handle_report(MMgrReport *m);
   bool handle_command(MCommand *m);
   void send_report();
+  void got_service_map();
 };
 
 #endif