1 |
3781
|
daigle
|
#!/bin/bash
|
2 |
|
|
#Call a java client class to query metacat automatically and metacat server
|
3 |
|
|
#will record the performance data into a file. Since we need restart postgres,
|
4 |
|
|
#this script should be run as root user
|
5 |
|
|
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
|
6 |
|
|
#in Metacat to get metaca-client.jar and metacat.jar in build directory.
|
7 |
|
|
|
8 |
|
|
#variables
|
9 |
|
|
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
|
10 |
|
|
METACAT=../build/metacat.jar
|
11 |
|
|
METACAT_CLIENT=../build/metacat-client.jar
|
12 |
|
|
UTILITIES=../lib/utilities.jar
|
13 |
|
|
METACATURL=http://chico.dyndns.org:8081/knb/metacat
|
14 |
|
|
QUERY=../test/performance_measure_query
|
15 |
|
|
TIME=2
|
16 |
|
|
TOMCATUSER=tao
|
17 |
|
|
|
18 |
|
|
#copy the java client to build directory
|
19 |
|
|
rm -rf ../build/tests/
|
20 |
|
|
mkdir ../build/tests
|
21 |
|
|
mkdir ../build/tests/edu
|
22 |
|
|
mkdir ../build/tests/edu/ucsb
|
23 |
|
|
mkdir ../build/tests/edu/ucsb/nceas
|
24 |
|
|
mkdir ../build/tests/edu/ucsb/nceas/metacattest
|
25 |
|
|
cp ../test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java ../build/tests/edu/ucsb/nceas/metacattest/.
|
26 |
|
|
|
27 |
|
|
#compile the class
|
28 |
|
|
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES ../build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java
|
29 |
|
|
|
30 |
|
|
|
31 |
|
|
|
32 |
|
|
|
33 |
|
|
#Iterate to restart postgres and tomcat, and call java client class
|
34 |
|
|
for (( i = 0; i < $TIME; i++))
|
35 |
|
|
do
|
36 |
|
|
#retart postgres
|
37 |
|
|
/etc/init.d/postgresql-8.2 restart
|
38 |
|
|
#Check if posgres restart successfully
|
39 |
|
|
successPQL=false;
|
40 |
|
|
while [ $successPQL = false ]
|
41 |
|
|
do
|
42 |
|
|
#if found netstat command has posgres lisenter is ready,
|
43 |
|
|
#reset the success value to jump the while loop.
|
44 |
|
|
for fn in `netstat -plt | grep postgres`
|
45 |
|
|
do
|
46 |
|
|
#reset success value
|
47 |
|
|
successPQL=true
|
48 |
|
|
done
|
49 |
|
|
done
|
50 |
|
|
echo "success value for restarting postgres is $successPQL"
|
51 |
|
|
|
52 |
|
|
#stop tomcat
|
53 |
|
|
su - $TOMCATUSER /usr/local/devtools/apache-tomcat-5.5.23/bin/shutdown.sh
|
54 |
|
|
#Check if tomcat start successfully
|
55 |
|
|
successStop=false;
|
56 |
|
|
tomcatRunning=false
|
57 |
|
|
while [ $successStop = false ]
|
58 |
|
|
do
|
59 |
|
|
#if found netstat command still has tcomat lisenter (port 8005) ,
|
60 |
|
|
#reset the tomcatRunning value to true
|
61 |
|
|
for fn in `netstat -plt | grep 8005`
|
62 |
|
|
do
|
63 |
|
|
#reset success value
|
64 |
|
|
tomcatRunning=true;
|
65 |
|
|
done
|
66 |
|
|
if [ $tomcatRunning = true ]
|
67 |
|
|
then
|
68 |
|
|
successStop=false
|
69 |
|
|
else
|
70 |
|
|
successStop=true
|
71 |
|
|
fi
|
72 |
|
|
done
|
73 |
|
|
echo "success value for stoping tomcat is $successStop"
|
74 |
|
|
|
75 |
|
|
#start tomcat
|
76 |
|
|
su - $TOMCATUSER /usr/local/devtools/apache-tomcat-5.5.23/bin/startup.sh
|
77 |
|
|
#Check if tomcat start successfully
|
78 |
|
|
successStart=false;
|
79 |
|
|
while [ $successStart = false ]
|
80 |
|
|
do
|
81 |
|
|
#if found netstat command has tcomat lisenter (port 8005) is ready,
|
82 |
|
|
#reset the success value to jump the while loop.
|
83 |
|
|
for fn in `netstat -plt | grep 8005`
|
84 |
|
|
do
|
85 |
|
|
#reset success value
|
86 |
|
|
successStart=true
|
87 |
|
|
done
|
88 |
|
|
done
|
89 |
|
|
echo "success value for starting tomcat is $successStart"
|
90 |
|
|
|
91 |
|
|
|
92 |
|
|
#run the class -- query the remote metacat
|
93 |
|
|
java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:../build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
|
94 |
|
|
echo "Successfully query the metacat"
|
95 |
|
|
done
|