|
|
@@ -0,0 +1,128 @@
|
|
|
+
|
|
|
+#改变工作目录到当前脚本所在路径
|
|
|
+if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
|
|
|
+export CWD=`pwd`
|
|
|
+
|
|
|
+echo "check params ..."
|
|
|
+
|
|
|
+filescount=`./mql files? log.level=error "$@" | wc -l`
|
|
|
+if [[ "${filescount}" == "0" || "${filescount}" == "1" ]]; then
|
|
|
+ ./mql "$@"
|
|
|
+ exit $?
|
|
|
+fi
|
|
|
+
|
|
|
+echo "" > changed.log
|
|
|
+
|
|
|
+parseargs() {
|
|
|
+ while [[ "$*" != "" ]]; do
|
|
|
+ if [[ "$1" == "init=no" ]]; then
|
|
|
+ noinit=1
|
|
|
+ elif [[ "$1" == "bgmode" ]]; then
|
|
|
+ bgmode=1
|
|
|
+ fi
|
|
|
+ shift
|
|
|
+ done
|
|
|
+}
|
|
|
+parseargs "$@"
|
|
|
+
|
|
|
+keyspace=`./mql keyspace? log.level=error "$@"`
|
|
|
+if [[ `echo "${keyspace}" | wc -w` == "1" ]]; then
|
|
|
+ logfile="${keyspace}.test.log"
|
|
|
+else
|
|
|
+ logfile="test.log"
|
|
|
+fi
|
|
|
+
|
|
|
+if [[ "$bgmode" != "1" ]]; then
|
|
|
+ echo mql test running in background mode
|
|
|
+ nohup "$0" bgmode "$@" 2>&1 >/dev/null &
|
|
|
+ tail -F $logfile
|
|
|
+ exit 0
|
|
|
+fi
|
|
|
+
|
|
|
+last_odbserver=`./mqltest.sh - "help()" | grep "omdb version" | awk -F '"' '{print $4}' | awk -F " omdb " '{print "omdb " $2}'`
|
|
|
+
|
|
|
+wait_odbserver_change() {
|
|
|
+ while true; do
|
|
|
+ odbserver=`./mqltest.sh - "help()" | grep "omdb version" | awk -F '"' '{print $4}' | awk -F " omdb " '{print "omdb " $2}'`
|
|
|
+ if [[ "${odbserver:0:12}" == "omdb version" ]]; then
|
|
|
+ if [[ "$odbserver" != "$last_odbserver" ]]; then
|
|
|
+ # wait for sync files complete
|
|
|
+ sleep 10
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ sleep 2
|
|
|
+ done
|
|
|
+}
|
|
|
+
|
|
|
+n=0
|
|
|
+while [[ true ]]; do
|
|
|
+ ret=0
|
|
|
+ n=`expr $n + 1`
|
|
|
+ odbserver=`./mqltest.sh - "help()" | grep "omdb version" | awk -F '"' '{print $4}' | awk -F " omdb " '{print "omdb " $2}'`
|
|
|
+ if [[ "${odbserver:0:12}" == "omdb version" ]]; then
|
|
|
+ if [[ "$odbserver" != "$last_odbserver" ]]; then
|
|
|
+ echo "odbserver changed" >> changed.log
|
|
|
+ echo "$last_odbserver" >> changed.log
|
|
|
+ echo "$odbserver" >> changed.log
|
|
|
+ if [[ "${odbserver:42:14}" == "${last_odbserver:42:14}" ]]; then
|
|
|
+ codechanged=0
|
|
|
+ else
|
|
|
+ codechanged=1
|
|
|
+ fi
|
|
|
+ last_odbserver="$odbserver"
|
|
|
+ if [[ "$noinit" != "1" && "$codechanged" == "1" ]]; then
|
|
|
+ ./initkeyspace.sh $keyspace
|
|
|
+ ret=$?
|
|
|
+ if [[ "$ret" != "0" ]]; then
|
|
|
+ # init error
|
|
|
+ n=0
|
|
|
+ else
|
|
|
+ n=1
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ n=1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ if [[ "$n" != "0" ]]; then
|
|
|
+ cd "$CWD"
|
|
|
+ PROCFLAG="test$n"
|
|
|
+ endflag="$odbserver end of test $n return"
|
|
|
+ ttt=`date +'%Y%m%d%H%M%S'`
|
|
|
+ check_odbserver() {
|
|
|
+ sleep 10
|
|
|
+ while true; do
|
|
|
+ mqlproc=`ps -ef | grep -v grep | grep mql | grep "proc.flag=${PROCFLAG}"`
|
|
|
+ if [[ "$mqlproc" == "" ]]; then
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+ odbserver=`./mqltest.sh - "help()" | grep "omdb version" | awk -F '"' '{print $4}' | awk -F " omdb " '{print "omdb " $2}'`
|
|
|
+ if [[ "${odbserver:0:12}" == "omdb version" ]]; then
|
|
|
+ if [[ "$odbserver" != "$last_odbserver" ]]; then
|
|
|
+ ps -ef | grep -v grep | grep mql | grep "proc.flag=${PROCFLAG}" | awk '{print $2}' | xargs kill -9
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ sleep 10
|
|
|
+ done
|
|
|
+ }
|
|
|
+ run() {
|
|
|
+ ./mqltest.sh "proc.flag=${PROCFLAG}" "$@"
|
|
|
+ ret=$?
|
|
|
+ echo "$endflag $ret" >> $logfile
|
|
|
+ if [[ "$ret" == "0" ]]; then
|
|
|
+ sleep 5
|
|
|
+ fi
|
|
|
+ return $ret
|
|
|
+ }
|
|
|
+ check_odbserver &
|
|
|
+ run "$@"
|
|
|
+ ret=$?
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$ret" != "0" && "$ret" != "99" ]]; then
|
|
|
+ echo "wait for odbserver upgrad" | tee $logfile
|
|
|
+ wait_odbserver_change
|
|
|
+ fi
|
|
|
+done
|