]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/tools/rbd_mirror/ClusterWatcher.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / tools / rbd_mirror / ClusterWatcher.h
index e8430b476ce96a46c3d2550e9e585d0751497307..93356fec6b199aa4dc12bab990f4fbb237820857 100644 (file)
@@ -9,7 +9,7 @@
 #include <set>
 
 #include "common/ceph_context.h"
-#include "common/Mutex.h"
+#include "common/ceph_mutex.h"
 #include "common/Timer.h"
 #include "include/rados/librados.hpp"
 #include "tools/rbd_mirror/Types.h"
@@ -37,7 +37,7 @@ public:
   typedef std::set<PeerSpec, PeerSpecCompare> Peers;
   typedef std::map<int64_t, Peers>  PoolPeers;
 
-  ClusterWatcher(RadosRef cluster, Mutex &lock,
+  ClusterWatcher(RadosRef cluster, ceph::mutex &lock,
                  ServiceDaemon<librbd::ImageCtx>* service_daemon);
   ~ClusterWatcher() = default;
   ClusterWatcher(const ClusterWatcher&) = delete;
@@ -46,21 +46,25 @@ public:
   // Caller controls frequency of calls
   void refresh_pools();
   const PoolPeers& get_pool_peers() const;
+  std::string get_site_name() const;
 
 private:
   typedef std::unordered_map<int64_t, service_daemon::CalloutId> ServicePools;
 
   RadosRef m_cluster;
-  Mutex &m_lock;
+  ceph::mutex &m_lock;
   ServiceDaemon<librbd::ImageCtx>* m_service_daemon;
 
   ServicePools m_service_pools;
   PoolPeers m_pool_peers;
+  std::string m_site_name;
 
   void read_pool_peers(PoolPeers *pool_peers);
 
-  int resolve_peer_config_keys(int64_t pool_id, const std::string& pool_name,
-                               PeerSpec* peer);
+  int read_site_name(std::string* site_name);
+
+  int resolve_peer_site_config_keys(
+      int64_t pool_id, const std::string& pool_name, PeerSpec* peer);
 };
 
 } // namespace mirror