mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
qa: improved rgw tests
This commit is contained in:
parent
f7f32b24b1
commit
628e28e2b2
92
qa/rgw/s3.sh
92
qa/rgw/s3.sh
@ -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/$file_name filename=tmp/$dest_fname
|
||||
do_op 1 diff tmp/$file_name tmp/$dest_fname
|
||||
rm -f tmp/foo.tmp
|
||||
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 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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user