diff options
author | Yehuda Sadeh <yehuda@hq.newdream.net> | 2010-09-22 22:32:40 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@hq.newdream.net> | 2010-09-22 22:40:28 -0700 |
commit | 1eaec1794329131f160d0978ea2035c7aeb58bef (patch) | |
tree | 123213bf3a2d1b96112d792a405dd2a1f157fc3b /qa/rgw | |
parent | 2e5fa67c6e44ee3206e39588137ae9206923262b (diff) | |
download | ceph-1eaec1794329131f160d0978ea2035c7aeb58bef.tar.gz |
qa: add simple rgw test
Diffstat (limited to 'qa/rgw')
-rwxr-xr-x | qa/rgw/s3.sh | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/qa/rgw/s3.sh b/qa/rgw/s3.sh new file mode 100755 index 00000000000..6afea61440b --- /dev/null +++ b/qa/rgw/s3.sh @@ -0,0 +1,126 @@ +#!/bin/sh + + +origdir=`pwd` +# set -x + +load_credentials() { + if [ -e ~/.s3 ]; then + source ~/.s3 + else + echo "ERROR: Credentials not defined!" + exit 1 + fi +} + +if [ "$S3_ACCESS_KEY_ID" == "" ] || + [ "$S3_HOSTNAME" == "" ] || + [ "$S3_SECRET_ACCESS_KEY" == "" ]; then + load_credentials +fi + +bindir=${origdir}/libs3/build/bin +libdir=${origdir}/libs3/build/lib +log=${origdir}/s3.log +export LD_LIBRARY_PATH=${libdir} +s3=${bindir}/s3 + +tmp_bucket="test-`date | sed 's/[: ]/-/g'`" + +cleanup() { + rm -fR libs3 +} + +build() { + echo "Checking out source" + log git clone git://github.com/wido/libs3.git + echo "Building" + log make -C libs3 +} + +init() { + cleanup + build + mkdir -p tmp +} + +log() { + "$@" >> $log +} + + +do_op() { + 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 + [ $should_succeed -ne 0 ] && echo "Command failed:" + [ $should_succeed -eq 0 ] && echo "Command succeeded unexpectedly:" + echo "$op $params" + cat .cmd.log + exit 1 + fi +} + +run_s3() { + echo $s3 "$@" + $s3 "$@" +} + +create_bucket() { + bucket_name=$1 + + run_s3 create $tmp_bucket +} + +delete_bucket() { + bucket_name=$1 + + run_s3 delete $tmp_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 +} + +get_file() { + file_name=$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 +} + +delete_file() { + file_name=$1 + run_s3 delete $tmp_bucket/$file_name +} + + +main() { + log echo "****************************************************************" + log echo "* `date`" >> $log + log echo "****************************************************************" + 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 delete_file foo + do_op 1 delete_bucket $tmp_bucket +} + + +main "$@" + + |