summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Durgin <josh.durgin@inktank.com>2013-03-01 13:32:59 -0800
committerJosh Durgin <josh.durgin@inktank.com>2013-03-01 14:45:23 -0800
commita9e22cceb66210ee5165d97bc6631e1f8a64b99d (patch)
tree2e425a9b43047641c36d5d1fd9157256a01f5260
parent0f42eddef5da6c1babe9ed51ceaa3212a42c2ec4 (diff)
downloadceph-wip-rbd-workunit-debug.tar.gz
qa: don't suppress output from rbd commandswip-rbd-workunit-debug
This makes debugging failures much easier. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-rwxr-xr-xqa/workunits/rbd/copy.sh152
1 files 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