]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: rbd: rename the copy.sh to generic.sh
authorDongsheng Yang <dongsheng.yang@easystack.cn>
Sun, 25 Dec 2016 04:48:09 +0000 (23:48 -0500)
committerDongsheng Yang <dongsheng.yang@easystack.cn>
Thu, 23 Feb 2017 03:10:59 +0000 (11:10 +0800)
The copy.sh is not only testing the rbd copy, but also
others such as rbd ls, rbd remove. Then rename it to generic.sh

Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
qa/suites/rbd/cli/workloads/rbd_cli_copy.yaml [deleted file]
qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml [new file with mode: 0644]
qa/workunits/rbd/cli_generic.sh [new file with mode: 0755]
qa/workunits/rbd/copy.sh [deleted file]
src/test/run-rbd-tests

diff --git a/qa/suites/rbd/cli/workloads/rbd_cli_copy.yaml b/qa/suites/rbd/cli/workloads/rbd_cli_copy.yaml
deleted file mode 100644 (file)
index 2f99f89..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-tasks:
-- workunit:
-    clients:
-      client.0:
-        - rbd/copy.sh
diff --git a/qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml b/qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml
new file mode 100644 (file)
index 0000000..be43b3e
--- /dev/null
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+    clients:
+      client.0:
+        - rbd/cli_generic.sh
diff --git a/qa/workunits/rbd/cli_generic.sh b/qa/workunits/rbd/cli_generic.sh
new file mode 100755 (executable)
index 0000000..84cacd4
--- /dev/null
@@ -0,0 +1,358 @@
+#!/bin/sh -ex
+
+# make sure rbd pool is EMPTY.. this is a test script!!
+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 clone2"
+
+tiered=0
+if ceph osd dump | grep ^pool | grep "'rbd'" | grep tier; then
+    tiered=1
+fi
+
+remove_images() {
+    for img in $IMGS
+    do
+        (rbd snap purge $img || true) >/dev/null 2>&1
+        (rbd rm $img || true) >/dev/null 2>&1
+    done
+}
+
+test_others() {
+    echo "testing import, export, resize, and snapshots..."
+    TMP_FILES="/tmp/img1 /tmp/img1.new /tmp/img2 /tmp/img2.new /tmp/img3 /tmp/img3.new /tmp/img1.snap1"
+
+    remove_images
+    rm -f $TMP_FILES
+
+    # create an image
+    dd if=/bin/sh of=/tmp/img1 bs=1k count=1 seek=10
+    dd if=/bin/dd of=/tmp/img1 bs=1k count=10 seek=100
+    dd if=/bin/rm of=/tmp/img1 bs=1k count=100 seek=1000
+    dd if=/bin/ls of=/tmp/img1 bs=1k seek=10000
+    dd if=/bin/ln of=/tmp/img1 bs=1k seek=100000
+
+    # import, snapshot
+    rbd import $RBD_CREATE_ARGS /tmp/img1 testimg1
+    rbd resize testimg1 --size=256 --allow-shrink
+    rbd export testimg1 /tmp/img2
+    rbd snap create testimg1 --snap=snap1
+    rbd resize testimg1 --size=128 && exit 1 || true   # shrink should fail
+    rbd resize testimg1 --size=128 --allow-shrink
+    rbd export testimg1 /tmp/img3
+
+    # info
+    rbd info testimg1 | grep 'size 128 MB'
+    rbd info --snap=snap1 testimg1 | grep 'size 256 MB'
+
+    # make copies
+    rbd copy testimg1 --snap=snap1 testimg2
+    rbd copy testimg1 testimg3
+
+    # verify the result
+    rbd info testimg2 | grep 'size 256 MB'
+    rbd info testimg3 | grep 'size 128 MB'
+
+    rbd export testimg1 /tmp/img1.new
+    rbd export testimg2 /tmp/img2.new
+    rbd export testimg3 /tmp/img3.new
+
+    cmp /tmp/img2 /tmp/img2.new
+    cmp /tmp/img3 /tmp/img3.new
+
+    # rollback
+    rbd snap rollback --snap=snap1 testimg1
+    rbd info testimg1 | grep 'size 256 MB'
+    rbd export testimg1 /tmp/img1.snap1
+    cmp /tmp/img2 /tmp/img1.snap1
+
+    # test create, copy of zero-length images
+    rbd rm testimg2
+    rbd rm testimg3
+    rbd create testimg2 -s 0
+    rbd cp testimg2 testimg3
+
+    # 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'
+
+    remove_images
+    rm -f $TMP_FILES
+}
+
+test_rename() {
+    echo "testing rename..."
+    remove_images
+
+    rbd create --image-format 1 -s 1 foo
+    rbd create --image-format 2 -s 1 bar
+    rbd rename foo foo2
+    rbd rename foo2 bar 2>&1 | grep exists
+    rbd rename bar bar2
+    rbd rename bar2 foo2 2>&1 | 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 rename rbd2/bar foo
+    rbd rename --pool rbd2 foo bar
+    ! rbd rename rbd2/bar --dest-pool rbd foo
+    rbd rename --pool rbd2 bar --dest-pool rbd2 foo
+    rbd -p rbd2 ls | grep foo
+    rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it
+
+    remove_images
+}
+
+test_ls() {
+    echo "testing ls..."
+    remove_images
+
+    rbd create --image-format 1 -s 1 test1
+    rbd create --image-format 1 -s 1 test2
+    rbd ls | grep test1
+    rbd ls | grep test2
+    rbd ls | 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 rm test1
+    rbd rm test2
+
+    rbd create --image-format 2 -s 1 test1
+    rbd create --image-format 2 -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 rm test1
+    rbd rm test2
+
+    rbd create --image-format 2 -s 1 test1
+    rbd create --image-format 1 -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'
+    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
+    for i in $(seq -w 00 99); do
+       rbd rm image.$i 
+    done
+
+    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
+    for i in $(seq -w 00 99); do
+       rbd rm image.$i 
+    done
+}
+
+test_remove() {
+    echo "testing remove..."
+    remove_images
+
+    rbd remove "NOT_EXIST" && exit 1 || true   # remove should fail
+    rbd create --image-format 1 -s 1 test1
+    rbd rm test1
+    rbd ls | wc -l | grep "^0$"
+
+    rbd create --image-format 2 -s 1 test2
+    rbd rm test2
+    rbd ls | wc -l | grep "^0$"
+
+    # check that remove succeeds even if it's
+    # interrupted partway through. simulate this
+    # by removing some objects manually.
+
+    # remove with header missing (old format)
+    rbd create --image-format 1 -s 1 test1
+    rados rm -p rbd test1.rbd
+    rbd rm test1
+    rbd ls | wc -l | grep "^0$"
+
+    if [ $tiered -eq 0 ]; then
+        # remove with header missing
+       rbd create --image-format 2 -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$"
+
+        # remove with id missing
+       rbd create --image-format 2 -s 1 test2
+       rados -p rbd rm rbd_id.test2
+       rbd rm test2
+       rbd ls | wc -l | grep "^0$"
+
+        # remove with header and id missing
+       rbd create --image-format 2 -s 1 test2
+       HEADER=$(rados -p rbd ls | grep '^rbd_header')
+       rados -p rbd rm $HEADER
+       rados -p rbd rm rbd_id.test2
+       rbd rm test2
+       rbd ls | wc -l | grep "^0$"
+    fi
+
+    # remove with rbd_children object missing (and, by extension,
+    # with child not mentioned in rbd_children)
+    rbd create --image-format 2 -s 1 test2
+    rbd snap create test2@snap
+    rbd snap protect test2@snap
+    rbd clone test2@snap clone
+
+    rados -p rbd rm rbd_children
+    rbd rm clone
+    rbd ls | grep clone | wc -l | grep '^0$'
+
+    rbd snap unprotect test2@snap
+    rbd snap rm test2@snap
+    rbd rm test2
+}
+
+test_locking() {
+    echo "testing locking..."
+    remove_images
+
+    rbd create -s 1 test1
+    rbd lock list test1 | wc -l | grep '^0$'
+    rbd lock add test1 id
+    rbd lock list test1 | 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 add test1 id --shared tag
+    rbd lock list test1 | grep ' 1 '
+    rbd lock add test1 id --shared tag
+    rbd lock list test1 | grep ' 2 '
+    rbd lock add test1 id2 --shared tag
+    rbd lock list test1 | grep ' 3 '
+    rbd lock list test1 | tail -n 1 | awk '{print $2, $1;}' | xargs rbd lock remove test1
+    if rbd info test1 | grep -qE "features:.*exclusive"
+    then
+      # new locking functionality requires all locks to be released
+      while [ -n "$(rbd lock list test1)" ]
+      do
+        rbd lock list test1 | tail -n 1 | awk '{print $2, $1;}' | xargs rbd lock remove test1
+      done
+    fi
+    rbd rm test1
+}
+
+test_pool_image_args() {
+    echo "testing pool and image args..."
+    remove_images
+
+    ceph osd pool delete test test --yes-i-really-really-mean-it || true
+    ceph osd pool create test 100
+    truncate -s 1 /tmp/empty
+
+    rbd ls | wc -l | grep 0
+    rbd create -s 1 test1
+    rbd ls | grep -q test1
+    rbd import --image test2 /tmp/empty
+    rbd ls | grep -q test2
+    rbd --dest test3 import /tmp/empty
+    rbd ls | grep -q test3
+    rbd import /tmp/empty foo
+    rbd ls | grep -q foo
+
+    rbd ls test | wc -l | grep 0
+    rbd import /tmp/empty test/test1
+    rbd ls test | grep -q test1
+    rbd -p test import /tmp/empty test2
+    rbd ls test | grep -q test2
+    rbd --image test3 -p test import /tmp/empty
+    rbd ls test | grep -q test3
+    rbd --image test4 -p test import /tmp/empty
+    rbd ls test | grep -q test4
+    rbd --dest test5 -p test import /tmp/empty
+    rbd ls test | grep -q test5
+    rbd --dest test6 --dest-pool test import /tmp/empty
+    rbd ls test | grep -q test6
+    rbd --image test7 --dest-pool test import /tmp/empty
+    rbd ls test | grep -q test7
+    rbd --image test/test8 import /tmp/empty
+    rbd ls test | grep -q test8
+    rbd --dest test/test9 import /tmp/empty
+    rbd ls test | grep -q test9
+    rbd import --pool test /tmp/empty
+    rbd ls test | 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 | grep -q test10
+    rbd copy test/test9 test/test10
+    rbd ls test | grep -q test10
+    rbd copy --pool test test10 --dest-pool test test11
+    rbd ls test | grep -q test11
+    rbd copy --dest-pool rbd --pool test test11 test12
+    rbd ls | grep test12
+    rbd ls test | grep -qv test12
+
+    rm -f /tmp/empty
+    ceph osd pool delete test test --yes-i-really-really-mean-it
+
+    for f in foo test1 test10 test12 test2 test3 ; do
+       rbd rm $f
+    done
+}
+
+test_clone() {
+    echo "testing clone..."
+    remove_images
+    rbd create test1 $RBD_CREATE_ARGS -s 1
+    rbd snap create test1@s1
+    rbd snap protect test1@s1
+
+    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 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 rm clone2
+    rbd snap unprotect rbd2/clone@s1
+    rbd snap rm rbd2/clone@s1
+    rbd rm rbd2/clone
+    rbd snap unprotect test1@s1
+    rbd snap rm test1@s1
+    rbd rm test1
+    rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it
+}
+
+test_pool_image_args
+test_rename
+test_ls
+test_remove
+RBD_CREATE_ARGS=""
+test_others
+test_locking
+RBD_CREATE_ARGS="--image-format 2"
+test_others
+test_locking
+test_clone
+
+echo OK
diff --git a/qa/workunits/rbd/copy.sh b/qa/workunits/rbd/copy.sh
deleted file mode 100755 (executable)
index 84cacd4..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-#!/bin/sh -ex
-
-# make sure rbd pool is EMPTY.. this is a test script!!
-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 clone2"
-
-tiered=0
-if ceph osd dump | grep ^pool | grep "'rbd'" | grep tier; then
-    tiered=1
-fi
-
-remove_images() {
-    for img in $IMGS
-    do
-        (rbd snap purge $img || true) >/dev/null 2>&1
-        (rbd rm $img || true) >/dev/null 2>&1
-    done
-}
-
-test_others() {
-    echo "testing import, export, resize, and snapshots..."
-    TMP_FILES="/tmp/img1 /tmp/img1.new /tmp/img2 /tmp/img2.new /tmp/img3 /tmp/img3.new /tmp/img1.snap1"
-
-    remove_images
-    rm -f $TMP_FILES
-
-    # create an image
-    dd if=/bin/sh of=/tmp/img1 bs=1k count=1 seek=10
-    dd if=/bin/dd of=/tmp/img1 bs=1k count=10 seek=100
-    dd if=/bin/rm of=/tmp/img1 bs=1k count=100 seek=1000
-    dd if=/bin/ls of=/tmp/img1 bs=1k seek=10000
-    dd if=/bin/ln of=/tmp/img1 bs=1k seek=100000
-
-    # import, snapshot
-    rbd import $RBD_CREATE_ARGS /tmp/img1 testimg1
-    rbd resize testimg1 --size=256 --allow-shrink
-    rbd export testimg1 /tmp/img2
-    rbd snap create testimg1 --snap=snap1
-    rbd resize testimg1 --size=128 && exit 1 || true   # shrink should fail
-    rbd resize testimg1 --size=128 --allow-shrink
-    rbd export testimg1 /tmp/img3
-
-    # info
-    rbd info testimg1 | grep 'size 128 MB'
-    rbd info --snap=snap1 testimg1 | grep 'size 256 MB'
-
-    # make copies
-    rbd copy testimg1 --snap=snap1 testimg2
-    rbd copy testimg1 testimg3
-
-    # verify the result
-    rbd info testimg2 | grep 'size 256 MB'
-    rbd info testimg3 | grep 'size 128 MB'
-
-    rbd export testimg1 /tmp/img1.new
-    rbd export testimg2 /tmp/img2.new
-    rbd export testimg3 /tmp/img3.new
-
-    cmp /tmp/img2 /tmp/img2.new
-    cmp /tmp/img3 /tmp/img3.new
-
-    # rollback
-    rbd snap rollback --snap=snap1 testimg1
-    rbd info testimg1 | grep 'size 256 MB'
-    rbd export testimg1 /tmp/img1.snap1
-    cmp /tmp/img2 /tmp/img1.snap1
-
-    # test create, copy of zero-length images
-    rbd rm testimg2
-    rbd rm testimg3
-    rbd create testimg2 -s 0
-    rbd cp testimg2 testimg3
-
-    # 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'
-
-    remove_images
-    rm -f $TMP_FILES
-}
-
-test_rename() {
-    echo "testing rename..."
-    remove_images
-
-    rbd create --image-format 1 -s 1 foo
-    rbd create --image-format 2 -s 1 bar
-    rbd rename foo foo2
-    rbd rename foo2 bar 2>&1 | grep exists
-    rbd rename bar bar2
-    rbd rename bar2 foo2 2>&1 | 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 rename rbd2/bar foo
-    rbd rename --pool rbd2 foo bar
-    ! rbd rename rbd2/bar --dest-pool rbd foo
-    rbd rename --pool rbd2 bar --dest-pool rbd2 foo
-    rbd -p rbd2 ls | grep foo
-    rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it
-
-    remove_images
-}
-
-test_ls() {
-    echo "testing ls..."
-    remove_images
-
-    rbd create --image-format 1 -s 1 test1
-    rbd create --image-format 1 -s 1 test2
-    rbd ls | grep test1
-    rbd ls | grep test2
-    rbd ls | 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 rm test1
-    rbd rm test2
-
-    rbd create --image-format 2 -s 1 test1
-    rbd create --image-format 2 -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 rm test1
-    rbd rm test2
-
-    rbd create --image-format 2 -s 1 test1
-    rbd create --image-format 1 -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'
-    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
-    for i in $(seq -w 00 99); do
-       rbd rm image.$i 
-    done
-
-    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
-    for i in $(seq -w 00 99); do
-       rbd rm image.$i 
-    done
-}
-
-test_remove() {
-    echo "testing remove..."
-    remove_images
-
-    rbd remove "NOT_EXIST" && exit 1 || true   # remove should fail
-    rbd create --image-format 1 -s 1 test1
-    rbd rm test1
-    rbd ls | wc -l | grep "^0$"
-
-    rbd create --image-format 2 -s 1 test2
-    rbd rm test2
-    rbd ls | wc -l | grep "^0$"
-
-    # check that remove succeeds even if it's
-    # interrupted partway through. simulate this
-    # by removing some objects manually.
-
-    # remove with header missing (old format)
-    rbd create --image-format 1 -s 1 test1
-    rados rm -p rbd test1.rbd
-    rbd rm test1
-    rbd ls | wc -l | grep "^0$"
-
-    if [ $tiered -eq 0 ]; then
-        # remove with header missing
-       rbd create --image-format 2 -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$"
-
-        # remove with id missing
-       rbd create --image-format 2 -s 1 test2
-       rados -p rbd rm rbd_id.test2
-       rbd rm test2
-       rbd ls | wc -l | grep "^0$"
-
-        # remove with header and id missing
-       rbd create --image-format 2 -s 1 test2
-       HEADER=$(rados -p rbd ls | grep '^rbd_header')
-       rados -p rbd rm $HEADER
-       rados -p rbd rm rbd_id.test2
-       rbd rm test2
-       rbd ls | wc -l | grep "^0$"
-    fi
-
-    # remove with rbd_children object missing (and, by extension,
-    # with child not mentioned in rbd_children)
-    rbd create --image-format 2 -s 1 test2
-    rbd snap create test2@snap
-    rbd snap protect test2@snap
-    rbd clone test2@snap clone
-
-    rados -p rbd rm rbd_children
-    rbd rm clone
-    rbd ls | grep clone | wc -l | grep '^0$'
-
-    rbd snap unprotect test2@snap
-    rbd snap rm test2@snap
-    rbd rm test2
-}
-
-test_locking() {
-    echo "testing locking..."
-    remove_images
-
-    rbd create -s 1 test1
-    rbd lock list test1 | wc -l | grep '^0$'
-    rbd lock add test1 id
-    rbd lock list test1 | 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 add test1 id --shared tag
-    rbd lock list test1 | grep ' 1 '
-    rbd lock add test1 id --shared tag
-    rbd lock list test1 | grep ' 2 '
-    rbd lock add test1 id2 --shared tag
-    rbd lock list test1 | grep ' 3 '
-    rbd lock list test1 | tail -n 1 | awk '{print $2, $1;}' | xargs rbd lock remove test1
-    if rbd info test1 | grep -qE "features:.*exclusive"
-    then
-      # new locking functionality requires all locks to be released
-      while [ -n "$(rbd lock list test1)" ]
-      do
-        rbd lock list test1 | tail -n 1 | awk '{print $2, $1;}' | xargs rbd lock remove test1
-      done
-    fi
-    rbd rm test1
-}
-
-test_pool_image_args() {
-    echo "testing pool and image args..."
-    remove_images
-
-    ceph osd pool delete test test --yes-i-really-really-mean-it || true
-    ceph osd pool create test 100
-    truncate -s 1 /tmp/empty
-
-    rbd ls | wc -l | grep 0
-    rbd create -s 1 test1
-    rbd ls | grep -q test1
-    rbd import --image test2 /tmp/empty
-    rbd ls | grep -q test2
-    rbd --dest test3 import /tmp/empty
-    rbd ls | grep -q test3
-    rbd import /tmp/empty foo
-    rbd ls | grep -q foo
-
-    rbd ls test | wc -l | grep 0
-    rbd import /tmp/empty test/test1
-    rbd ls test | grep -q test1
-    rbd -p test import /tmp/empty test2
-    rbd ls test | grep -q test2
-    rbd --image test3 -p test import /tmp/empty
-    rbd ls test | grep -q test3
-    rbd --image test4 -p test import /tmp/empty
-    rbd ls test | grep -q test4
-    rbd --dest test5 -p test import /tmp/empty
-    rbd ls test | grep -q test5
-    rbd --dest test6 --dest-pool test import /tmp/empty
-    rbd ls test | grep -q test6
-    rbd --image test7 --dest-pool test import /tmp/empty
-    rbd ls test | grep -q test7
-    rbd --image test/test8 import /tmp/empty
-    rbd ls test | grep -q test8
-    rbd --dest test/test9 import /tmp/empty
-    rbd ls test | grep -q test9
-    rbd import --pool test /tmp/empty
-    rbd ls test | 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 | grep -q test10
-    rbd copy test/test9 test/test10
-    rbd ls test | grep -q test10
-    rbd copy --pool test test10 --dest-pool test test11
-    rbd ls test | grep -q test11
-    rbd copy --dest-pool rbd --pool test test11 test12
-    rbd ls | grep test12
-    rbd ls test | grep -qv test12
-
-    rm -f /tmp/empty
-    ceph osd pool delete test test --yes-i-really-really-mean-it
-
-    for f in foo test1 test10 test12 test2 test3 ; do
-       rbd rm $f
-    done
-}
-
-test_clone() {
-    echo "testing clone..."
-    remove_images
-    rbd create test1 $RBD_CREATE_ARGS -s 1
-    rbd snap create test1@s1
-    rbd snap protect test1@s1
-
-    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 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 rm clone2
-    rbd snap unprotect rbd2/clone@s1
-    rbd snap rm rbd2/clone@s1
-    rbd rm rbd2/clone
-    rbd snap unprotect test1@s1
-    rbd snap rm test1@s1
-    rbd rm test1
-    rados rmpool rbd2 rbd2 --yes-i-really-really-mean-it
-}
-
-test_pool_image_args
-test_rename
-test_ls
-test_remove
-RBD_CREATE_ARGS=""
-test_others
-test_locking
-RBD_CREATE_ARGS="--image-format 2"
-test_others
-test_locking
-test_clone
-
-echo OK
index b296d9def6616108c7ef3da5a999677e05de84b6..3bd27ab9220b77d633df177a26dd1245589d34f7 100755 (executable)
@@ -26,7 +26,7 @@ run_cli_tests() {
     recreate_pool rbd
     $CEPH_SRC/../qa/workunits/rbd/import_export.sh
     recreate_pool rbd
-    $CEPH_SRC/../qa/workunits/rbd/copy.sh
+    $CEPH_SRC/../qa/workunits/rbd/cli_generic.sh
     recreate_pool rbd
     $CEPH_SRC/../qa/workunits/rbd/journal.sh
 }