mirror of
https://github.com/ceph/ceph
synced 2024-12-19 09:57:05 +00:00
1c096a8062
Now it's not the caller's responsibility to specify the format, and we can eliminate a job from the qa suite. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
124 lines
2.9 KiB
Bash
Executable File
124 lines
2.9 KiB
Bash
Executable File
#!/bin/sh -ex
|
|
|
|
IMGS="testimg1 testimg2 testimg3 foo foo2 bar bar2 test1 test2 test3"
|
|
|
|
remove_images() {
|
|
for img in $IMGS
|
|
do
|
|
rbd snap purge $img || true
|
|
rbd rm $img || true
|
|
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
|
|
rbd export testimg1 /tmp/img2
|
|
rbd snap create testimg1 --snap=snap1
|
|
rbd resize testimg1 --size=128
|
|
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
|
|
|
|
# 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 -s 1 foo
|
|
rbd create --new-format -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
|
|
|
|
remove_images
|
|
}
|
|
|
|
test_ls() {
|
|
echo "testing ls..."
|
|
remove_images
|
|
|
|
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 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 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
|
|
|
|
remove_images
|
|
}
|
|
|
|
test_rename
|
|
test_ls
|
|
RBD_CREATE_ARGS=""
|
|
test_others
|
|
# wait for watch to timeout so we can remove old images
|
|
# TODO: remove this once #2476 is fixed
|
|
sleep 30
|
|
RBD_CREATE_ARGS="--new-format"
|
|
test_others
|
|
|
|
echo OK
|