#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"
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;
// 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