From 1374acdf1a089446d23611616d5a8ff1d0b96bce Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 19 Feb 2018 15:15:38 -0500 Subject: [PATCH] qa/workunits/rbd: correct permission test handling for clone v2 images Fixes: http://tracker.ceph.com/issues/23043 Signed-off-by: Jason Dillaman --- qa/workunits/rbd/permissions.sh | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/qa/workunits/rbd/permissions.sh b/qa/workunits/rbd/permissions.sh index 9079c8618f4..d86de1bb97a 100755 --- a/qa/workunits/rbd/permissions.sh +++ b/qa/workunits/rbd/permissions.sh @@ -3,6 +3,11 @@ set -ex IMAGE_FEATURES="layering,exclusive-lock,object-map,fast-diff" +clone_v2_enabled() { + image_spec=$1 + rbd info $image_spec | grep "clone-parent" +} + create_pools() { ceph osd pool create images 32 rbd pool init images @@ -64,7 +69,11 @@ test_images_access() { expect 16 rbd -k $KEYRING --id images snap rm images/foo@snap rbd -k $KEYRING --id volumes clone --image-feature $IMAGE_FEATURES images/foo@snap volumes/child - expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + + if ! clone_v2_enabled images/foo; then + expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + fi + expect 1 rbd -k $KEYRING --id volumes snap unprotect images/foo@snap expect 1 rbd -k $KEYRING --id images flatten volumes/child rbd -k $KEYRING --id volumes flatten volumes/child @@ -110,14 +119,20 @@ test_volumes_access() { rbd -k $KEYRING --id volumes snap create volumes/child@snap2 # make sure original snapshot stays protected - expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap - rbd -k $KEYRING --id volumes flatten volumes/child - expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap - rbd -k $KEYRING --id volumes snap rm volumes/child@snap2 - expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap - expect 2 rbd -k $KEYRING --id volumes snap rm volumes/child@snap2 - rbd -k $KEYRING --id volumes snap unprotect volumes/child@snap1 - expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + if clone_v2_enabled images/foo; then + rbd -k $KEYRING --id volumes flatten volumes/child + rbd -k $KEYRING --id volumes snap rm volumes/child@snap2 + rbd -k $KEYRING --id volumes snap unprotect volumes/child@snap1 + else + expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + rbd -k $KEYRING --id volumes flatten volumes/child + expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + rbd -k $KEYRING --id volumes snap rm volumes/child@snap2 + expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + expect 2 rbd -k $KEYRING --id volumes snap rm volumes/child@snap2 + rbd -k $KEYRING --id volumes snap unprotect volumes/child@snap1 + expect 16 rbd -k $KEYRING --id images snap unprotect images/foo@snap + fi # clean up rbd -k $KEYRING --id volumes snap rm volumes/child@snap1 -- 2.39.5