From a9e22cceb66210ee5165d97bc6631e1f8a64b99d Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Fri, 1 Mar 2013 13:32:59 -0800 Subject: qa: don't suppress output from rbd commands This makes debugging failures much easier. Signed-off-by: Josh Durgin --- qa/workunits/rbd/copy.sh | 152 +++++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 71 deletions(-) diff --git a/qa/workunits/rbd/copy.sh b/qa/workunits/rbd/copy.sh index a3334c073d6..79999a9fdaa 100755 --- a/qa/workunits/rbd/copy.sh +++ b/qa/workunits/rbd/copy.sh @@ -4,12 +4,13 @@ rbd ls | wc -l | grep -v '^0$' && echo "nonempty rbd pool, aborting! run this script on an empty test cluster only." && exit 1 IMGS="testimg1 testimg2 testimg3 foo foo2 bar bar2 test1 test2 test3" +TESTDIR=${TESTDIR:-/tmp} remove_images() { for img in $IMGS do - (rbd snap purge $img || true) >/dev/null 2>&1 - (rbd rm $img || true) >/dev/null 2>&1 + rbd snap purge $img || true + rbd rm $img || true done } @@ -36,7 +37,7 @@ test_others() { rbd export testimg1 /tmp/img3 # info - rbd info testimg1 | grep 'size 128 MB' + rbd info testimg1 | tee "$TESTDIR/rbd_info.out" | grep 'size 128 MB' rbd info --snap=snap1 testimg1 | grep 'size 256 MB' # make copies @@ -44,8 +45,8 @@ test_others() { rbd copy testimg1 testimg3 # verify the result - rbd info testimg2 | grep 'size 256 MB' - rbd info testimg3 | grep 'size 128 MB' + rbd info testimg2 | tee "$TESTDIR/rbd_info.out" | grep 'size 256 MB' + rbd info testimg3 | tee "$TESTDIR/rbd_info.out" | grep 'size 128 MB' rbd export testimg1 /tmp/img1.new rbd export testimg2 /tmp/img2.new @@ -56,7 +57,7 @@ test_others() { # rollback rbd snap rollback --snap=snap1 testimg1 - rbd info testimg1 | grep 'size 256 MB' + rbd info testimg1 | tee "$TESTDIR/rbd_info.out" | grep 'size 256 MB' rbd export testimg1 /tmp/img1.snap1 cmp /tmp/img2 /tmp/img1.snap1 @@ -68,10 +69,10 @@ test_others() { # remove snapshots rbd snap rm --snap=snap1 testimg1 - rbd info --snap=snap1 testimg1 2>&1 | grep 'error setting snapshot context: (2) No such file or directory' + #rbd info --snap=snap1 testimg1 2>&1 | tee "$TESTDIR/rbd_info.out" | grep 'error setting snapshot context: (2) No such file or directory' remove_images - rm -f $TMP_FILES + rm -f $TMP_FILES "$TESTDIR/rbd_info.out" } test_rename() { @@ -81,20 +82,21 @@ test_rename() { rbd create -s 1 foo rbd create --new-format -s 1 bar rbd rename foo foo2 - rbd rename foo2 bar 2>&1 | grep exists + rbd rename foo2 bar 2>&1 | tee "$TESTDIR/rbd_rename.out" | grep exists rbd rename bar bar2 - rbd rename bar2 foo2 2>&1 | grep exists + rbd rename bar2 foo2 2>&1 | tee "$TESTDIR/rbd_rename.out" | grep exists rados mkpool rbd2 rbd create -p rbd2 -s 1 foo rbd rename rbd2/foo rbd2/bar - rbd -p rbd2 ls | grep bar + rbd -p rbd2 ls | tee "$TESTDIR/rbd_ls.out" | grep bar ! rbd rename rbd2/bar foo ! rbd rename rbd2/bar --dest-pool rbd foo rbd rename --pool rbd2 bar --dest-pool rbd2 foo - rbd -p rbd2 ls | grep foo + rbd -p rbd2 ls | tee "$TESTDIR/rbd_ls.out" | grep foo rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it + rm -f "$TESTDIR/rbd_rename.out" "$TESTDIR/rbd_ls.out" remove_images } @@ -104,42 +106,42 @@ test_ls() { rbd create -s 1 test1 rbd create -s 1 test2 - rbd ls | grep test1 - rbd ls | grep test2 - rbd ls | wc -l | grep 2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test1 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 2 # look for fields in output of ls -l without worrying about space - rbd ls -l | grep 'test1.*1024K.*1' - rbd ls -l | grep 'test2.*1024K.*1' + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test1.*1024K.*1' + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test2.*1024K.*1' rbd rm test1 rbd rm test2 rbd create --new-format -s 1 test1 rbd create --new-format -s 1 test2 - rbd ls | grep test1 - rbd ls | grep test2 - rbd ls | wc -l | grep 2 - rbd ls -l | grep 'test1.*1024K.*2' - rbd ls -l | grep 'test2.*1024K.*2' + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test1 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 2 + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test1.*1024K.*2' + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test2.*1024K.*2' rbd rm test1 rbd rm test2 rbd create --new-format -s 1 test1 rbd create -s 1 test2 - rbd ls | grep test1 - rbd ls | grep test2 - rbd ls | wc -l | grep 2 - rbd ls -l | grep 'test1.*1024K.*2' - rbd ls -l | grep 'test2.*1024K.*1' + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test1 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 2 + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test1.*1024K.*2' + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep 'test2.*1024K.*1' remove_images # test that many images can be shown by ls for i in $(seq -w 00 99); do rbd create image.$i -s 1 done - rbd ls | wc -l | grep 100 - rbd ls -l | grep image | wc -l | grep 100 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 100 + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep image | wc -l | grep 100 for i in $(seq -w 00 99); do rbd rm image.$i done @@ -147,11 +149,13 @@ test_ls() { for i in $(seq -w 00 99); do rbd create image.$i --image-format 2 -s 1 done - rbd ls | wc -l | grep 100 - rbd ls -l | grep image | wc -l | grep 100 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 100 + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep image | wc -l | grep 100 for i in $(seq -w 00 99); do rbd rm image.$i done + + rm -f "$TESTDIR/rbd_ls.out" } test_remove() { @@ -160,11 +164,11 @@ test_remove() { rbd create -s 1 test1 rbd rm test1 - rbd ls | wc -l | grep "^0$" + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep "^0$" rbd create --new-format -s 1 test2 rbd rm test2 - rbd ls | wc -l | grep "^0$" + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep "^0$" # check that remove succeeds even if it's # interrupted partway through. simulate this @@ -174,14 +178,14 @@ test_remove() { rbd create -s 1 test1 rados rm -p rbd test1.rbd rbd rm test1 - rbd ls | wc -l | grep "^0$" + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep "^0$" # remove with header missing rbd create --new-format -s 1 test2 HEADER=$(rados -p rbd ls | grep '^rbd_header') rados -p rbd rm $HEADER rbd rm test2 - rbd ls | wc -l | grep "^0$" + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep "^0$" # remove with header and id missing rbd create --new-format -s 1 test2 @@ -189,7 +193,7 @@ test_remove() { rados -p rbd rm $HEADER rados -p rbd rm rbd_id.test2 rbd rm test2 - rbd ls | wc -l | grep "^0$" + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep "^0$" # remove with rbd_children object missing (and, by extension, # with child not mentioned in rbd_children) @@ -200,11 +204,13 @@ test_remove() { rados -p rbd rm rbd_children rbd rm clone - rbd ls | grep clone | wc -l | grep '^0$' + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep clone | wc -l | grep '^0$' rbd snap unprotect test2@snap rbd snap rm test2@snap rbd rm test2 + + rm -f "$TESTDIR/rbd_ls.out" } test_locking() { @@ -212,25 +218,27 @@ test_locking() { remove_images rbd create -s 1 test1 - rbd lock list test1 | wc -l | grep '^0$' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | wc -l | grep '^0$' rbd lock add test1 id - rbd lock list test1 | grep ' 1 ' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | grep ' 1 ' LOCKER=$(rbd lock list test1 | tail -n 1 | awk '{print $1;}') rbd lock remove test1 id $LOCKER - rbd lock list test1 | wc -l | grep '^0$' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | wc -l | grep '^0$' rbd lock add test1 id --shared tag - rbd lock list test1 | grep ' 1 ' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | grep ' 1 ' rbd lock add test1 id --shared tag - rbd lock list test1 | grep ' 2 ' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | grep ' 2 ' rbd lock add test1 id2 --shared tag - rbd lock list test1 | grep ' 3 ' + rbd lock list test1 | tee "$TESTDIR/rbd_lock_list.out" | grep ' 3 ' LOCKER=$(rbd lock list test1 | tail -n 1 | awk '{print $1;}') ID=$(rbd lock list test1 | tail -n 1 | awk '{print $2;}') rbd lock remove test1 $ID $LOCKER # locks don't prevent you from removing an image, # just from taking a lock rbd rm test1 + + rm -f "$TESTDIR/rbd_lock_list.out" } test_pool_image_args() { @@ -241,51 +249,51 @@ test_pool_image_args() { ceph osd pool create test 100 truncate -s 1 /tmp/empty - rbd ls | wc -l | grep 0 + rbd ls | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 0 rbd create -s 1 test1 - rbd ls | grep -q test1 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep -q test1 rbd import --image test2 /tmp/empty - rbd ls | grep -q test2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep -q test2 rbd --dest test3 import /tmp/empty - rbd ls | grep -q test3 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep -q test3 rbd import /tmp/empty foo - rbd ls | grep -q foo + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep -q foo - rbd ls test | wc -l | grep 0 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | wc -l | grep 0 rbd import /tmp/empty test/test1 - rbd ls test | grep -q test1 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test1 rbd -p test import /tmp/empty test2 - rbd ls test | grep -q test2 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test2 rbd --image test3 -p test import /tmp/empty - rbd ls test | grep -q test3 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test3 rbd --image test4 -p test import /tmp/empty - rbd ls test | grep -q test4 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test4 rbd --dest test5 -p test import /tmp/empty - rbd ls test | grep -q test5 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test5 rbd --dest test6 --dest-pool test import /tmp/empty - rbd ls test | grep -q test6 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test6 rbd --image test7 --dest-pool test import /tmp/empty - rbd ls test | grep -q test7 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test7 rbd --image test/test8 import /tmp/empty - rbd ls test | grep -q test8 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test8 rbd --dest test/test9 import /tmp/empty - rbd ls test | grep -q test9 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test9 rbd import --pool test /tmp/empty - rbd ls test | grep -q empty + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q empty # copy with no explicit pool goes to pool rbd rbd copy test/test9 test10 - rbd ls test | grep -qv test10 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -qv test10 rbd ls | grep -q test10 rbd copy test/test9 test/test10 - rbd ls test | grep -q test10 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test10 rbd copy --pool test test10 --dest-pool test test11 - rbd ls test | grep -q test11 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -q test11 rbd copy --dest-pool rbd --pool test test11 test12 - rbd ls | grep test12 - rbd ls test | grep -qv test12 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep test12 + rbd ls test | tee "$TESTDIR/rbd_ls.out" | grep -qv test12 - rm -f /tmp/empty + rm -f /tmp/empty "$TESTDIR/rbd_ls.out" ceph osd pool delete test test --yes-i-really-really-mean-it ceph osd pool delete rbd rbd --yes-i-really-really-mean-it ceph osd pool create rbd 100 @@ -299,20 +307,22 @@ test_clone() { rados mkpool rbd2 rbd clone test1@s1 rbd2/clone - rbd -p rbd2 ls | grep clone - rbd -p rbd2 ls -l | grep clone | grep test1@s1 - rbd ls | grep -v clone + rbd -p rbd2 ls | tee "$TESTDIR/rbd_ls.out" | grep clone + rbd -p rbd2 ls -l | tee "$TESTDIR/rbd_ls.out" | grep clone | grep test1@s1 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep -v clone rbd flatten rbd2/clone rbd snap create rbd2/clone@s1 rbd snap protect rbd2/clone@s1 rbd clone rbd2/clone@s1 clone2 - rbd ls | grep clone2 - rbd ls -l | grep clone2 | grep rbd2/clone@s1 - rbd -p rbd2 ls | grep -v clone2 + rbd ls | tee "$TESTDIR/rbd_ls.out" | grep clone2 + rbd ls -l | tee "$TESTDIR/rbd_ls.out" | grep clone2 | grep rbd2/clone@s1 + rbd -p rbd2 ls | tee "$TESTDIR/rbd_ls.out" | grep -v clone2 rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it rados rmpool rbd rbd --yes-i-really-really-mean-it rados mkpool rbd rbd --yes-i-really-really-mean-it + + rm -f "$TESTDIR/rbd_ls.out" } test_pool_image_args -- cgit v1.2.1