Rework the way Java version is set in CSIT jobs
[releng/builder.git] / jjb / integration / include-raw-integration-deploy-controller-offline.sh
index 860256f458215f22cb25c54dd86c7750dc69e5fe..e892f21984cec0672f8450491697cd1727cad40b 100644 (file)
@@ -1,31 +1,11 @@
-NEXUSURL_PREFIX=${ODLNEXUSPROXY:-https://nexus.opendaylight.org}
 CONTROLLERMEM="3072m"
-ACTUALFEATURES="odl-integration-compatible-with-all"
-
-if [ ${BUNDLEURL} == 'last' ]; then
-    NEXUSPATH="${NEXUSURL_PREFIX}/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf"
-    # Extract the BUNDLEVERSION from the pom.xml
-    BUNDLEVERSION=`xpath pom.xml '/project/version/text()' 2> /dev/null`
-    echo "Bundle version is ${BUNDLEVERSION}"
-    # Acquire the timestamp information from maven-metadata.xml
-    wget ${NEXUSPATH}/${BUNDLEVERSION}/maven-metadata.xml
-    TIMESTAMP=`xpath maven-metadata.xml "//snapshotVersion[extension='zip'][1]/value/text()" 2>/dev/null`
-    echo "Nexus timestamp is ${TIMESTAMP}"
-    BUNDLEFOLDER="distribution-karaf-${BUNDLEVERSION}"
-    BUNDLE="distribution-karaf-${TIMESTAMP}.zip"
-    ACTUALBUNDLEURL="${NEXUSPATH}/${BUNDLEVERSION}/${BUNDLE}"
-else
-    ACTUALBUNDLEURL="${BUNDLEURL}"
-    BUNDLE="${BUNDLEURL##*/}"
-    BUNDLEVERSION="$(basename $(dirname $BUNDLEURL))"
-    BUNDLEFOLDER="distribution-karaf-${BUNDLEVERSION}"
-fi
+ACTUALFEATURES="odl-integration-all"
+
+echo "Kill any controller running"
+ps axf | grep karaf | grep -v grep | awk '{print "kill -9 " $1}' | sh
 
-echo "Distribution bundle URL is ${ACTUALBUNDLEURL}"
-echo "Distribution bundle is ${BUNDLE}"
-echo "Distribution bundle version is ${BUNDLEVERSION}"
-echo "Distribution folder is ${BUNDLEFOLDER}"
-echo "Nexus prefix is ${NEXUSURL_PREFIX}"
+echo "Clean workspace"
+rm -rf *
 
 echo "Downloading the distribution..."
 wget --no-verbose  ${ACTUALBUNDLEURL}
@@ -40,7 +20,9 @@ cat ${FEATURESCONF}
 
 echo "Configuring the log..."
 LOGCONF=${WORKSPACE}/${BUNDLEFOLDER}/etc/org.ops4j.pax.logging.cfg
-sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=20MB/g' ${LOGCONF}
+sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
+# FIXME: Make log size limit configurable from build parameter.
+sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=100GB/g' ${LOGCONF}
 cat ${LOGCONF}
 
 echo "Configure the repos..."
@@ -51,23 +33,46 @@ cat ${REPOCONF}
 
 echo "Configure max memory..."
 MEMCONF=${WORKSPACE}/${BUNDLEFOLDER}/bin/setenv
-sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM="${CONTROLLERMEM}"/g' ${MEMCONF}
+sed -ie "s/2048m/${CONTROLLERMEM}/g" ${MEMCONF}
 cat ${MEMCONF}
 
+if [ ${JDKVERSION} == 'openjdk8' ]; then
+    echo "Setting the JRE Version to 8"
+    # dynamic_verify does not allow sudo, JAVA_HOME should be enough for karaf start.
+    # sudo /usr/sbin/alternatives --set java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.60-2.b27.el7_1.x86_64/jre/bin/java
+    export JAVA_HOME=/usr/lib/jvm/java-1.8.0
+elif [ ${JDKVERSION} == 'openjdk7' ]; then
+    echo "Setting the JRE Version to 7"
+    # dynamic_verify does not allow sudo, JAVA_HOME should be enough for karaf start.
+    # sudo /usr/sbin/alternatives --set java /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/bin/java
+    export JAVA_HOME=/usr/lib/jvm/java-1.7.0
+fi
+readlink -e "${JAVA_HOME}/bin/java"
+echo "Default JDK Version, JAVA_HOME should override"
+java -version
+
 echo "Starting controller..."
 ${WORKSPACE}/${BUNDLEFOLDER}/bin/start
 
 echo "sleeping for 10 seconds..."
 sleep 10
 
-echo "Check OSGi bundles..."
+echo "Installing all features..."
 sshpass -p karaf ${WORKSPACE}/${BUNDLEFOLDER}/bin/client -u karaf "feature:install ${ACTUALFEATURES}" || echo $? > ${WORKSPACE}/error.txt
 
-echo "Fetching Karaf log"
-cp ${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log .
+echo "dumping first 500K bytes of karaf log..."
+head --bytes=500K "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log" > "karaf.log"
+echo "dumping last 500K bytes of karaf log..."
+tail --bytes=500K "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log" > "karaf.log"
+# TODO: Do we want different name for karaf.log chunk to signal it may be not complete?
+echo "killing karaf process..."
+ps axf | grep karaf | grep -v grep | awk '{print "kill -9 " $1}' | sh
+sleep 5
+xz -9ekvv "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log"
+mv "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log.xz" .
 
 echo "Exit with error"
-if [ `cat error.txt` -ne 0 ]; then
+if [ -f ${WORKSPACE}/error.txt ]; then
     echo "Failed to deploy offline"
     exit 1
 fi