upgrade revision 2976
4d237bbe075b1d2c19428cd954d721d65b31f67cwrowe#!/bin/sh
bf52162f2d05c1fb1a107c7ef108de73f739b3edpquerna#
f80ef15dcf58050fbfbe12b000de043f6ae6ac82pquerna# CDDL HEADER START
f80ef15dcf58050fbfbe12b000de043f6ae6ac82pquerna#
38451a13fb80b89e704792ebc0e6f9e5e5877d7dsf# The contents of this file are subject to the terms of the
38451a13fb80b89e704792ebc0e6f9e5e5877d7dsf# Common Development and Distribution License, Version 1.0 only
38451a13fb80b89e704792ebc0e6f9e5e5877d7dsf# (the "License"). You may not use this file except in compliance
38451a13fb80b89e704792ebc0e6f9e5e5877d7dsf# with the License.
38451a13fb80b89e704792ebc0e6f9e5e5877d7dsf#
505e342aefa9fbccc857f1bc653a310e25511946sf# You can obtain a copy of the license at
505e342aefa9fbccc857f1bc653a310e25511946sf# trunk/opends/resource/legal-notices/OpenDS.LICENSE
505e342aefa9fbccc857f1bc653a310e25511946sf# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
505e342aefa9fbccc857f1bc653a310e25511946sf# See the License for the specific language governing permissions
26734c75baf170a492ef6a82f07b24ee1af7d0b1sf# and limitations under the License.
26734c75baf170a492ef6a82f07b24ee1af7d0b1sf#
26734c75baf170a492ef6a82f07b24ee1af7d0b1sf# When distributing Covered Code, include this CDDL HEADER in each
dda254ba84bdff5e236917af1b31693ca4360eabcovener# file and include the License file at
dda254ba84bdff5e236917af1b31693ca4360eabcovener# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
dda254ba84bdff5e236917af1b31693ca4360eabcovener# add the following below this CDDL HEADER, with the fields enclosed
dda254ba84bdff5e236917af1b31693ca4360eabcovener# by brackets "[]" replaced with your own identifying information:
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# Portions Copyright [yyyy] [name of copyright owner]
bf52162f2d05c1fb1a107c7ef108de73f739b3edpquerna#
3becbd2611ffb2e8391a8eacce765b43dcb1c669wrowe# CDDL HEADER END
3becbd2611ffb2e8391a8eacce765b43dcb1c669wrowe#
3becbd2611ffb2e8391a8eacce765b43dcb1c669wrowe#
8e5e9b2d4c6cbcd21ca182fe1109d59284239515wrowe# Portions Copyright 2006-2007 Sun Microsystems, Inc.
3becbd2611ffb2e8391a8eacce765b43dcb1c669wrowe
9c78f8d71737dfbbbf4da2f9acb397567a10e88bsf# Capture the current working directory so that we can change to it later.
9c78f8d71737dfbbbf4da2f9acb397567a10e88bsf# Then capture the location of this script and the Directory Server instance
9c78f8d71737dfbbbf4da2f9acb397567a10e88bsf# root so that we can use them to create appropriate paths.
9c78f8d71737dfbbbf4da2f9acb397567a10e88bsfWORKING_DIR=`pwd`
9c78f8d71737dfbbbf4da2f9acb397567a10e88bsf
4be9c459920a7c1cfe62d654327dae5c4bb6b284sfcd `dirname "${0}"`
4be9c459920a7c1cfe62d654327dae5c4bb6b284sfSCRIPT_DIR=`pwd`
4be9c459920a7c1cfe62d654327dae5c4bb6b284sf
47ff2654d827dd3596ce2e4099d69cec0f1009b9takashiINSTANCE_ROOT=${SCRIPT_DIR}
47ff2654d827dd3596ce2e4099d69cec0f1009b9takashiexport INSTANCE_ROOT
47ff2654d827dd3596ce2e4099d69cec0f1009b9takashi
b4ae72381175122ebfe42ff0d11db7a7f4162014takashiSCRIPT_NAME=upgrade
b4ae72381175122ebfe42ff0d11db7a7f4162014takashiexport SCRIPT_NAME
b4ae72381175122ebfe42ff0d11db7a7f4162014takashi
5e1ae35c05125b8b6c6c648c60e576f5796ea061rpluemcd "${WORKING_DIR}"
5e1ae35c05125b8b6c6c648c60e576f5796ea061rpluem
b115299831a7b4bbec58a88d708d8536e1ecd50csf# Set java home
5e1ae35c05125b8b6c6c648c60e576f5796ea061rpluemSCRIPT_UTIL_CMD=set-java-home-and-args
5e1ae35c05125b8b6c6c648c60e576f5796ea061rpluemexport SCRIPT_UTIL_CMD
b9a830d395feaa66ab621841a5cd86e1fa2d184brjung. "${INSTANCE_ROOT}/lib/_script-util.sh"
b9a830d395feaa66ab621841a5cd86e1fa2d184brjungRETURN_CODE=$?
82e6711dc508d2822d9397f07136ba4ddd8764e1niqif test ${RETURN_CODE} -ne 0
82e6711dc508d2822d9397f07136ba4ddd8764e1niqthen
82e6711dc508d2822d9397f07136ba4ddd8764e1niq exit ${RETURN_CODE}
82e6711dc508d2822d9397f07136ba4ddd8764e1niqfi
82e6711dc508d2822d9397f07136ba4ddd8764e1niq
82e6711dc508d2822d9397f07136ba4ddd8764e1niq# Set environment variables
82e6711dc508d2822d9397f07136ba4ddd8764e1niqSCRIPT_UTIL_CMD=set-environment-vars
f43104f173247435cb4ade2b89aa2ca8108aedb7niqexport SCRIPT_UTIL_CMD
f43104f173247435cb4ade2b89aa2ca8108aedb7niq. "${INSTANCE_ROOT}/lib/_script-util.sh"
f43104f173247435cb4ade2b89aa2ca8108aedb7niqRETURN_CODE=$?
1fdcfb04a08e53ce28af657d854922efbbabecf4niqif test ${RETURN_CODE} -ne 0
1fdcfb04a08e53ce28af657d854922efbbabecf4niqthen
1fdcfb04a08e53ce28af657d854922efbbabecf4niq exit ${RETURN_CODE}
1fdcfb04a08e53ce28af657d854922efbbabecf4niqfi
c26aa743a70c2148cdca1e6c637c605d9025b051niq
c26aa743a70c2148cdca1e6c637c605d9025b051niq# Configure the appropriate CLASSPATH to test.
c26aa743a70c2148cdca1e6c637c605d9025b051niqfor JAR in ${INSTANCE_ROOT}/tmp/upgrade/lib/*.jar
c26aa743a70c2148cdca1e6c637c605d9025b051niqdo
e076b09731977eafcef2bfc6f5323f3ab7e83b15niq CLASSPATH=${CLASSPATH}:${JAR}
e076b09731977eafcef2bfc6f5323f3ab7e83b15niqdone
3fba96a56fbced0f14edde04f417d74d7f5bdb1eniqCLASSPATH=${CLASSPATH}:${INSTANCE_ROOT}/classes
3a183ee5b8f8129f6d3ec493be51abacda7c6ea7niqfor JAR in ${INSTANCE_ROOT}/lib/*.jar
3a183ee5b8f8129f6d3ec493be51abacda7c6ea7niqdo
3a183ee5b8f8129f6d3ec493be51abacda7c6ea7niq CLASSPATH=${CLASSPATH}:${JAR}
64dbb5532fba398c5e81efeb21c7fd50c05819d7niqdone
64dbb5532fba398c5e81efeb21c7fd50c05819d7niqexport CLASSPATH
64dbb5532fba398c5e81efeb21c7fd50c05819d7niq
d31d6c32262a8d1cbfc63d9f7adccae46002c8f7niq# Test the java installation
d31d6c32262a8d1cbfc63d9f7adccae46002c8f7niqSCRIPT_UTIL_CMD=test-java
d31d6c32262a8d1cbfc63d9f7adccae46002c8f7niqexport SCRIPT_UTIL_CMD
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna. "${INSTANCE_ROOT}/lib/_script-util.sh"
a50db00c3663c2a0d3531965c64d995516b06288niqRETURN_CODE=$?
11f2c481e1d57bedb3f758565307501e9a2730ddtrawickif test ${RETURN_CODE} -ne 0
11f2c481e1d57bedb3f758565307501e9a2730ddtrawickthen
11f2c481e1d57bedb3f758565307501e9a2730ddtrawick exit ${RETURN_CODE}
11f2c481e1d57bedb3f758565307501e9a2730ddtrawickfi
11f2c481e1d57bedb3f758565307501e9a2730ddtrawick
11f2c481e1d57bedb3f758565307501e9a2730ddtrawickif [ -r "${INSTANCE_ROOT}/tmp/upgrade" ]
4aa736735709d0434c02ae6cc65b0738eb9882cctakashithen
4aa736735709d0434c02ae6cc65b0738eb9882cctakashi rm -fr "${INSTANCE_ROOT}/tmp/upgrade"
4aa736735709d0434c02ae6cc65b0738eb9882cctakashifi
99d46a23c6eac800f327b29f8009f7d7da986230trawick
99d46a23c6eac800f327b29f8009f7d7da986230trawick# Launch the build extractor.
99d46a23c6eac800f327b29f8009f7d7da986230trawick# Configure the appropriate CLASSPATH.
99d46a23c6eac800f327b29f8009f7d7da986230trawick# BuildExtractor uses the existing install's
6c2782f8988f498ad9e5fc84256e202175c3edc9covener# jars
6c2782f8988f498ad9e5fc84256e202175c3edc9covenerCLASSPATH=${INSTANCE_ROOT}/classes
6c2782f8988f498ad9e5fc84256e202175c3edc9covenerfor JAR in ${INSTANCE_ROOT}/lib/*.jar
6c2782f8988f498ad9e5fc84256e202175c3edc9covenerdo
a50db00c3663c2a0d3531965c64d995516b06288niq CLASSPATH=${CLASSPATH}:${JAR}
bf27540ecb929632fd82264742045c96006c382cniqdone
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquernaexport CLASSPATH
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# Run the build extractor first. An exit code of 99 from the extractor
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# means that this is indeed an upgrade (as opposed to a reversion) and
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# that the upgrade should continue. An exit code of 98 means that this
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# operation is a reversion. An exit code of 50 means that the usage
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna# statement was printed and there is nothing else to do
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquerna"${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} org.opends.quicksetup.upgrader.BuildExtractor "${@}"
bcb567d8f48f5de8aa84e0b19e93357e0a4d970epquernaRETURN_CODE=$?
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemmeif test ${RETURN_CODE} -eq 99
8a0c75e992cc657a98317e78374b800d16963cfatrawickthen
ba217dc41cebc0976010ee177f8fedac782d1f6fminfrin # Configure the appropriate CLASSPATH.
ab1b172430f2d4e1b222b541bb8c1d431c1a7bc7sf # Unlike BuildExtractor, the Upgrader uses
8315a125b56710a222167e4d65b96c3c891f4b25sf # the newly extracted build's jars.
8315a125b56710a222167e4d65b96c3c891f4b25sf CLASSPATH=${INSTANCE_ROOT}/tmp/upgrade/classes
ab1b172430f2d4e1b222b541bb8c1d431c1a7bc7sf for JAR in ${INSTANCE_ROOT}/tmp/upgrade/lib/*.jar
3f985866b9b5b49fb57735b5eb135591163f30dfsf do
3f985866b9b5b49fb57735b5eb135591163f30dfsf CLASSPATH=${JAR}:${CLASSPATH}
7f51e5c395d431b8c20226f77de28efe13272bfasf done
7f51e5c395d431b8c20226f77de28efe13272bfasf # Launch the upgrade process.
7f51e5c395d431b8c20226f77de28efe13272bfasf "${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} org.opends.quicksetup.upgrader.UpgradeLauncher "${@}"
7f51e5c395d431b8c20226f77de28efe13272bfasfelif test ${RETURN_CODE} -eq 98
17d64c884a44f5ca72f6901afd3e50991bfc1c63sfthen
17d64c884a44f5ca72f6901afd3e50991bfc1c63sf # Copy jars to a temporary place from which to run the reverter
17d64c884a44f5ca72f6901afd3e50991bfc1c63sf # in order to avoid potential file lock issues.
a6e4caaa97e433cc2ef78d957bc32756d9c49f79sf mkdir -p tmp/revert
a6e4caaa97e433cc2ef78d957bc32756d9c49f79sf cp -R lib tmp/revert
a6e4caaa97e433cc2ef78d957bc32756d9c49f79sf if test ${?} -ne 0
a6e4caaa97e433cc2ef78d957bc32756d9c49f79sf then
68686064650b23222461014a11558593de194bbctrawick echo "ERROR: Failed to initialize reversion."
304903af1cf77cbdfa07e8a6482f35f3d9d7b0f3sf exit 101
304903af1cf77cbdfa07e8a6482f35f3d9d7b0f3sf else
a6e4caaa97e433cc2ef78d957bc32756d9c49f79sf CLASSPATH=${INSTANCE_ROOT}/tmp/revert/classes
a96ba81cada826f2a9ab1e24218a77bfadfc31d8sf for JAR in ${INSTANCE_ROOT}/tmp/revert/lib/*.jar
a96ba81cada826f2a9ab1e24218a77bfadfc31d8sf do
a96ba81cada826f2a9ab1e24218a77bfadfc31d8sf CLASSPATH=${JAR}:${CLASSPATH}
a96ba81cada826f2a9ab1e24218a77bfadfc31d8sf done
4f133508c93204c06e1acba9774ff184e5812606niq # Launch the upgrade process.
4f133508c93204c06e1acba9774ff184e5812606niq "${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} org.opends.quicksetup.upgrader.ReversionLauncher "${@}"
4f133508c93204c06e1acba9774ff184e5812606niq fi
87587593f1a53030e840acc0dec6cc881022ea40covenerelif test ${RETURN_CODE} -eq 50
87587593f1a53030e840acc0dec6cc881022ea40covenerthen
87587593f1a53030e840acc0dec6cc881022ea40covener # Version info was on requested
87587593f1a53030e840acc0dec6cc881022ea40covener exit 0
87587593f1a53030e840acc0dec6cc881022ea40covenerelif test ${RETURN_CODE} -eq 0
52071e4b9f49c3a1c2c767c7ea80ec92cf9032c9covenerthen
52071e4b9f49c3a1c2c767c7ea80ec92cf9032c9covener # Usage printed
52071e4b9f49c3a1c2c767c7ea80ec92cf9032c9covener exit 0
89b8bbc89404e7071e573c4f0a17f528996e855djortonelse
89b8bbc89404e7071e573c4f0a17f528996e855djorton # Some unknown return code returned
89b8bbc89404e7071e573c4f0a17f528996e855djorton exit 101
e1d4c4e8366f46dc5dc1e6e24b4c7ac448dfa061sffi
e1d4c4e8366f46dc5dc1e6e24b4c7ac448dfa061sf