From: Jason Dillaman Date: Wed, 14 Mar 2018 13:45:13 +0000 (-0400) Subject: rbd-mirror: moved policy inner-types to common types header X-Git-Tag: v13.1.0~312^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=50ff6333b5c2c483f0c8d7693a269d3f4da19532;p=ceph.git rbd-mirror: moved policy inner-types to common types header Signed-off-by: Jason Dillaman --- diff --git a/src/test/rbd_mirror/test_ImagePolicy.cc b/src/test/rbd_mirror/test_ImagePolicy.cc index 5c4d63aadab6..a0320534137e 100644 --- a/src/test/rbd_mirror/test_ImagePolicy.cc +++ b/src/test/rbd_mirror/test_ImagePolicy.cc @@ -161,8 +161,8 @@ public: TEST_F(TestImagePolicy, NegativeLookup) { const std::string global_image_id = "global id 1"; - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id == Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id == UNMAPPED_INSTANCE_ID); } TEST_F(TestImagePolicy, MapImage) { @@ -170,8 +170,8 @@ TEST_F(TestImagePolicy, MapImage) { map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } TEST_F(TestImagePolicy, UnmapImage) { @@ -180,8 +180,8 @@ TEST_F(TestImagePolicy, UnmapImage) { // map image map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); reset_flags(); @@ -189,7 +189,7 @@ TEST_F(TestImagePolicy, UnmapImage) { unmap_image(global_image_id); info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id == Policy::UNMAPPED_INSTANCE_ID); + ASSERT_TRUE(info.instance_id == UNMAPPED_INSTANCE_ID); } TEST_F(TestImagePolicy, ShuffleImageAddInstance) { @@ -201,8 +201,8 @@ TEST_F(TestImagePolicy, ShuffleImageAddInstance) { // map image map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } reset_flags(); @@ -213,8 +213,8 @@ TEST_F(TestImagePolicy, ShuffleImageAddInstance) { for (auto const &global_image_id : shuffle_global_image_ids) { shuffle_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } } @@ -227,8 +227,8 @@ TEST_F(TestImagePolicy, ShuffleImageRemoveInstance) { // map image map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } reset_flags(); @@ -239,14 +239,14 @@ TEST_F(TestImagePolicy, ShuffleImageRemoveInstance) { for (auto const &global_image_id : shuffle_global_image_ids) { shuffle_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } // record which of the images got migrated to the new instance std::set remapped_global_image_ids; for (auto const &global_image_id: shuffle_global_image_ids) { - Policy::LookupInfo info = m_policy->lookup(global_image_id); + LookupInfo info = m_policy->lookup(global_image_id); if (info.instance_id == "9876") { remapped_global_image_ids.emplace(global_image_id); } @@ -262,8 +262,8 @@ TEST_F(TestImagePolicy, ShuffleImageRemoveInstance) { for (auto const &global_image_id : shuffle_global_image_ids) { shuffle_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } } @@ -287,8 +287,8 @@ TEST_F(TestImagePolicy, RetryMapUpdate) { ASSERT_TRUE(m_updated && m_acquired); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } TEST_F(TestImagePolicy, MapFailureAndUnmap) { @@ -339,8 +339,8 @@ TEST_F(TestImagePolicy, ReshuffleWithMapFailure) { // map image map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } std::set shuffle_global_image_ids; @@ -396,8 +396,8 @@ TEST_F(TestImagePolicy, ShuffleFailureAndRemove) { // map image map_image(global_image_id); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id != UNMAPPED_INSTANCE_ID); } std::set shuffle_global_image_ids; @@ -459,8 +459,8 @@ TEST_F(TestImagePolicy, ShuffleFailureAndRemove) { ASSERT_TRUE(m_released && m_removed); - Policy::LookupInfo info = m_policy->lookup(global_image_id); - ASSERT_TRUE(info.instance_id == Policy::UNMAPPED_INSTANCE_ID); + LookupInfo info = m_policy->lookup(global_image_id); + ASSERT_TRUE(info.instance_id == UNMAPPED_INSTANCE_ID); } } // namespace image_map diff --git a/src/tools/rbd_mirror/ImageMap.cc b/src/tools/rbd_mirror/ImageMap.cc index 4556d4fc2e3c..261d02f6c175 100644 --- a/src/tools/rbd_mirror/ImageMap.cc +++ b/src/tools/rbd_mirror/ImageMap.cc @@ -69,8 +69,8 @@ void ImageMap::queue_update_map(const std::string &global_image_id) { dout(20) << ": global_image_id=" << global_image_id << dendl; - Policy::LookupInfo info = m_policy->lookup(global_image_id); - assert(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + image_map::LookupInfo info = m_policy->lookup(global_image_id); + assert(info.instance_id != image_map::UNMAPPED_INSTANCE_ID); m_updates.emplace_back(global_image_id, info.instance_id, info.mapped_time); } @@ -89,8 +89,8 @@ void ImageMap::queue_acquire_image(const std::string &global_image_id) { dout(20) << ": global_image_id=" << global_image_id << dendl; - Policy::LookupInfo info = m_policy->lookup(global_image_id); - assert(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + image_map::LookupInfo info = m_policy->lookup(global_image_id); + assert(info.instance_id != image_map::UNMAPPED_INSTANCE_ID); m_acquire_updates.emplace_back(global_image_id, info.instance_id); } @@ -101,8 +101,8 @@ void ImageMap::queue_release_image(const std::string &global_image_id) { dout(20) << ": global_image_id=" << global_image_id << dendl; - Policy::LookupInfo info = m_policy->lookup(global_image_id); - assert(info.instance_id != Policy::UNMAPPED_INSTANCE_ID); + image_map::LookupInfo info = m_policy->lookup(global_image_id); + assert(info.instance_id != image_map::UNMAPPED_INSTANCE_ID); m_release_updates.emplace_back(global_image_id, info.instance_id); } @@ -400,8 +400,8 @@ void ImageMap::update_images_removed(const std::string &peer_uuid, schedule_remove_action(global_image_id); } - Policy::LookupInfo info = m_policy->lookup(global_image_id); - if (info.instance_id != Policy::UNMAPPED_INSTANCE_ID) { + image_map::LookupInfo info = m_policy->lookup(global_image_id); + if (info.instance_id != image_map::UNMAPPED_INSTANCE_ID) { to_remove.emplace_back(global_image_id, info.instance_id); } } diff --git a/src/tools/rbd_mirror/image_map/Policy.cc b/src/tools/rbd_mirror/image_map/Policy.cc index b809324918ff..16580800f6e7 100644 --- a/src/tools/rbd_mirror/image_map/Policy.cc +++ b/src/tools/rbd_mirror/image_map/Policy.cc @@ -19,8 +19,6 @@ namespace image_map { using librbd::util::unique_lock_name; -const std::string Policy::UNMAPPED_INSTANCE_ID(""); - Policy::Policy(librados::IoCtx &ioctx) : m_ioctx(ioctx), m_map_lock(unique_lock_name("rbd::mirror::image_map::Policy::m_map_lock", this)) { @@ -40,7 +38,7 @@ void Policy::init(const std::map &image_m } } -Policy::LookupInfo Policy::lookup(const std::string &global_image_id) { +LookupInfo Policy::lookup(const std::string &global_image_id) { dout(20) << ": global_image_id=" << global_image_id << dendl; RWLock::RLocker map_lock(m_map_lock); @@ -337,7 +335,7 @@ bool Policy::actions_pending(const std::string &global_image_id, const RWLock &l return !it->second.actions.empty(); } -Policy::LookupInfo Policy::lookup(const std::string &global_image_id, const RWLock &lock) { +LookupInfo Policy::lookup(const std::string &global_image_id, const RWLock &lock) { assert(m_map_lock.is_locked()); LookupInfo info; diff --git a/src/tools/rbd_mirror/image_map/Policy.h b/src/tools/rbd_mirror/image_map/Policy.h index 32fd21601820..547bce49fba6 100644 --- a/src/tools/rbd_mirror/image_map/Policy.h +++ b/src/tools/rbd_mirror/image_map/Policy.h @@ -12,6 +12,7 @@ #include "cls/rbd/cls_rbd_types.h" #include "include/rados/librados.hpp" #include "Action.h" +#include "tools/rbd_mirror/image_map/Types.h" class Context; @@ -30,10 +31,6 @@ public: void init(const std::map &image_mapping); // lookup an image from the map - struct LookupInfo { - std::string instance_id = UNMAPPED_INSTANCE_ID; - utime_t mapped_time; - }; LookupInfo lookup(const std::string &global_image_id); // add, remove, shuffle @@ -54,8 +51,6 @@ public: void start_next_action(const std::string &global_image_id); bool finish_action(const std::string &global_image_id, int r); - static const std::string UNMAPPED_INSTANCE_ID; - private: typedef std::list Actions; diff --git a/src/tools/rbd_mirror/image_map/Types.cc b/src/tools/rbd_mirror/image_map/Types.cc index 6592c057c3b1..525ee2ac1232 100644 --- a/src/tools/rbd_mirror/image_map/Types.cc +++ b/src/tools/rbd_mirror/image_map/Types.cc @@ -10,6 +10,8 @@ namespace rbd { namespace mirror { namespace image_map { +const std::string UNMAPPED_INSTANCE_ID(""); + namespace { template diff --git a/src/tools/rbd_mirror/image_map/Types.h b/src/tools/rbd_mirror/image_map/Types.h index 91a592dfeb7a..32fe6c24011f 100644 --- a/src/tools/rbd_mirror/image_map/Types.h +++ b/src/tools/rbd_mirror/image_map/Types.h @@ -10,6 +10,7 @@ #include "include/buffer.h" #include "include/encoding.h" +#include "include/utime.h" #include "tools/rbd_mirror/types.h" namespace ceph { @@ -20,6 +21,8 @@ namespace rbd { namespace mirror { namespace image_map { +extern const std::string UNMAPPED_INSTANCE_ID; + struct Listener { virtual ~Listener() { } @@ -33,6 +36,11 @@ struct Listener { const std::string &instance_id) = 0; }; +struct LookupInfo { + std::string instance_id = UNMAPPED_INSTANCE_ID; + utime_t mapped_time; +}; + enum PolicyMetaType { POLICY_META_TYPE_NONE = 0, };