Skip to content

Instantly share code, notes, and snippets.

@escowles
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save escowles/e3c725f235ce7cec1bc3 to your computer and use it in GitHub Desktop.

Select an option

Save escowles/e3c725f235ce7cec1bc3 to your computer and use it in GitHub Desktop.
sanity check scripts
#!/bin/sh
BASE=http://lib-devsandbox1.ucsd.edu:8080/fedora
OBJ=1000
DSZ=$(( 1024 * 1024 * 10 )) # 10 MB
AUTH="-u fedoraAdmin:fedoraAdmin"
if [ ! -d tmp ]; then
mkdir tmp
mkdir tmp/create
mkdir tmp/update
mkdir tmp/read
N=0
echo `date +%T` "generating $OBJ datastreams x2 (create & update versions)"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
openssl rand $DSZ > tmp/create/$N
openssl rand $DSZ > tmp/update/$N
done
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
fi
N=0
echo `date +%T` "creating $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl $AUTH -s -X POST "$BASE/objects/bt:$N/?format=info:fedora/fedora-system:FOXML-1.1&label=$N" > /dev/null
curl $AUTH -s -X POST -T tmp/create/$N -H "Content-Type: application/octet-stream" "$BASE/objects/bt:$N/datastreams/ds1?versionable=false&controlGroup=M" > /dev/null
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
N=0
echo `date +%T` "reading $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl $AUTH -s "$BASE/objects/bt:$N/datastreams/ds1/content" > tmp/read/$N
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
echo `date +%T` "checking reads"
N=0
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
diff tmp/create/$N tmp/read/$N
done
N=0
echo `date +%T` "updating $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl $AUTH -s -X PUT -T tmp/update/$N "$BASE/objects/bt:$N/datastreams/ds1?versionable=false&controlGroup=M" > /dev/null
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
N=0
echo `date +%T` "deleting $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl $AUTH -s -X DELETE $BASE/objects/bt:$N > /dev/null
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
#!/bin/sh
BASE=http://lib-devsandbox1.ucsd.edu:8080/rest
BATCH=$RANDOM
OBJ=1000
DSZ=$(( 1024 * 1024 * 10 )) # 10 MB
if [ ! -d tmp ]; then
mkdir tmp
mkdir tmp/create
mkdir tmp/update
mkdir tmp/read
N=0
echo `date +%T` "generating $OBJ datastreams x2 (create & update versions)"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
openssl rand $DSZ > tmp/create/$N
openssl rand $DSZ > tmp/update/$N
done
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
fi
N=0
echo `date +%T` "creating $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl -s -X PUT $BASE/$BATCH/$N?mixin=fedora:object > /dev/null
curl -s -X PUT -T tmp/create/$N $BASE/$BATCH/$N/ds1/fcr:content
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
N=0
echo `date +%T` "reading $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl -s $BASE/$BATCH/$N/ds1/fcr:content > tmp/read/$N
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
echo `date +%T` "checking reads"
N=0
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
diff tmp/create/$N tmp/read/$N
done
echo
N=0
echo `date +%T` "updating $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl -s -X PUT -T tmp/update/$N $BASE/$BATCH/$N/ds1/fcr:content
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
N=0
echo `date +%T` "deleting $OBJ datastreams"
START=`date +%s`
while [ $N -lt $OBJ ]; do
N=$(( $N + 1 ))
if [ $(( $N % 10 )) = 0 ]; then
echo -n "."
fi
curl -s -X DELETE $BASE/$BATCH/$N
done
echo
END=`date +%s`
echo `date +%T` "done in" $(( $END - $START )) "seconds"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment