From 799dfc2dafd6894679eb3290aadc25d58908f700 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 6 Dec 2019 22:03:02 -0500 Subject: [PATCH] rbd-mirror: moved replay status formatter to sub-namespace The current implementation is tied to journal-based replaying so move it down into a new journal sub-namespace. Signed-off-by: Jason Dillaman --- .../rbd_mirror/test_mock_ImageReplayer.cc | 21 ++++++++++++------- src/tools/rbd_mirror/CMakeLists.txt | 2 +- src/tools/rbd_mirror/ImageReplayer.cc | 10 +++++---- src/tools/rbd_mirror/ImageReplayer.h | 20 +++++++++++------- .../PrepareRemoteImageRequest.h | 12 +++++------ .../{ => journal}/ReplayStatusFormatter.cc | 10 +++++---- .../{ => journal}/ReplayStatusFormatter.h | 4 ++++ 7 files changed, 48 insertions(+), 31 deletions(-) rename src/tools/rbd_mirror/image_replayer/{ => journal}/ReplayStatusFormatter.cc (95%) rename src/tools/rbd_mirror/image_replayer/{ => journal}/ReplayStatusFormatter.h (92%) diff --git a/src/test/rbd_mirror/test_mock_ImageReplayer.cc b/src/test/rbd_mirror/test_mock_ImageReplayer.cc index 310e17b0c2b..a47b4456e6f 100644 --- a/src/test/rbd_mirror/test_mock_ImageReplayer.cc +++ b/src/test/rbd_mirror/test_mock_ImageReplayer.cc @@ -14,6 +14,7 @@ #include "tools/rbd_mirror/image_replayer/EventPreprocessor.h" #include "tools/rbd_mirror/image_replayer/PrepareLocalImageRequest.h" #include "tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h" +#include "tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.h" #include "test/rbd_mirror/test_mock_fixture.h" #include "test/journal/mock/MockJournaler.h" #include "test/librbd/mock/MockImageCtx.h" @@ -165,8 +166,8 @@ struct PrepareRemoteImageRequest { const std::string &global_image_id, const std::string &local_mirror_uuid, const std::string &local_image_id, - const journal::Settings &settings, - journal::CacheManagerHandler *cache_manager_handler, + const ::journal::Settings &settings, + ::journal::CacheManagerHandler *cache_manager_handler, std::string *remote_mirror_uuid, std::string *remote_image_id, ::journal::MockJournalerProxy **remote_journaler, @@ -299,6 +300,14 @@ struct EventPreprocessor { MOCK_METHOD2(preprocess, void(librbd::journal::EventEntry *, Context *)); }; +BootstrapRequest* BootstrapRequest::s_instance = nullptr; +CloseImageRequest* CloseImageRequest::s_instance = nullptr; +EventPreprocessor* EventPreprocessor::s_instance = nullptr; +PrepareLocalImageRequest* PrepareLocalImageRequest::s_instance = nullptr; +PrepareRemoteImageRequest* PrepareRemoteImageRequest::s_instance = nullptr; + +namespace journal { + template<> struct ReplayStatusFormatter { static ReplayStatusFormatter* s_instance; @@ -325,13 +334,9 @@ struct ReplayStatusFormatter { MOCK_METHOD2(get_or_send_update, bool(std::string *description, Context *on_finish)); }; -BootstrapRequest* BootstrapRequest::s_instance = nullptr; -CloseImageRequest* CloseImageRequest::s_instance = nullptr; -EventPreprocessor* EventPreprocessor::s_instance = nullptr; -PrepareLocalImageRequest* PrepareLocalImageRequest::s_instance = nullptr; -PrepareRemoteImageRequest* PrepareRemoteImageRequest::s_instance = nullptr; ReplayStatusFormatter* ReplayStatusFormatter::s_instance = nullptr; +} // namespace journal } // namespace image_replayer } // namespace mirror } // namespace rbd @@ -363,7 +368,7 @@ public: typedef image_replayer::EventPreprocessor MockEventPreprocessor; typedef image_replayer::PrepareLocalImageRequest MockPrepareLocalImageRequest; typedef image_replayer::PrepareRemoteImageRequest MockPrepareRemoteImageRequest; - typedef image_replayer::ReplayStatusFormatter MockReplayStatusFormatter; + typedef image_replayer::journal::ReplayStatusFormatter MockReplayStatusFormatter; typedef librbd::journal::Replay MockReplay; typedef ImageReplayer MockImageReplayer; typedef InstanceWatcher MockInstanceWatcher; diff --git a/src/tools/rbd_mirror/CMakeLists.txt b/src/tools/rbd_mirror/CMakeLists.txt index d38353bcf17..736dbe9246c 100644 --- a/src/tools/rbd_mirror/CMakeLists.txt +++ b/src/tools/rbd_mirror/CMakeLists.txt @@ -41,8 +41,8 @@ set(rbd_mirror_internal image_replayer/OpenLocalImageRequest.cc image_replayer/PrepareLocalImageRequest.cc image_replayer/PrepareRemoteImageRequest.cc - image_replayer/ReplayStatusFormatter.cc image_replayer/Utils.cc + image_replayer/journal/ReplayStatusFormatter.cc image_sync/SyncPointCreateRequest.cc image_sync/SyncPointPruneRequest.cc pool_watcher/RefreshImagesRequest.cc diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index e08e4dde00a..9933dd7509b 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -30,7 +30,7 @@ #include "tools/rbd_mirror/image_replayer/EventPreprocessor.h" #include "tools/rbd_mirror/image_replayer/PrepareLocalImageRequest.h" #include "tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h" -#include "tools/rbd_mirror/image_replayer/ReplayStatusFormatter.h" +#include "tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.h" #define dout_context g_ceph_context #define dout_subsys ceph_subsys_rbd_mirror @@ -621,8 +621,9 @@ void ImageReplayer::handle_start_replay(int r) { return; } - m_replay_status_formatter = image_replayer::ReplayStatusFormatter::create( - m_remote_journaler, m_local_mirror_uuid); + m_replay_status_formatter = + image_replayer::journal::ReplayStatusFormatter::create( + m_remote_journaler, m_local_mirror_uuid); Context *on_finish(nullptr); { @@ -1643,7 +1644,8 @@ void ImageReplayer::handle_shut_down(int r) { } dout(10) << "stop complete" << dendl; - image_replayer::ReplayStatusFormatter::destroy(m_replay_status_formatter); + image_replayer::journal::ReplayStatusFormatter::destroy( + m_replay_status_formatter); m_replay_status_formatter = nullptr; Context *on_start = nullptr; diff --git a/src/tools/rbd_mirror/ImageReplayer.h b/src/tools/rbd_mirror/ImageReplayer.h index 166723b3a0d..29613c87cac 100644 --- a/src/tools/rbd_mirror/ImageReplayer.h +++ b/src/tools/rbd_mirror/ImageReplayer.h @@ -34,18 +34,17 @@ class PerfCounters; namespace journal { struct CacheManagerHandler; - class Journaler; class ReplayHandler; -} +} // namespace journal namespace librbd { class ImageCtx; namespace journal { template class Replay; } -} +} // namespace librbd namespace rbd { namespace mirror { @@ -54,9 +53,14 @@ template struct InstanceWatcher; template struct MirrorStatusUpdater; template struct Threads; -namespace image_replayer { template class BootstrapRequest; } -namespace image_replayer { template class EventPreprocessor; } -namespace image_replayer { template class ReplayStatusFormatter; } +namespace image_replayer { + +template class BootstrapRequest; +template class EventPreprocessor; + +namespace journal { template class ReplayStatusFormatter; } + +} // namespace image_replayer /** * Replays changes from a remote cluster for a single image. @@ -308,8 +312,8 @@ private: bool m_resync_requested = false; image_replayer::EventPreprocessor *m_event_preprocessor = nullptr; - image_replayer::ReplayStatusFormatter *m_replay_status_formatter = - nullptr; + image_replayer::journal::ReplayStatusFormatter* + m_replay_status_formatter = nullptr; ImageCtxT *m_local_image_ctx = nullptr; std::string m_local_image_tag_owner; diff --git a/src/tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h b/src/tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h index e6bd76cbfb9..8746430f31e 100644 --- a/src/tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h +++ b/src/tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h @@ -39,8 +39,8 @@ public: const std::string &global_image_id, const std::string &local_mirror_uuid, const std::string &local_image_id, - const journal::Settings &settings, - journal::CacheManagerHandler *cache_manager_handler, + const ::journal::Settings &settings, + ::journal::CacheManagerHandler *cache_manager_handler, std::string *remote_mirror_uuid, std::string *remote_image_id, Journaler **remote_journaler, @@ -61,8 +61,8 @@ public: const std::string &global_image_id, const std::string &local_mirror_uuid, const std::string &local_image_id, - const journal::Settings &journal_settings, - journal::CacheManagerHandler *cache_manager_handler, + const ::journal::Settings &journal_settings, + ::journal::CacheManagerHandler *cache_manager_handler, std::string *remote_mirror_uuid, std::string *remote_image_id, Journaler **remote_journaler, @@ -111,8 +111,8 @@ private: std::string m_global_image_id; std::string m_local_mirror_uuid; std::string m_local_image_id; - journal::Settings m_journal_settings; - journal::CacheManagerHandler *m_cache_manager_handler; + ::journal::Settings m_journal_settings; + ::journal::CacheManagerHandler *m_cache_manager_handler; std::string *m_remote_mirror_uuid; std::string *m_remote_image_id; Journaler **m_remote_journaler; diff --git a/src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.cc b/src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.cc similarity index 95% rename from src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.cc rename to src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.cc index 94719010085..79b4b365671 100644 --- a/src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.cc +++ b/src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.cc @@ -13,12 +13,14 @@ #define dout_context g_ceph_context #define dout_subsys ceph_subsys_rbd_mirror #undef dout_prefix -#define dout_prefix *_dout << "rbd::mirror::image_replayer::ReplayStatusFormatter: " \ - << this << " " << __func__ << ": " +#define dout_prefix *_dout << "rbd::mirror::image_replayer::journal::" \ + << "ReplayStatusFormatter: " << this << " " \ + << __func__ << ": " namespace rbd { namespace mirror { namespace image_replayer { +namespace journal { using librbd::util::unique_lock_name; @@ -238,9 +240,9 @@ void ReplayStatusFormatter::format(std::string *description) { *description = ss.str(); } +} // namespace journal } // namespace image_replayer } // namespace mirror } // namespace rbd -template class -rbd::mirror::image_replayer::ReplayStatusFormatter; +template class rbd::mirror::image_replayer::journal::ReplayStatusFormatter; diff --git a/src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.h b/src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.h similarity index 92% rename from src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.h rename to src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.h index f1e9bf5656b..5ba000a1666 100644 --- a/src/tools/rbd_mirror/image_replayer/ReplayStatusFormatter.h +++ b/src/tools/rbd_mirror/image_replayer/journal/ReplayStatusFormatter.h @@ -16,6 +16,7 @@ namespace librbd { class ImageCtx; } namespace rbd { namespace mirror { namespace image_replayer { +namespace journal { template class ReplayStatusFormatter { @@ -53,8 +54,11 @@ private: void format(std::string *description); }; +} // namespace journal } // namespace image_replayer } // namespace mirror } // namespace rbd +extern template class rbd::mirror::image_replayer::journal::ReplayStatusFormatter; + #endif // RBD_MIRROR_IMAGE_REPLAYER_REPLAY_STATUS_FORMATTER_H -- 2.39.5