From 26f262825e19aa021d5dfd3b5f6d7a8bdc4a9258 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Wed, 13 Sep 2017 09:54:43 +0000 Subject: [PATCH] SSDM-5582 : New v3 upgrade script SVN: 38718 --- .../resource/installer/bin/upgrade-eln-v3.sh | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 installation/resource/installer/bin/upgrade-eln-v3.sh diff --git a/installation/resource/installer/bin/upgrade-eln-v3.sh b/installation/resource/installer/bin/upgrade-eln-v3.sh new file mode 100644 index 00000000000..a4302518a04 --- /dev/null +++ b/installation/resource/installer/bin/upgrade-eln-v3.sh @@ -0,0 +1,83 @@ +#!/bin/bash +# Upgrades openbis ELN-LIMS. +# Asumes that the eln-lims tarball is on the 'servers' directory +# Assumes that core-plugins are installed in the 'servers' directory on the same level as this script parent directory + +## +## Upgrade script algorithm explained +## + +#-- If current installation don't exists return with message, no eln-lims installation found, do a normal first installation + +#-- If installation exists +#-- Check if current installation is a minimum master data installation +#-- Backup etc folder (skip if etc folder don't exist) +#-- Remove eln-lims folder +#-- Uncompress eln-lims tarball into the core-plugins folder +#-- If last installation was minimum master data installation, remove extra eln-lims master data script (skip if wasn't) +#-- Restore etc folder from backup (skip if backup don't exist) + +echo "1 - Starting ELN-LIMS Upgrade" + +# Define a timestamp function +timestamp() { + date +"%y%m%d-%H%M" +} + +# Directories used +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +BASE=$DIR"/.." +BACKUP_BASE=$BASE"/backup" +BACKUP=$BACKUP_BASE"/$(timestamp)" +CORE_PLUGINS=$BASE"/servers/core-plugins/" +ELN_INSTALLATION=$BASE"/servers/core-plugins/eln-lims" +ELN_INSTALLATION_MINIMUM_MD_SCRIPT=$ELN_INSTALLATION"/3/as/initializemasterdataminimum.py" +ELN_INSTALLATION_STANDARD_MD_SCRIPT=$ELN_INSTALLATION"/3/as/initialize-master-data.py" +ELN_ETC_CONFIG_FOLDER=$ELN_INSTALLATION"/3/as/webapps/eln-lims/html/etc/" +ELN_TARBALL_LOCATION=$BASE"/servers/eln-lims-*.tar.gz"; +ELN_TARBALL="$( ls $ELN_TARBALL_LOCATION )" #The script fails and exits automatically if the tarball is not found +echo "2 - The ELN-LIMS tarball found to be used is: "$ELN_TARBALL + +if [ -d $ELN_INSTALLATION ]; then + #Check if is a minimum master data installation + if [ -f $ELN_INSTALLATION_MINIMUM_MD_SCRIPT ]; then + IS_MINIMUM_MASTER_DATA=false + else + IS_MINIMUM_MASTER_DATA=true + fi + echo "3 - Is minimum master data installation: "$IS_MINIMUM_MASTER_DATA + + #Backup ELN-LIMS etc folder + if [ -d $ELN_ETC_CONFIG_FOLDER ]; then + echo "4 - Backing up ELN-LIMS etc folder at: "$BACKUP + #Creating backup folder and its parents if doesn't exist + mkdir -p $BACKUP"/eln-lims/3/as/webapps/eln-lims/html/etc/" + cp $ELN_ETC_CONFIG_FOLDER* $BACKUP"/eln-lims/3/as/webapps/eln-lims/html/etc/" + else + echo "4 - ELN-LIMS etc folder was not found, is this installation quite old?" + fi + + #Remove ELN-LIMS folder + echo "5 - Remove current ELN-LIMS installation" + rm -rf $ELN_INSTALLATION + + #Uncompress eln-lims tarball into the eln-lims folder + echo "6 - Uncompressing tarball" + tar xfz $ELN_TARBALL -C $CORE_PLUGINS + + #if is minimum master data, remove the extra types script + if [ IS_MINIMUM_MASTER_DATA ]; then + echo "7 - Replacing master data script since minimum master data installation was found" + mv $ELN_INSTALLATION_MINIMUM_MD_SCRIPT $ELN_INSTALLATION_STANDARD_MD_SCRIPT + else + echo "7 - Not modifying master data scripts since a standard master data installation was found" + fi + #Restore etc folder contents if they where backup + if [ -d $BACKUP"/eln-lims/3/as/webapps/eln-lims/html/etc/" ]; then + echo "8 - Restoring ELN-LIMS etc folder" + cp $BACKUP"/eln-lims/3/as/webapps/eln-lims/html/etc/"* $ELN_ETC_CONFIG_FOLDER + fi +else + echo "3 - No ELN-LIMS installation found, at folder \""$ELN_INSTALLATION"\". Do first a normal installation, this script is only for upgrades." +fi +echo "9 - ELN-LIMS Upgrade Finished" \ No newline at end of file -- GitLab