Subversion Repositories SmartDukaan

Rev

Rev 4732 | Rev 4883 | 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

# 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"
ACTION="$1"

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"
                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}
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

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

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}


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

echo "Updating helpdoc content"
echo "======================================================="
cd ${MEDIA_EXPORT_PATH}
tar -zxf helpdocs.tgz
unlink ${WEBSITE_ROOT_PATH}/helpdocs
ln -s helpdocs-${LATEST_TIMESTAMP} ${WEBSITE_ROOT_PATH}/helpdocs

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

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
ls ${SOLR_IRDATA} | xargs java -jar post.jar
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"