Subversion Repositories SmartDukaan

Rev

Rev 2084 | Blame | Last modification | View Log | RSS feed

#!/bin/bash

if [ $# -ne 1 ]
then
    echo "Error - Invalid Arguments. Please enter entity id of 7 digits"
    exit
fi
ENTITY_ID=$1
echo $ENTITY_ID
# 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")`

PROJECT_DIR="`dirname ${PRGDIR}`"
LOG_DIR="/var/log/content-generation"
DATE=`date +%Y-%b-%d-%Hh%Mm%Ss`
MYSQL_DUMP="${PRGDIR}/partial-catalog-${DATE}.sql"
CONTENT_LOG="${LOG_DIR}/content-generation-${DATE}.log"
SOLR_IRDATA=/var/lib/tomcat6/webapps/export/solr/irdata_solr
#ENTITY_DATA_DIR="${PRGDIR}/${ENTITY_ID}"
#`mkdir $ENTITY_DATA_DIR`

STAGING_SERVER="192.168.138.69"
STAGING_ENTITIES_EXPORT_PATH="entities-shop2020"

PROD_SERVER="192.168.141.43"
PROD_ENTITIES_EXPORT_PATH="entities-saholic"

STATIC_SERVER="173.230.151.179"

ENTITIES_DEST_PATH="/var/lib/tomcat6/webapps/export/html/entities.tgz"

MAVEN_REPO="${HOME}/.m2/repository"
M2_CLASSPATH="${MAVEN_REPO}/in/shop2020/ContentStore/1.0-SNAPSHOT/ContentStore-1.0-SNAPSHOT.jar:${MAVEN_REPO}/in/shop2020/ThriftConfig/1.0-SNAPSHOT/ThriftConfig-1.0-SNAPSHOT.jar:${MAVEN_REPO}/in/shop2020/Common/1.0-SNAPSHOT/Common-1.0-SNAPSHOT.jar:${MAVEN_REPO}/readonly/apache/velocity/1.6.3/velocity-1.6.3.jar:${MAVEN_REPO}/readonly/apache/commons-lang/2.4/commons-lang-2.4.jar:${MAVEN_REPO}/readonly/apache/commons-collections/3.2.1/commons-collections-3.2.1.jar:${MAVEN_REPO}/readonly/apache/thrift/0.2.0/thrift-0.2.0.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}/readonly/apache/commons-logging-api/1.1/commons-logging-api-1.1.jar:${MAVEN_REPO}/readonly/bdb/je/4.1.7/je-4.1.7.jar:${MAVEN_REPO}/readonly/jython/2.5.1/jython-2.5.1.jar:${MAVEN_REPO}/commons-cli/commons-cli/1.2/commons-cli-1.2.jar"

echo "Stopping tomcat at `date +%c`"
echo "======================================================="
/etc/init.d/tomcat6 stop

echo "Generating the icons and thumbnails for all Entitites"
echo "======================================================="
cd /var/lib/tomcat6/webapps/db/media/
python2.6 ImageConverter.py default.jpg icon.jpg 120 120
python2.6 ImageConverter.py default.jpg thumbnail.jpg 60 60
echo "Icons and thumbnails generated"
echo "======================================================="


echo "Generating content for one entities ${PROJECT_DIR}"
echo "======================================================="
cd ${PROJECT_DIR}/ContentStore
java -cp ${M2_CLASSPATH}  in.shop2020.util.ContentGenerationUtility -t ONE -e ${ENTITY_ID} > ${CONTENT_LOG} 
echo "======================================================="
echo "Content generation completed"

/etc/init.d/tomcat6 start
/etc/init.d/apache2 restart
echo "Tomcat restarted at `date +%c`"

echo "Dumping item, vendoritemmapping and vendoritempricing tables to be imported on staging and production servers"
echo "======================================================="
cd ${PRGDIR}
mysql -uroot -pshop2020 catalog -e "SELECT CONCAT('UPDATE item SET id=',id,',product_group=',product_group,',brand=',brand,',model_number=',model_number,',model_name=',model_name,',color=',color,',category=',category,',comments=',comments,',catalog_item_id=',catalog_item_id,',feature_id=',feature_id,',feature_description=',feature_description,',mrp=',mrp,',mop=',mop,',sellingPrice=',sellingPrice,',dealerPrice=',dealerPrice,',transfer_price=',transfer_price,',weight=',weight,',addedOn=',addedOn,',updatedOn=',updatedOn,',startDate=',startDate,',retireDate=',retireDate,',status=',status,',status_description=',status_description,',bestDealText=',bestDealText,',bestDealValue=',bestDealValue,',bestSellingRank=',bestSellingRank,',hotspotCategory=',hotspotCategory,',defaultForEntity=',defaultForEntity,',preferredWarehouse=',preferredWarehouse,' WHERE ID=', id) FROM item WHERE catalog_item_id = ${ENTITY_ID}" | tail -n+2 > ${MYSQL_DUMP}
cat ${MYSQL_DUMP}
#mysqldump -uroot -pshop2020 catalog --tables item vendoritemmapping vendoritempricing > ${MYSQL_DUMP}
#TODO Read data of only this catalog id and prepare some UPDATE statements. These statements should be executed on production  server

echo "Copying generated content to staging and production servers"
echo "======================================================="
#Update media content on both staging and production
cd /var/lib/tomcat6/webapps/export
rm -f media.tgz
mkdir media-${DATE}
cp -r media/${ENTITY_ID} media-${DATE}/; tar -zcf media.tgz media-${DATE}; rm -rf media-${DATE}
scp media.tgz ${STAGING_SERVER}:/var/lib/tomcat6/webapps/export/
scp media.tgz ${PROD_SERVER}:/var/lib/tomcat6/webapps/export/
scp media.tgz ${STATIC_SERVER}:/var/www/

#Update entities on staging using the entities-shop2020 direcotry
#Update entities on production using the entities-saholic directory
cd /var/lib/tomcat6/webapps/export/html
mkdir entities-${DATE}
rm -f ${STAGING_ENTITIES_EXPORT_PATH}.tgz ${PROD_ENTITIES_EXPORT_PATH}.tgz
cp -r ${STAGING_ENTITIES_EXPORT_PATH}/${ENTITY_ID} entities-${DATE}/
tar -zcf ${STAGING_ENTITIES_EXPORT_PATH}.tgz entities-${DATE}
rm -rf entities-${DATE} 

mkdir entities-${DATE}
cp -r ${PROD_ENTITIES_EXPORT_PATH}/${ENTITY_ID} entities-${DATE}
tar -zcf ${PROD_ENTITIES_EXPORT_PATH}.tgz entities-${DATE}
rm -rf entities-${DATE} 

scp ${STAGING_ENTITIES_EXPORT_PATH}.tgz ${STAGING_SERVER}:${ENTITIES_DEST_PATH}
scp ${PROD_ENTITIES_EXPORT_PATH}.tgz ${PROD_SERVER}:${ENTITIES_DEST_PATH}

#Update solr data on staging and production servers
scp ${SOLR_IRDATA}.xml ${STAGING_SERVER}:${SOLR_IRDATA}-${DATE}.xml
scp ${SOLR_IRDATA}.xml ${PROD_SERVER}:${SOLR_IRDATA}-${DATE}.xml

#Put mysql dump on staging and production servers
scp ${MYSQL_DUMP} ${STAGING_SERVER}:/catalog-dumps
scp ${MYSQL_DUMP} ${PROD_SERVER}:/catalog-dumps

ssh ${STAGING_SERVER} "echo ${DATE}>/catalog-dumps/latest.timestamp"
ssh ${PROD_SERVER} "echo ${DATE}>/catalog-dumps/latest.timestamp"
ssh ${STATIC_SERVER} "echo ${DATE}>/catalog-dumps/latest.timestamp"

echo "Done copying content to staging and production servers"
echo "======================================================="