Skip to content

Commit

Permalink
Merge branch 'wip-16349' into wip-mgolub-testing
Browse files Browse the repository at this point in the history
 [DNM] rbd-mirror: gracefully handle being blacklisted #9970
  • Loading branch information
Mykola Golub committed Jun 30, 2016
2 parents 9b23c11 + c4bfadc commit 7ac71f3
Show file tree
Hide file tree
Showing 12 changed files with 246 additions and 168 deletions.
2 changes: 1 addition & 1 deletion src/test/rbd_mirror/image_replay.cc
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ int main(int argc, const char **argv)
threads = new rbd::mirror::Threads(reinterpret_cast<CephContext*>(
local->cct()));

image_deleter.reset(new rbd::mirror::ImageDeleter(local, threads->work_queue,
image_deleter.reset(new rbd::mirror::ImageDeleter(threads->work_queue,
threads->timer,
&threads->timer_lock));

Expand Down
37 changes: 19 additions & 18 deletions src/test/rbd_mirror/test_ImageDeleter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,9 @@ class TestImageDeleter : public TestFixture {

librbd::mirror_mode_set(m_local_io_ctx, RBD_MIRROR_MODE_IMAGE);

m_deleter = new rbd::mirror::ImageDeleter(_rados,
m_threads->work_queue, m_threads->timer, &m_threads->timer_lock);
m_deleter = new rbd::mirror::ImageDeleter(m_threads->work_queue,
m_threads->timer,
&m_threads->timer_lock);

EXPECT_EQ(0, create_image(rbd, m_local_io_ctx, m_image_name, 1 << 20));
ImageCtx *ictx = new ImageCtx(m_image_name, "", "", m_local_io_ctx,
Expand Down Expand Up @@ -211,7 +212,7 @@ int64_t TestImageDeleter::m_local_pool_id;


TEST_F(TestImageDeleter, Delete_NonPrimary_Image) {
m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -227,7 +228,7 @@ TEST_F(TestImageDeleter, Delete_NonPrimary_Image) {
TEST_F(TestImageDeleter, Fail_Delete_Primary_Image) {
promote_image();

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -242,7 +243,7 @@ TEST_F(TestImageDeleter, Fail_Delete_Diff_GlobalId) {
// This test case represents a case that should never happen, unless
// there is bug in the implementation

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, "diff global id");

C_SaferCond ctx;
Expand All @@ -256,7 +257,7 @@ TEST_F(TestImageDeleter, Fail_Delete_Diff_GlobalId) {
TEST_F(TestImageDeleter, Delete_Image_With_Child) {
create_snapshot();

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -271,7 +272,7 @@ TEST_F(TestImageDeleter, Delete_Image_With_Children) {
create_snapshot("snap1");
create_snapshot("snap2");

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -285,7 +286,7 @@ TEST_F(TestImageDeleter, Delete_Image_With_Children) {
TEST_F(TestImageDeleter, Delete_Image_With_ProtectedChild) {
create_snapshot("snap1", true);

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -300,7 +301,7 @@ TEST_F(TestImageDeleter, Delete_Image_With_ProtectedChildren) {
create_snapshot("snap1", true);
create_snapshot("snap2", true);

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -314,7 +315,7 @@ TEST_F(TestImageDeleter, Delete_Image_With_ProtectedChildren) {
TEST_F(TestImageDeleter, Delete_Image_With_Clone) {
std::string clone_id = create_clone();

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -324,7 +325,7 @@ TEST_F(TestImageDeleter, Delete_Image_With_Clone) {
ASSERT_EQ(1u, m_deleter->get_delete_queue_items().size());
ASSERT_EQ(0u, m_deleter->get_failed_queue_items().size());

m_deleter->schedule_image_delete(m_local_pool_id, clone_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, clone_id,
"clone1", GLOBAL_CLONE_IMAGE_ID);

C_SaferCond ctx2;
Expand All @@ -347,7 +348,7 @@ TEST_F(TestImageDeleter, Delete_NonExistent_Image) {
EXPECT_EQ(0, cls_client::mirror_image_set(&m_local_io_ctx, m_local_image_id,
mirror_image));

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -371,7 +372,7 @@ TEST_F(TestImageDeleter, Delete_NonExistent_Image_With_MirroringState) {
EXPECT_EQ(0, cls_client::mirror_image_set(&m_local_io_ctx, m_local_image_id,
mirror_image));

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -387,7 +388,7 @@ TEST_F(TestImageDeleter, Delete_NonExistent_Image_With_MirroringState) {
TEST_F(TestImageDeleter, Delete_NonExistent_Image_Without_MirroringState) {
remove_image();

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -405,7 +406,7 @@ TEST_F(TestImageDeleter, Fail_Delete_NonPrimary_Image) {
false);
EXPECT_EQ(0, ictx->state->open());

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -425,7 +426,7 @@ TEST_F(TestImageDeleter, Retry_Failed_Deletes) {

m_deleter->set_failed_timer_interval(2);

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -449,7 +450,7 @@ TEST_F(TestImageDeleter, Delete_Is_Idempotent) {
false);
EXPECT_EQ(0, ictx->state->open());

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

C_SaferCond ctx;
Expand All @@ -459,7 +460,7 @@ TEST_F(TestImageDeleter, Delete_Is_Idempotent) {
ASSERT_EQ(0u, m_deleter->get_delete_queue_items().size());
ASSERT_EQ(1u, m_deleter->get_failed_queue_items().size());

m_deleter->schedule_image_delete(m_local_pool_id, m_local_image_id,
m_deleter->schedule_image_delete(_rados, m_local_pool_id, m_local_image_id,
m_image_name, GLOBAL_IMAGE_ID);

ASSERT_EQ(0u, m_deleter->get_delete_queue_items().size());
Expand Down
3 changes: 1 addition & 2 deletions src/test/rbd_mirror/test_ImageReplayer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,7 @@ class TestImageReplayer : public ::testing::Test {
m_threads = new rbd::mirror::Threads(reinterpret_cast<CephContext*>(
m_local_ioctx.cct()));

m_image_deleter.reset(new rbd::mirror::ImageDeleter(m_local_cluster,
m_threads->work_queue,
m_image_deleter.reset(new rbd::mirror::ImageDeleter(m_threads->work_queue,
m_threads->timer,
&m_threads->timer_lock));
m_image_sync_throttler.reset(new rbd::mirror::ImageSyncThrottler<>());
Expand Down

0 comments on commit 7ac71f3

Please sign in to comment.