Rework the way Java version is set in CSIT jobs
[releng/builder.git] / jjb / integration / include-raw-integration-configure-clustering.sh
index 61d63208b58934f61ff7bc0feeb21ab8a0c27d82..bf5ba87a457c76284320f6d88f06a75e3388ea98 100644 (file)
@@ -7,28 +7,60 @@ MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
 MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
 JOLOKIACONF=/tmp/${BUNDLEFOLDER}/deploy/jolokia.xml
 
+# Utility function for joining strings.
+function join {
+    delim=',\n\t\t'
+    final=$1; shift
+
+    for str in $* ; do
+        final=${final}${delim}${str}
+    done
+
+    echo ${final}
+}
+
+# Create the strings for data and rpc seed nodes
+# First create various arrays with one element per controller.
+# Then merge each array using the join utility defined above.
+
+for i in `seq 1 ${NUM_ODL_SYSTEM}` ; do
+    CONTROLLERIP=ODL_SYSTEM_${i}_IP
+    data_seed_nodes[$i]=\\\"akka.tcp:\\/\\/opendaylight-cluster-data@${!CONTROLLERIP}:2550\\\"
+    rpc_seed_nodes[$i]=\\\"akka.tcp:\\/\\/odl-cluster-rpc@${!CONTROLLERIP}:2551\\\"
+    member_names[$i]=\\\"member-${i}\\\"
+done
+
+data_seed_list=$(join ${data_seed_nodes[@]})
+rpc_seed_list=$(join ${rpc_seed_nodes[@]})
+member_name_list=$(join ${member_names[@]})
+
+# echo ${data_seed_list}
+# echo ${rpc_seed_list}
+# echo ${member_name_list}
+
+# Create the configuration script to be run on controllers.
 cat > ${WORKSPACE}/configuration-script.sh <<EOF
 
 CONTROLLERID="member-\$1"
 CONTROLLERIP=\$2
 
 echo "Configuring hostname in akka.conf"
-sed -ie "s:{{HOST}}:\${CONTROLLERIP}:" ${AKKACONF}
+sed -i -e "s:{{HOST}}:\${CONTROLLERIP}:" ${AKKACONF}
 
 echo "Configuring data seed nodes in akka.conf"
-sed -ie "s/{{{DS_SEED_NODES}}}/[\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER0:2550\",\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER1:2550\",\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER2:2550\"]/g" ${AKKACONF}
+sed -i -e "s/{{{DS_SEED_NODES}}}/[${data_seed_list}]/g" ${AKKACONF}
 
 echo "Configuring rpc seed nodes in akka.conf"
-sed -ie "s/{{{RPC_SEED_NODES}}}/[\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER0:2551\",\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER1:2551\",\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER2:2551\"]/g" ${AKKACONF}
+sed -i -e "s/{{{RPC_SEED_NODES}}}/[${rpc_seed_list}]/g" ${AKKACONF}
 
 echo "Define unique name in akka.conf"
-sed -ie "s/{{MEMBER_NAME}}/\$CONTROLLERID/g" ${AKKACONF}
+sed -i -e "s/{{MEMBER_NAME}}/\${CONTROLLERID}/g" ${AKKACONF}
 
 echo "Define replication type in module-shards.conf"
-sed -ie "s/{{{REPLICAS_1}}}/[\"member-1\",\n\t\t\t\"member-2\",\n\t\t\t\"member-3\"]/g" ${MODULESHARDSCONF}
-sed -ie "s/{{{REPLICAS_2}}}/[\"member-1\",\n\t\t\t\"member-2\",\n\t\t\t\"member-3\"]/g" ${MODULESHARDSCONF}
-sed -ie "s/{{{REPLICAS_3}}}/[\"member-1\",\n\t\t\t\"member-2\",\n\t\t\t\"member-3\"]/g" ${MODULESHARDSCONF}
-sed -ie "s/{{{REPLICAS_4}}}/[\"member-1\",\n\t\t\t\"member-2\",\n\t\t\t\"member-3\"]/g" ${MODULESHARDSCONF}
+sed -i -e "s/{{{REPLICAS_1}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
+sed -i -e "s/{{{REPLICAS_2}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
+sed -i -e "s/{{{REPLICAS_3}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
+sed -i -e "s/{{{REPLICAS_4}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
 
 echo "Dump akka.conf"
 cat ${AKKACONF}
@@ -39,22 +71,40 @@ cat ${MODULESCONF}
 echo "Dump module-shards.conf"
 cat ${MODULESHARDSCONF}
 
+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
+JAVA_RESOLVED=`readlink -e "\${JAVA_HOME}/bin/java"`
+echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}"
+echo "JDK default version ..."
+java -version
+
 echo "Starting controller..."
 /tmp/${BUNDLEFOLDER}/bin/start
 
 EOF
 
-CONTROLLERIPS=(${CONTROLLER0} ${CONTROLLER1} ${CONTROLLER2})
-for i in "${!CONTROLLERIPS[@]}"
+# Copy over the configuration script and configuration files to each controller
+# Execute the configuration script on each controller.
+for i in `seq 1 ${NUM_ODL_SYSTEM}`
 do
-    echo "Configuring member-${i+1} with IP address ${CONTROLLERIPS[$i]}"
-    ssh ${CONTROLLERIPS[$i]} "mkdir /tmp/${BUNDLEFOLDER}/configuration/initial"
-    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/akka.conf.template ${CONTROLLERIPS[$i]}:${AKKACONF}
-    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/modules.conf.template ${CONTROLLERIPS[$i]}:${MODULESCONF}
-    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/module-shards.conf.template ${CONTROLLERIPS[$i]}:${MODULESHARDSCONF}
-    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/jolokia.xml.template ${CONTROLLERIPS[$i]}:${JOLOKIACONF}
-    scp  ${WORKSPACE}/configuration-script.sh    ${CONTROLLERIPS[$i]}:/tmp/
-    ssh ${CONTROLLERIPS[$i]} "bash /tmp/configuration-script.sh ${i+1} ${CONTROLLERIPS[$i]}"
+    CONTROLLERIP=ODL_SYSTEM_${i}_IP
+    echo "Configuring member-${i} with IP address ${!CONTROLLERIP}"
+    ssh ${!CONTROLLERIP} "mkdir /tmp/${BUNDLEFOLDER}/configuration/initial"
+    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/akka.conf.template ${!CONTROLLERIP}:${AKKACONF}
+    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/modules.conf.template ${!CONTROLLERIP}:${MODULESCONF}
+    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/module-shards.conf.template ${!CONTROLLERIP}:${MODULESHARDSCONF}
+    scp  ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/jolokia.xml.template ${!CONTROLLERIP}:${JOLOKIACONF}
+    scp  ${WORKSPACE}/configuration-script.sh    ${!CONTROLLERIP}:/tmp/
+    ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i} ${!CONTROLLERIP}"
 done
 
 # vim: ts=4 sw=4 sts=4 et ft=sh :