Rev 20852 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/bin/bashif [ $# -lt 1 ]thenecho "Usage: $0 <UPDATE|ROLLBACK> <DB_SERVER>"exit 1fiACTION=$1if [ $ACTION != "UPDATE" -a $ACTION != "ROLLBACK" ]thenecho "Wrong input"echo "Usage: $0 <UPDATE|ROLLBACK>"exit 1fi# resolve links - $0 may be a softlinkPRG="$0"while [ -h "$PRG" ]; dols=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fidone# Get standard environment variablesPRGDIR=`dirname $(readlink -f "$PRG")`SOLR_DIR=/root/solr/example/exampledocsSOLR_SCHEMA_DIR=/root/solr/example/solr/confMEDIA_EXPORT_PATH="/var/lib/tomcat6/webapps/export/"WEBSITE_ROOT_PATH="/var/lib/tomcat6/webapps/ROOT/"WEBSITE_IMAGES_PATH="/var/lib/tomcat6/webapps/ROOT/images/"WEBSITE_JAVASCRIPT_PATH="/var/lib/tomcat6/webapps/ROOT/js/"CONTENT_EXPORT_PATH="/var/lib/tomcat6/webapps/export/html/"SOLR_IRDATA="/var/lib/tomcat6/webapps/export/solr/*irdata_solr.xml"DB_SERVER="$2"TOEMAIL="amit.gupta@shop2020.in"STATUS=0DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`if [ $ACTION = "UPDATE" ]thenLATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]thenecho "Already latest version is deployed"sendEmail -f "build@shop2020.in" -s smtp.gmail.com:587 -xu "build@shop2020.in" -xp "cafe@nes" -t $TOEMAIL -o tls=yes -u "Content updation failed" -m "Already latest version is deployed with timestamp $LATEST_TIMESTAMP"exit 1fielseLATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`if [ "INVALID" = "$LATEST_TIMESTAMP" ]thenecho "Nothing to roll back"exit 1fifiif [ "$DB_SERVER" != "" ]thenecho "Updating mysql database"echo "======================================================="MYSQL_DUMP="/catalog-dumps/partial-catalog-${LATEST_TIMESTAMP}.sql"mysql -uroot -pshop2020 -h ${DB_SERVER} catalog < ${MYSQL_DUMP}STATUS=$(($STATUS+$?))cd /usr/local/lib/python2.6/dist-packages/PyProj-0.1-py2.6.egg;./shop2020/model/v1/inventory/script/ClearItemAvailabilityCache.pySTATUS=$(($STATUS+$?))fiecho "Updating media files"echo "======================================================="cd ${MEDIA_EXPORT_PATH}if [ $ACTION == "UPDATE" ]thenrsync -az --delete media/ media-previousrsync -az --delete media-offline/ mediaelsersync -az --delete media-previous/ mediafiSTATUS=$(($STATUS+$?))cd ${MEDIA_EXPORT_PATH}if [ -e dump.tgz ];thenecho "Updating mongo for site content"echo "======================================================="tar -zxf dump.tgzunlink dumpln -s dump-${LATEST_TIMESTAMP} dumpmongorestore --collection siteContent --db CONTENT dump/CONTENT/siteContent.bson --dropSTATUS=$(($STATUS+$?))fiecho "Updating product list for partners"echo "======================================================="tar -zxf partners.tgzunlink partnersln -s partners-${LATEST_TIMESTAMP} partnersSTATUS=$(($STATUS+$?))echo "Updating javascripts for product comparison"echo "======================================================="tar -zxf javascripts.tgzunlink javascriptsln -s javascripts-${LATEST_TIMESTAMP} javascriptscp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}STATUS=$(($STATUS+$?))echo "Updating content snippets"echo "======================================================="cd ${CONTENT_EXPORT_PATH}tar -zxf entities.tgzunlink entitiesln -s entities-${LATEST_TIMESTAMP} entitiesSTATUS=$(($STATUS+$?))echo "Updating helpdoc content"echo "======================================================="cd ${MEDIA_EXPORT_PATH}tar -zxf helpdocs.tgzrm -rf ${WEBSITE_ROOT_PATH}/helpdocscp -r helpdocs-${LATEST_TIMESTAMP} ${WEBSITE_ROOT_PATH}/helpdocsSTATUS=$(($STATUS+$?))echo "Updating solr schema"echo "======================================================="cd ${MEDIA_EXPORT_PATH}tar -zxf solr.tgzSTATUS=$(($STATUS+$?))unlink solrSTATUS=$(($STATUS+$?))ln -s solr-${LATEST_TIMESTAMP} solrSTATUS=$(($STATUS+$?))cd ${SOLR_SCHEMA_DIR}cat part1.xml > new_schema.xmlcat /var/lib/tomcat6/webapps/export/solr/irmetadata_solrschema.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//' >> new_schema.xmlcat part2.xml >> new_schema.xmlcat /var/lib/tomcat6/webapps/export/solr/irmetadata_catchall.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//' >> new_schema.xmlcat part3.xml >> new_schema.xmlDIFF=`diff -q schema.xml new_schema.xml`if [ ! -z "$DIFF" ]thencp new_schema.xml schema.xml/etc/init.d/solr-server stop/etc/init.d/solr-server startsleep 15fiecho "Posting data to solr"echo "======================================================="cd ${SOLR_DIR}./deleteAll.shSTATUS=$(($STATUS+$?))#python /usr/local/lib/python2.7/dist-packages/PyProj-0.1-py2.7.egg/shop2020/model/v1/catalog/script/HotspotContent.pyls ${SOLR_IRDATA} | xargs java -jar post.jarSTATUS=$(($STATUS+$?))if [ $? -ne 0 ]thenSOLR_IRDATA=/var/lib/tomcat6/webapps/export/solr-${DEPLOYED_TIMESTAMP}/*irdata_solr.xmlls ${SOLR_IRDATA} | xargs java -jar post.jarfiecho "Done posting data to solr"echo "======================================================="if [ $ACTION = "UPDATE" ]thencat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestampecho ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestampelseecho ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestampecho "INVALID" > /catalog-dumps/previous.timestampfiecho "Restarting the tomcat to clear the cache"echo "======================================================="/etc/init.d/tomcat6 restartecho "======================================================="echo "Restarted the tomcat to clear the cache"if [ $STATUS -ne 0 ]thenexit 1fi