Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

#!/bin/bash

# resolve links - $0 may be a softlink
PRG="$0"

while [ -h "$PRG" ]; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
    PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link"
  fi
done

# Get standard environment variables
PRGDIR=`dirname "$PRG"`

if [ $# -ne 2 ]
then
        echo "Usage: $0 solr_home tomcate_home"
        exit 1
fi

SOLR_HOME=$1
TOMCAT_HOME=$2
PROJECT_DIR="${PRGDIR}/../../../../.."
#for i in 1 2 3 4 5;
#do
#       PROJECT_DIR=`dirname "${PROJECT_DIR}"`
#done
COMMON_DIR="${PROJECT_DIR}/Common"
DB_DIR="${PRGDIR}/../db"
MAVEN_REPO="${HOME}/.m2/repository"

DATE=`date +%Y-%b-%d_%Hh%Mm`
LOGERR=error-${DATE}.log

touch ${LOGERR}
exec 7>&2           # Link file descriptor #7 with stderr.
                    # Saves stderr.
exec 2> ${LOGERR}     # stderr replaced with file ${LOGERR}.

echo "Creating test databases"
echo "======================================================================="
# create databases
mysql -uroot -pshop2020 < ${DB_DIR}/create-databases.sql

echo "Created test databases"
echo "======================================================================="

echo "Starting python services"
echo "======================================================================="
#start services
export PYTHONPATH=$PROJECT_DIR/PyProj/src:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2.6/gtk-2.0:/usr/lib/python2.6:/usr/lib/python2.6/dist-packages:/usr/lib/python2.6/dist-packages/PIL:/usr/lib/python2.6/dist-packages/gst-0.10:/usr/lib/python2.6/dist-packages/gtk-2.0:/usr/lib/python2.6/lib-dynload:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/plat-linux2:/usr/local/lib/python2.6/dist-packages:/usr/local/lib/python2.6/dist-packages/Elixir-0.7.1-py2.6.egg

killall -9 python2.6
sleep 5
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/config/ConfigServer.py -e LOCAL_TESTING -f $PROJECT_DIR/PyProj/src/shop2020/config/resources/shop2020.cfg > /tmp/config.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/catalog/CatalogServer.py > /tmp/catalog.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/user/UserContextServer.py > /tmp/user.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/order/TransactionServer.py > /tmp/order.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/logistics/service/LogisticsServer.py > /tmp/logistics.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/helpers/impl/HelperServer.py >  /tmp/helpers.log 2>&1 &

sleep 10 # promotion server also uses user dataservice which causes conflict with user service. Add sleep to let user service t create tables first.
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/user/PromotionServer.py > /tmp/promotion.log 2>&1 &

echo "Started python services"
echo "======================================================================="


sleep 5
echo "Insert test-data in databases"
echo "======================================================================="
mysql -uroot -pshop2020 catalog_test < ${DB_DIR}/catalog.sql
mysql -uroot -pshop2020 helper_test < ${DB_DIR}/helper.sql
mysql -uroot -pshop2020 logistics_test < ${DB_DIR}/logistics.sql
mysql -uroot -pshop2020 payment_test < ${DB_DIR}/payment.sql
mysql -uroot -pshop2020 transaction_test < ${DB_DIR}/transaction.sql
mysql -uroot -pshop2020 user_test < ${DB_DIR}/user.sql

echo "Starting python services after data restore"
echo "======================================================================="
killall -9 python2.6
sleep 5
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/config/ConfigServer.py -e LOCAL_TESTING -f $PROJECT_DIR/PyProj/src/shop2020/config/resources/shop2020.cfg > /tmp/config.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/catalog/CatalogServer.py > /tmp/catalog.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/user/UserContextServer.py > /tmp/user.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/order/TransactionServer.py > /tmp/order.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/logistics/service/LogisticsServer.py > /tmp/logistics.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/helpers/impl/HelperServer.py >  /tmp/helpers.log 2>&1 &
/usr/bin/python2.6 -u $PROJECT_DIR/PyProj/src/shop2020/model/v1/user/PromotionServer.py > /tmp/promotion.log 2>&1 &

echo "Started python services after data restore"
echo "======================================================================="

#start payment service
MAVEN_REPO="${HOME}/.m2/repository"

/usr/bin/java -cp .:${PROJECT_DIR}/PaymentService/src/test/resources:${MAVEN_REPO}/in/shop2020/PaymentService/1.0-SNAPSHOT/PaymentService-1.0-SNAPSHOT.jar:${MAVEN_REPO}/commons-daemon/commons-daemon/1.0.1/commons-daemon-1.0.1.jar:${MAVEN_REPO}/org/apache/thrift/libthrift/0.7.0/libthrift-0.7.0.jar:${MAVEN_REPO}/commons-lang/commons-lang/2.5/commons-lang-2.5.jar:${MAVEN_REPO}/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar:${MAVEN_REPO}/org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.jar:${MAVEN_REPO}/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar:${MAVEN_REPO}/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:${MAVEN_REPO}/readonly/apache/log4j/1.2.16/log4j-1.2.16.jar:${MAVEN_REPO}/readonly/apache/commons-logging/1.0.4/commons-logging-1.0.4.jar:${MAVEN_REPO}/in/shop2020/ThriftConfig/1.0-SNAPSHOT/ThriftConfig-1.0-SNAPSHOT.jar:${MAVEN_REPO}/readonly/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar:${MAVEN_REPO}/readonly/slf4j/slf4j-simple/1.5.8/slf4j-simple-1.5.8.jar:${MAVEN_REPO}/in/shop2020/Common/1.0-SNAPSHOT/Common-1.0-SNAPSHOT.jar:${MAVEN_REPO}/readonly/apache/commons-lang/2.4/commons-lang-2.4.jar:${MAVEN_REPO}/org/json/json/20090211/json-20090211.jar:${MAVEN_REPO}/javax/mail/mail/1.4/mail-1.4.jar:${MAVEN_REPO}/javax/activation/activation/1.1/activation-1.1.jar:${MAVEN_REPO}/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar:${MAVEN_REPO}/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar:${MAVEN_REPO}/log4j/log4j/1.2.16/log4j-1.2.16.jar:${MAVEN_REPO}/org/mybatis/mybatis-spring/1.0.0/mybatis-spring-1.0.0.jar:${MAVEN_REPO}/org/mybatis/mybatis/3.0.4/mybatis-3.0.4.jar:${MAVEN_REPO}/cglib/cglib/2.2/cglib-2.2.jar:${MAVEN_REPO}/commons-pool/commons-pool/1.5.6/commons-pool-1.5.6.jar:${MAVEN_REPO}/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4.jar:${MAVEN_REPO}/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:${MAVEN_REPO}/org/springframework/spring-aop/3.0.5.RELEASE/spring-aop-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-asm/3.0.5.RELEASE/spring-asm-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-beans/3.0.5.RELEASE/spring-beans-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-context/3.0.5.RELEASE/spring-context-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar:${MAVEN_REPO}/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:${MAVEN_REPO}/org/springframework/spring-expression/3.0.5.RELEASE/spring-expression-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-jdbc/3.0.5.RELEASE/spring-jdbc-3.0.5.RELEASE.jar:${MAVEN_REPO}/org/springframework/spring-tx/3.0.5.RELEASE/spring-tx-3.0.5.RELEASE.jar:${MAVEN_REPO}/asm/asm/3.1/asm-3.1.jar:${MAVEN_REPO}/mysql/mysql-connector-java/5.1.16/mysql-connector-java-5.1.16.jar:${MAVEN_REPO}/readonly/hdfc-payment/2.0/hdfc-payment-2.0.jar:/usr/share/java/commons-daemon.jar in.shop2020.payment.service.PaymentServer >> /tmp/payment.java.log 2>&1 &

echo "Started payment service"
echo "======================================================================="

echo "Starting Tomcat"
echo "======================================================================="
# deploy war and start tomcat
${TOMCAT_HOME}/bin/catalina.sh stop
echo $TOMCAT_HOME/webapps/ROOT*
rm -rf $TOMCAT_HOME/webapps/ROOT*
cp ${MAVEN_REPO}/in/shop2020/Website/1.0-SNAPSHOT/Website-1.0-SNAPSHOT.war $TOMCAT_HOME/webapps/ROOT.war
${TOMCAT_HOME}/bin/catalina.sh start
sleep 5

echo "Copying static content"
echo "======================================================================="
# static content
rm -rf ${TOMCAT_HOME}/webapps/export/html
cp -r ${PRGDIR}/../static/html ${TOMCAT_HOME}/webapps/export/
cp -r ${PRGDIR}/../static/media/* ${TOMCAT_HOME}/webapps/ROOT/images/
mv ${TOMCAT_HOME}/webapps/ROOT/images/static ${TOMCAT_HOME}/webapps/ROOT/images/media

echo "Started tomcat"
echo "======================================================================="


echo "Stopping and starting Solr service at `date +%H:%M:%S`"
echo "======================================================================="
# solr
ps aux | grep start.jar | grep -v grep | awk '{print $2}' | xargs kill -9
cd $SOLR_HOME/example/
java -jar start.jar >/tmp/solr.log &
sleep 15
echo "Solr started at `date +%H:%M:%S`"
echo "======================================================================="

echo "Posting data to Solr at `date +%H:%M:%S`"
cd $SOLR_HOME/example/exampledocs/
./deleteAll.sh
java -Durl=http://localhost:8993/solr/update -jar post.jar ${PRGDIR}/../solr/*irdata_solr.xml
echo "Done posting data"

#Clean up IO redirection
exec 2>&7 7>&-      # Restore stdout and close file descriptor #7.