]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: improved rgw tests
authorYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 24 Sep 2010 17:13:14 +0000 (10:13 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 24 Sep 2010 17:16:14 +0000 (10:16 -0700)
qa/rgw/s3.sh

index 6afea61440bd3d076c410ba3f10d1b3160b6632a..e874b943b10676b2fad3dd27073b8a6dfe04d9e3 100755 (executable)
@@ -25,10 +25,11 @@ log=${origdir}/s3.log
 export LD_LIBRARY_PATH=${libdir}
 s3=${bindir}/s3
 
-tmp_bucket="test-`date | sed 's/[: ]/-/g'`"
+tmp_bucket="test-`date +%s`"
+tmpdir="tmp"
 
 cleanup() {
-       rm -fR libs3
+       rm -fR libs3 tmp
 }
 
 build() {
@@ -48,17 +49,8 @@ log() {
        "$@" >> $log
 }
 
-
-do_op() {
+check_error() {
        should_succeed=$1
-       shift
-       op=$1
-       shift
-       params="$@"
-       echo "# $op" "$@" | tee -a $log
-       $op "$@" > .cmd.log 2>&1
-       log cat .cmd.log
-
        fail=`grep -c ERROR .cmd.log`
        [ $fail -eq 0 ] && success=1 || success=0
        if [ $success -ne $should_succeed ]; then
@@ -70,8 +62,20 @@ do_op() {
        fi
 }
 
+do_op() {
+       should_succeed=$1
+       shift
+       op=$1
+       shift
+       params="$@"
+       echo "# $op" "$@" | tee -a $log
+       $op "$@" > .cmd.log 2>&1
+       log cat .cmd.log
+       check_error $should_succeed
+}
+
 run_s3() {
-       echo $s3 "$@"
+       echo $s3 "$@" >> .cmd.log
        $s3 "$@"
 }
 
@@ -88,24 +92,59 @@ delete_bucket() {
 }
 
 create_file() {
-       file_name=$1
-       dd if=/dev/urandom of=tmp/$file_name bs=4096 count=2048
-       run_s3 put $tmp_bucket/$file_name filename=tmp/$file_name
+       filename=$1
+       dd if=/dev/urandom of=$tmpdir/$filename bs=4096 count=2048
+       run_s3 put $tmp_bucket/$filename filename=$tmpdir/$filename
 }
 
 get_file() {
-       file_name=$1
+       filename=$1
+       dest_fname=$2
+       run_s3 get $tmp_bucket/$filename filename=$tmpdir/$dest_fname
+       do_op 1 diff $tmpdir/$filename $tmpdir/$dest_fname
+       rm -f $tmpdir/foo.tmp
+}
+
+get_acl() {
+       filename=$1
        dest_fname=$2
-       run_s3 get $tmp_bucket/$file_name filename=tmp/$dest_fname
-       do_op 1 diff tmp/$file_name tmp/$dest_fname
-       rm -f tmp/foo.tmp
+       run_s3 getacl $tmp_bucket/$filename filename=$tmpdir/$dest_fname
+}
+
+set_acl() {
+       filename=$1
+       src_fname=$2
+       run_s3 setacl $tmp_bucket/$filename filename=$tmpdir/$src_fname
 }
 
 delete_file() {
-       file_name=$1
-       run_s3 delete $tmp_bucket/$file_name
+       filename=$1
+       run_s3 delete $tmp_bucket/$filename
 }
 
+get_anon() {
+       should_succeed=$1
+       bucket=$2
+       fname=$3
+       dest=$tmpdir/$4
+
+       echo "# get_anon $@"
+
+       url="http://$bucket.$S3_HOSTNAME/$fname"
+       wget $url -O $dest > .cmd.log 2>&1
+       res=$?
+       log cat .cmd.log
+       if [ $res -ne 0 ]; then
+               echo "ERROR: Could not fetch file anonymously (url=$url)" > .cmd.log
+       fi
+       check_error $should_succeed
+}
+
+add_acl() {
+       filename=$1
+       acl=$2
+       echo $acl >> $tmpdir/$filename
+}
 
 main() {
        log echo "****************************************************************"
@@ -114,8 +153,17 @@ main() {
        init
        do_op 1 create_bucket $tmp_bucket
        do_op 0 create_bucket $tmp_bucket
+
        do_op 1 create_file foo
        do_op 1 get_file foo foo.tmp
+
+       do_op 1 get_acl foo foo.acl
+       get_anon 0 $tmp_bucket foo foo.anon
+       add_acl foo.acl "Group All Users READ"
+
+       do_op 1 set_acl foo foo.acl
+       get_anon 1 $tmp_bucket foo foo.anon
+
        do_op 1 delete_file foo
        do_op 1 delete_bucket $tmp_bucket
 }