Subversion Repositories SmartDukaan

Rev

Rev 5042 | Rev 5338 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4096 rajveer 1
#!/bin/bash
2
 
3
if [ $# -lt 1 ]
4
then
4849 rajveer 5
	echo "Usage: $0 <UPDATE|ROLLBACK> <DB_SERVER>"
4096 rajveer 6
	exit 1
7
fi
8
 
4853 rajveer 9
ACTION=$1
10
if [ $ACTION != "UPDATE" -a $ACTION != "ROLLBACK" ]
11
then
12
        echo "Wrong input"
13
        echo "Usage: $0 <UPDATE|ROLLBACK>"
14
        exit 1
15
fi
16
 
4096 rajveer 17
# resolve links - $0 may be a softlink
18
PRG="$0"
19
 
20
while [ -h "$PRG" ]; do
21
  ls=`ls -ld "$PRG"`
22
  link=`expr "$ls" : '.*-> \(.*\)$'`
23
  if expr "$link" : '/.*' > /dev/null; then
24
    PRG="$link"
25
  else
26
    PRG=`dirname "$PRG"`/"$link"
27
  fi
28
done
29
 
30
# Get standard environment variables
31
PRGDIR=`dirname $(readlink -f "$PRG")`
32
 
33
SOLR_DIR=/root/solr/example/exampledocs
34
SOLR_SCHEMA_DIR=/root/solr/example/solr/conf
35
MEDIA_EXPORT_PATH="/var/lib/tomcat6/webapps/export/"
36
WEBSITE_ROOT_PATH="/var/lib/tomcat6/webapps/ROOT/"
37
WEBSITE_IMAGES_PATH="/var/lib/tomcat6/webapps/ROOT/images/"
38
WEBSITE_JAVASCRIPT_PATH="/var/lib/tomcat6/webapps/ROOT/js/"
39
CONTENT_EXPORT_PATH="/var/lib/tomcat6/webapps/export/html/"
40
SOLR_IRDATA="/var/lib/tomcat6/webapps/export/solr/*irdata_solr.xml"
4849 rajveer 41
DB_SERVER="$2"
5042 rajveer 42
TOEMAIL="mandeep.dhir@shop2020.in,rajveer.singh@shop2020.in pankaj.kankar@shop2020.in anupam.singh@shop2020.in"
4096 rajveer 43
 
4908 rajveer 44
STATUS=0
45
 
4849 rajveer 46
DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`
47
if [ $ACTION = "UPDATE" ]
48
then
49
	LATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`
50
	if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]
51
	then
52
		echo "Already latest version is deployed"
5042 rajveer 53
		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"
4849 rajveer 54
		exit 1
55
	fi
56
else
57
	LATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`
58
	if [ "INVALID" = "$LATEST_TIMESTAMP" ]
59
        then
60
                echo "Nothing to roll back"
61
                exit 1
62
        fi
63
fi
4096 rajveer 64
 
4849 rajveer 65
 
66
 
67
if [ "$DB_SERVER" != "" ]
68
then
69
	echo "Updating mysql database"
70
	echo "======================================================="
71
	MYSQL_DUMP="/catalog-dumps/partial-catalog-${LATEST_TIMESTAMP}.sql"
72
	mysql -uroot -pshop2020 -h ${DB_SERVER} catalog < ${MYSQL_DUMP}
4908 rajveer 73
	STATUS=$(($STATUS+$?))
4849 rajveer 74
fi
75
 
4096 rajveer 76
echo "Updating media files"
77
echo "======================================================="
78
cd ${MEDIA_EXPORT_PATH}
4849 rajveer 79
if [ $ACTION == "UPDATE" ]
80
then
81
	rsync -az --delete media/  media-previous
82
	rsync -az --delete media-offline/  media
83
else
84
	rsync -az --delete media-previous/  media
85
fi
4908 rajveer 86
STATUS=$(($STATUS+$?))
4096 rajveer 87
 
88
echo "Updating product list for partners"
89
echo "======================================================="
90
cd ${MEDIA_EXPORT_PATH}
91
tar -zxf partners.tgz
92
unlink partners
93
ln -s partners-${LATEST_TIMESTAMP} partners
4908 rajveer 94
STATUS=$(($STATUS+$?))
4096 rajveer 95
 
96
echo "Updating javascripts for product comparison"
97
echo "======================================================="
98
tar -zxf javascripts.tgz
99
unlink javascripts
100
ln -s javascripts-${LATEST_TIMESTAMP} javascripts
101
cp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}
4908 rajveer 102
STATUS=$(($STATUS+$?))
4096 rajveer 103
 
104
 
105
echo "Updating content snippets"
106
echo "======================================================="
107
cd ${CONTENT_EXPORT_PATH}
108
tar -zxf entities.tgz
109
unlink entities
110
ln -s entities-${LATEST_TIMESTAMP} entities
4908 rajveer 111
STATUS=$(($STATUS+$?))
4096 rajveer 112
 
113
echo "Updating helpdoc content"
114
echo "======================================================="
115
cd ${MEDIA_EXPORT_PATH}
116
tar -zxf helpdocs.tgz
4928 rajveer 117
rm -rf ${WEBSITE_ROOT_PATH}/helpdocs
118
cp -r helpdocs-${LATEST_TIMESTAMP} ${WEBSITE_ROOT_PATH}/helpdocs
4908 rajveer 119
STATUS=$(($STATUS+$?))
4096 rajveer 120
 
121
echo "Updating solr schema"
122
echo "======================================================="
123
cd ${MEDIA_EXPORT_PATH}
124
tar -zxf solr.tgz
4908 rajveer 125
STATUS=$(($STATUS+$?))
4096 rajveer 126
unlink solr
4908 rajveer 127
STATUS=$(($STATUS+$?))
4096 rajveer 128
ln -s solr-${LATEST_TIMESTAMP} solr
4908 rajveer 129
STATUS=$(($STATUS+$?))
4096 rajveer 130
 
131
cd ${SOLR_SCHEMA_DIR}
132
cat part1.xml > new_schema.xml
133
cat /var/lib/tomcat6/webapps/export/solr/irmetadata_solrschema.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//' >> new_schema.xml
134
cat part2.xml >> new_schema.xml
135
cat /var/lib/tomcat6/webapps/export/solr/irmetadata_catchall.xml | sed -e 's/<?xml version="1.0" encoding="UTF-8"?>//'  >> new_schema.xml
136
cat part3.xml >> new_schema.xml
137
 
138
DIFF=`diff -q schema.xml new_schema.xml`
139
if [ ! -z "$DIFF" ]
140
then
141
	cp new_schema.xml schema.xml
4732 rajveer 142
	/etc/init.d/solr-server stop
143
	/etc/init.d/solr-server start
4159 rajveer 144
	sleep 15
4096 rajveer 145
fi
146
 
147
echo "Posting data to solr"
148
echo "======================================================="
149
 
150
cd ${SOLR_DIR}
151
./deleteAll.sh
4908 rajveer 152
STATUS=$(($STATUS+$?))
4096 rajveer 153
ls ${SOLR_IRDATA} | xargs java -jar post.jar
4908 rajveer 154
STATUS=$(($STATUS+$?))
4883 rajveer 155
if [ $? -ne 0 ]
156
then
157
	SOLR_IRDATA=/var/lib/tomcat6/webapps/export/solr-${DEPLOYED_TIMESTAMP}/*irdata_solr.xml
158
	ls ${SOLR_IRDATA} | xargs java -jar post.jar
159
fi
4096 rajveer 160
echo "Done posting data to solr"
161
echo "======================================================="
162
 
4849 rajveer 163
if [ $ACTION = "UPDATE" ]
164
then
165
    cat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestamp
166
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
167
else
168
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
169
    echo "INVALID" > /catalog-dumps/previous.timestamp
170
fi
4096 rajveer 171
 
5297 rajveer 172
 
173
echo "Restarting the catalog service and tomcat to clear the cache"
4096 rajveer 174
echo "======================================================="
5297 rajveer 175
/etc/init.d/catalog-server restart
4096 rajveer 176
/etc/init.d/tomcat6 restart
177
echo "======================================================="
5297 rajveer 178
echo "Restarted the catalog service and tomcat to clear the cache"
4096 rajveer 179
 
5297 rajveer 180
 
4908 rajveer 181
if [ $STATUS -ne 0 ]
182
then
183
	exit 1
184
fi
185