#include <set>
using rbd::mirror::ClusterWatcher;
-using rbd::mirror::peer_t;
+using rbd::mirror::PeerSpec;
using rbd::mirror::RadosRef;
using std::map;
using std::set;
TestFixture::TearDown();
}
- void create_pool(bool enable_mirroring, const peer_t &peer,
+ void create_pool(bool enable_mirroring, const PeerSpec &peer,
string *uuid = nullptr, string *name=nullptr) {
string pool_name = get_temp_pool_name("test-rbd-mirror-");
ASSERT_EQ(0, m_cluster->pool_create(pool_name.c_str()));
}
}
- void delete_pool(const string &name, const peer_t &peer) {
+ void delete_pool(const string &name, const PeerSpec &peer) {
int64_t pool_id = m_cluster->pool_lookup(name.c_str());
ASSERT_GE(pool_id, 0);
if (m_pool_peers.find(pool_id) != m_pool_peers.end()) {
TEST_F(TestClusterWatcher, NoMirroredPools) {
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
}
TEST_F(TestClusterWatcher, ReplicatedPools) {
- peer_t site1("", "site1", "mirror1");
- peer_t site2("", "site2", "mirror2");
+ PeerSpec site1("", "site1", "mirror1");
+ PeerSpec site2("", "site2", "mirror2");
string first_pool, last_pool;
check_peers();
create_pool(true, site1, &site1.uuid, &first_pool);
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
- create_pool(false, peer_t());
+ create_pool(false, PeerSpec());
check_peers();
create_pool(true, site2, &site2.uuid);
check_peers();
}
TEST_F(TestClusterWatcher, CachePools) {
- peer_t site1("", "site1", "mirror1");
+ PeerSpec site1("", "site1", "mirror1");
string base1, base2, cache1, cache2;
create_pool(true, site1, &site1.uuid, &base1);
check_peers();
} BOOST_SCOPE_EXIT_END;
check_peers();
- create_pool(false, peer_t(), nullptr, &base2);
+ create_pool(false, PeerSpec(), nullptr, &base2);
create_cache_pool(base2, &cache2);
BOOST_SCOPE_EXIT( base2, cache2, this_ ) {
this_->remove_cache_pool(base2, cache2);
using rbd::mirror::ImageId;
using rbd::mirror::ImageIds;
using rbd::mirror::PoolWatcher;
-using rbd::mirror::peer_t;
+using rbd::mirror::PeerSpec;
using rbd::mirror::RadosRef;
using std::map;
using std::set;
}
};
- void create_pool(bool enable_mirroring, const peer_t &peer, string *name=nullptr) {
+ void create_pool(bool enable_mirroring, const PeerSpec &peer, string *name=nullptr) {
string pool_name = get_temp_pool_name("test-rbd-mirror-");
ASSERT_EQ(0, m_cluster->pool_create(pool_name.c_str()));
TEST_F(TestPoolWatcher, EmptyPool) {
string uuid1 = "00000000-0000-0000-0000-000000000001";
- peer_t site1(uuid1, "site1", "mirror1");
+ PeerSpec site1(uuid1, "site1", "mirror1");
create_pool(true, site1);
check_images();
}
TEST_F(TestPoolWatcher, ReplicatedPools) {
string uuid1 = "00000000-0000-0000-0000-000000000001";
- peer_t site1(uuid1, "site1", "mirror1");
+ PeerSpec site1(uuid1, "site1", "mirror1");
string first_pool, local_pool, last_pool;
create_pool(true, site1, &first_pool);
check_images();
*/
class ClusterWatcher {
public:
- typedef std::set<peer_t> Peers;
+ typedef std::set<PeerSpec> Peers;
typedef std::map<int64_t, Peers> PoolPeers;
typedef std::set<std::string> PoolNames;
private:
typedef ClusterWatcher::PoolPeers PoolPeers;
- typedef std::pair<int64_t, peer_t> PoolPeer;
+ typedef std::pair<int64_t, PeerSpec> PoolPeer;
void update_pool_replayers(const PoolPeers &pool_peers);
template <typename I>
PoolReplayer<I>::PoolReplayer(Threads<I> *threads,
ServiceDaemon<I>* service_daemon,
- int64_t local_pool_id, const peer_t &peer,
+ int64_t local_pool_id, const PeerSpec &peer,
const std::vector<const char*> &args) :
m_threads(threads),
m_service_daemon(service_daemon),
public:
PoolReplayer(Threads<ImageCtxT> *threads,
ServiceDaemon<ImageCtxT>* service_daemon,
- int64_t local_pool_id, const peer_t &peer,
+ int64_t local_pool_id, const PeerSpec &peer,
const std::vector<const char*> &args);
~PoolReplayer();
PoolReplayer(const PoolReplayer&) = delete;
Threads<ImageCtxT> *m_threads;
ServiceDaemon<ImageCtxT>* m_service_daemon;
int64_t m_local_pool_id = -1;
- peer_t m_peer;
+ PeerSpec m_peer;
std::vector<const char*> m_args;
mutable Mutex m_lock;
<< "id=" << image_id.id;
}
-std::ostream& operator<<(std::ostream& lhs, const peer_t &peer) {
+std::ostream& operator<<(std::ostream& lhs, const PeerSpec &peer) {
return lhs << "uuid: " << peer.uuid
<< " cluster: " << peer.cluster_name
<< " client: " << peer.client_name;
typedef std::set<Peer> Peers;
-struct peer_t {
- peer_t() = default;
- peer_t(const std::string &uuid, const std::string &cluster_name,
- const std::string &client_name)
+struct PeerSpec {
+ PeerSpec() = default;
+ PeerSpec(const std::string &uuid, const std::string &cluster_name,
+ const std::string &client_name)
: uuid(uuid), cluster_name(cluster_name), client_name(client_name)
{
}
- peer_t(const librbd::mirror_peer_t &peer) :
+ PeerSpec(const librbd::mirror_peer_t &peer) :
uuid(peer.uuid),
cluster_name(peer.cluster_name),
client_name(peer.client_name)
{
}
+
std::string uuid;
std::string cluster_name;
std::string client_name;
- bool operator<(const peer_t &rhs) const {
- return this->uuid < rhs.uuid;
- }
- bool operator()(const peer_t &lhs, const peer_t &rhs) const {
- return lhs.uuid < rhs.uuid;
+
+ bool operator<(const PeerSpec &rhs) const {
+ return uuid < rhs.uuid;
}
- bool operator==(const peer_t &rhs) const {
+ bool operator==(const PeerSpec &rhs) const {
return uuid == rhs.uuid;
}
};
-std::ostream& operator<<(std::ostream& lhs, const peer_t &peer);
+std::ostream& operator<<(std::ostream& lhs, const PeerSpec &peer);
} // namespace mirror
} // namespace rbd