From 0b0acc3192c0c03a2e38db32b017bd9203e30746 Mon Sep 17 00:00:00 2001 From: Joze RIHTARSIC <joze.rihtarsic@ext.ec.europa.eu> Date: Wed, 23 Oct 2019 12:20:37 +0200 Subject: [PATCH] add quick setup script --- smp-soapui-tests/scripts/clean-install-smp.sh | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100755 smp-soapui-tests/scripts/clean-install-smp.sh diff --git a/smp-soapui-tests/scripts/clean-install-smp.sh b/smp-soapui-tests/scripts/clean-install-smp.sh new file mode 100755 index 000000000..caf17ad87 --- /dev/null +++ b/smp-soapui-tests/scripts/clean-install-smp.sh @@ -0,0 +1,152 @@ +#!/bin/bash + + +SMP_VERSION=4.1.1 +SMP_SHA256=9fdfeceef69978ab2436f79d075ef2b847563f6266ea09e7c7bb476e9e73c0b3 +SMP_SETUP_SHA256=faede91a13ca8e464c8703b3074c7307058633eb5c969dd1a495bf17fdaa02e8 + + +MYSQL_DRV_VERSION=5.1.46 +MYSQL_DRV_SHA1=9a3e63b387e376364211e96827bc27db8d7a92e9 +TOMCAT_MAJOR=8 +TOMCAT_VERSION=8.5.31 +TOMCAT_SHA512=51d8877782bc975b8c566263df7e55f383e617aa3c81ea2c219fed18e1f5d9e8233a92100de95b9a8df69ce5c0ad89a195d5b7e5647fcf9df26231870073a9cb +SMP_DB_SCHEMA=supportsmp +SMP_DB_USER=smp +SMP_DB_USER_PASSWORD=smp +MYSQL_ROOT_PASSWORD=root + +ARTEFACTS_FOLDER=./artefacts + +CWD="$(pwd)" + + +dowloadArtefacts() { + if [ ! -d $ARTEFACTS_FOLDER ]; then + mkdir -p $ARTEFACTS_FOLDER + fi + + # download the mysql connector + curl -o mysql-connector-java.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/$MYSQL_DRV_VERSION/mysql-connector-java-$MYSQL_DRV_VERSION.jar + + if [[ $(sha1sum mysql-connector-java.jar | awk '{print $1}') != "$MYSQL_DRV_SHA1" ]]; then + echo "error" "Checksum values do not match" + echo "$(sha1sum mysql-connector-java.jar) --> $MYSQL_DRV_SHA1" + exit -1; + fi + mv mysql-connector-java.jar $ARTEFACTS_FOLDER/mysql-connector-java.jar + + # download tomcat + curl -o tomcat.zip "https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.zip" + + if [[ $(sha512sum tomcat.zip | awk '{print $1}') != "$TOMCAT_SHA512" ]]; then + echo "error" "Checksum values do not match" + echo "$(sha512sum tomcat.zip) --> $TOMCAT_SHA512" + exit -1; + fi + mv tomcat.zip $ARTEFACTS_FOLDER/tomcat.zip + + # download SMP + curl -o smp.war "https://ec.europa.eu/cefdigital/artifact/repository/public/eu/europa/ec/edelivery/smp/$SMP_VERSION/smp-$SMP_VERSION.war" + + if [[ $(sha256sum smp.war | awk '{print $1}') != "$SMP_SHA256" ]]; then + echo "error" "Checksum values do not match" + echo "$(sha256sum smp.war) --> $SMP_SHA256" + exit -1; + fi + mv smp.war $ARTEFACTS_FOLDER/smp.war + # download SMP setup + curl -o smp-setup.zip "https://ec.europa.eu/cefdigital/artifact/repository/public/eu/europa/ec/edelivery/smp/$SMP_VERSION/smp-$SMP_VERSION-setup.zip" + + if [[ $(sha256sum smp-setup.zip | awk '{print $1}') != "$SMP_SETUP_SHA256" ]]; then + echo "error" "Checksum values do not match" + echo "$(sha256sum smp-setup.zip) --> $SMP_SETUP_SHA256" + exit -1; + fi + mv smp-setup.zip $ARTEFACTS_FOLDER/smp-setup.zip + +} + + +deploySMP() { + # clean deployment + + if [ -d "apache-tomcat-$TOMCAT_VERSION" ]; then + rm -rf "apache-tomcat-$TOMCAT_VERSION" + fi + + if [ -d tomcat ]; then + rm -rf tomcat + fi + + if [ -d "smp-$SMP_VERSION" ]; then + rm -rf "smp-$SMP_VERSION" + fi + + + # unzip folders + unzip $ARTEFACTS_FOLDER/tomcat.zip + mv apache-tomcat-$TOMCAT_VERSION "./tomcat" + + # deploy SMP + cp $ARTEFACTS_FOLDER/smp.war tomcat/webapps/smp.war + + # deploy mysql driver + cp $ARTEFACTS_FOLDER/mysql-connector-java.jar tomcat/lib/mysql-connector-java.jar + + # unzip configuration + unzip $ARTEFACTS_FOLDER/smp-setup.zip + # create classpath folder + mkdir tomcat/classes + # set enironment variable + echo "export CLASSPATH=$CWD/tomcat/classes" > $CWD/tomcat/bin/setenv.sh + + # set database connection + sed -i -e "s/<\/Context>/<Resource name=\"jdbc\/eDeliverySmpDs\" auth=\"Container\" type=\"javax.sql.DataSource\" maxTotal=\"100\" maxIdle=\"30\" maxWaitMillis=\"10000\" username=\"$SMP_DB_USER\" password=\"$SMP_DB_USER_PASSWORD\" driverClassName=\"com.mysql.jdbc.Driver\" url=\"jdbc:mysql:\/\/localhost:3306\/$SMP_DB_SCHEMA?useSSL=false\&characterEncoding=UTF-8\&useUnicode=true\"\/><\/Context>/g" "$CWD/tomcat/conf/context.xml" + + + # set initial application properties + echo "datasource.jndi=java:comp/env/jdbc/eDeliverySmpDs" > $CWD/tomcat/classes/smp.config.properties + echo "hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect" >> $CWD/tomcat/classes/smp.config.properties + # optional parameters + echo "" >> $CWD/tomcat/classes/smp.config.properties + echo "log.folder=$CWD/tomcat/logs/" >> $CWD/tomcat/classes/smp.config.properties + echo "smp.property.refresh.cronJobExpression=0 */1 * * * *" >> $CWD/tomcat/classes/smp.config.properties + echo "authentication.blueCoat.enabled=true" >> $CWD/tomcat/classes/smp.config.properties + echo "configuration.dir=$CWD/tomcat/smp/" >> $CWD/tomcat/classes/smp.config.properties + + + + # Example for using old keystores, truststore and encKey + #echo "configuration.dir=/cef/presentation/smp-init-test" >> $CWD/tomcat/classes/smp.config.properties + #echo "smp.truststore.filename=smp-old-truststore.jks" >> $CWD/tomcat/classes/smp.config.properties + #echo "smp.truststore.password={DEC}{test123}" >> $CWD/tomcat/classes/smp.config.properties + #echo "encryption.key.filename=myEncKey.private" >> $CWD/tomcat/classes/smp.config.properties + + + + chmod u+x $CWD/tomcat/bin/*.sh + + +} + + +initDatabaseSMP() { + #recreate database + mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD -e "drop schema if exists $SMP_DB_SCHEMA;DROP USER IF EXISTS $SMP_DB_USER; create schema $SMP_DB_SCHEMA;alter database $SMP_DB_SCHEMA charset=utf8; create user $SMP_DB_USER identified by '$SMP_DB_USER_PASSWORD';grant all on $SMP_DB_SCHEMA.* to $SMP_DB_USER;" + + mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $SMP_DB_SCHEMA < $CWD/smp-$SMP_VERSION/database-scripts/mysql5innodb.ddl + + mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $SMP_DB_SCHEMA < $CWD/smp-$SMP_VERSION/database-scripts/mysql5innodb-data.sql + +} + + + + +#dowloadArtefacts +deploySMP +initDatabaseSMP +# start server +./tomcat/bin/catalina.sh run + -- GitLab