Subversion Repositories SmartDukaan

Rev

Rev 5344 | Rev 10577 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/bin/bash

if [ $# -lt 1 ]
then
        echo "Usage: $0 <UPDATE|ROLLBACK> <DB_SERVER>"
        exit 1
fi

ACTION=$1
if [ $ACTION != "UPDATE" -a $ACTION != "ROLLBACK" ]
then
        echo "Wrong input"
        echo "Usage: $0 <UPDATE|ROLLBACK>"
        exit 1
fi

# 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 $(readlink -f "$PRG")`

SOLR_DIR=/root/solr/example/exampledocs
SOLR_SCHEMA_DIR=/root/solr/example/solr/conf
MEDIA_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="mandeep.dhir@shop2020.in,rajveer.singh@shop2020.in pankaj.kankar@shop2020.in anupam.singh@shop2020.in"

STATUS=0

DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`
if [ $ACTION = "UPDATE" ]
then
        LATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`
        if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]
        then
                echo "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 1
        fi
else
        LATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`
        if [ "INVALID" = "$LATEST_TIMESTAMP" ]
        then
                echo "Nothing to roll back"
                exit 1
        fi
fi



if [ "$DB_SERVER" != "" ]
then
        echo "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.py
        STATUS=$(($STATUS+$?))
fi

echo "Updating media files"
echo "======================================================="
cd ${MEDIA_EXPORT_PATH}
if [ $ACTION == "UPDATE" ]
then
        rsync -az --delete media/  media-previous
        rsync -az --delete media-offline/  media
else
        rsync -az --delete media-previous/  media
fi
STATUS=$(($STATUS+$?))

echo "Updating product list for partners"
echo "======================================================="
cd ${MEDIA_EXPORT_PATH}
tar -zxf partners.tgz
unlink partners
ln -s partners-${LATEST_TIMESTAMP} partners
STATUS=$(($STATUS+$?))

echo "Updating javascripts for product comparison"
echo "======================================================="
tar -zxf javascripts.tgz
unlink javascripts
ln -s javascripts-${LATEST_TIMESTAMP} javascripts
cp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}
STATUS=$(($STATUS+$?))


echo "Updating content snippets"
echo "======================================================="
cd ${CONTENT_EXPORT_PATH}
tar -zxf entities.tgz
unlink entities
ln -s entities-${LATEST_TIMESTAMP} entities
STATUS=$(($STATUS+$?))

echo "Updating helpdoc content"
echo "======================================================="
cd ${MEDIA_EXPORT_PATH}
tar -zxf helpdocs.tgz
rm -rf ${WEBSITE_ROOT_PATH}/helpdocs
cp -r helpdocs-${LATEST_TIMESTAMP} ${WEBSITE_ROOT_PATH}/helpdocs
STATUS=$(($STATUS+$?))

echo "Updating solr schema"
echo "======================================================="
cd ${MEDIA_EXPORT_PATH}
tar -zxf solr.tgz
STATUS=$(($STATUS+$?))
unlink solr
STATUS=$(($STATUS+$?))
ln -s solr-${LATEST_TIMESTAMP} solr
STATUS=$(($STATUS+$?))

cd ${SOLR_SCHEMA_DIR}
cat part1.xml > new_schema.xml
cat /var/lib/tomcat6/webapps/export/solr/irmetadata_solrschema.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//' >> new_schema.xml
cat part2.xml >> new_schema.xml
cat /var/lib/tomcat6/webapps/export/solr/irmetadata_catchall.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//'  >> new_schema.xml
cat part3.xml >> new_schema.xml

DIFF=`diff -q schema.xml new_schema.xml`
if [ ! -z "$DIFF" ]
then
        cp new_schema.xml schema.xml
        /etc/init.d/solr-server stop
        /etc/init.d/solr-server start
        sleep 15
fi

echo "Posting data to solr"
echo "======================================================="

cd ${SOLR_DIR}
./deleteAll.sh
STATUS=$(($STATUS+$?))
ls ${SOLR_IRDATA} | xargs java -jar post.jar
STATUS=$(($STATUS+$?))
if [ $? -ne 0 ]
then
        SOLR_IRDATA=/var/lib/tomcat6/webapps/export/solr-${DEPLOYED_TIMESTAMP}/*irdata_solr.xml
        ls ${SOLR_IRDATA} | xargs java -jar post.jar
fi
echo "Done posting data to solr"
echo "======================================================="

if [ $ACTION = "UPDATE" ]
then
    cat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestamp
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
else
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
    echo "INVALID" > /catalog-dumps/previous.timestamp
fi


echo "Restarting the tomcat to clear the cache"
echo "======================================================="
/etc/init.d/tomcat6 restart
echo "======================================================="
echo "Restarted the tomcat to clear the cache"


if [ $STATUS -ne 0 ]
then
        exit 1
fi