X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Finclude-raw-integration-configure-clustering.sh;h=264f659b3e384a6cc5f828cf28a2ff210df42555;hb=refs%2Fchanges%2F80%2F37280%2F19;hp=949bb5e0148fd2cf9943e1995e19824c607d88db;hpb=bd9ff34abcff2d81368ab939d57535a391c9432a;p=releng%2Fbuilder.git diff --git a/jjb/integration/include-raw-integration-configure-clustering.sh b/jjb/integration/include-raw-integration-configure-clustering.sh index 949bb5e01..264f659b3 100644 --- a/jjb/integration/include-raw-integration-configure-clustering.sh +++ b/jjb/integration/include-raw-integration-configure-clustering.sh @@ -3,35 +3,120 @@ echo "## Configure Cluster and Start ##" echo "#################################################" AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf +MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf -JOLOKIACONF=/tmp/${BUNDLEFOLDER}/deploy/jolokia.xml +CONTROLLERMEM="2048m" +if [ ${CONTROLLERSCOPE} == 'all' ]; then + ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}" + CONTROLLERMEM="3072m" +else + ACTUALFEATURES="${CONTROLLERFEATURES}" +fi +# Some versions of jenkins job builder result in feature list containing spaces +# and ending in newline. Remove all that. +ACTUALFEATURES=`echo "${ACTUALFEATURES}" | tr -d '\n \r'` + +# Utility function for joining strings. +function join { + delim=' ' + final=$1; shift + + for str in $* ; do + final=${final}${delim}${str} + done + + echo ${final} +} + +# Create the string for nodes +for i in `seq 1 ${NUM_ODL_SYSTEM}` ; do + CONTROLLERIP=ODL_SYSTEM_${i}_IP + nodes[$i]=${!CONTROLLERIP} +done + +nodes_list=$(join ${nodes[@]}) + +echo ${nodes_list} + +# Run script plan in case it exists +if [ -f ${WORKSPACE}/test/csit/scriptplans/${TESTPLAN} ]; then + echo "scriptplan exists!!!" + echo "Changing the scriptplan path..." + cat ${WORKSPACE}/test/csit/scriptplans/${TESTPLAN} | sed "s:integration:${WORKSPACE}:" > scriptplan.txt + cat scriptplan.txt + for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' scriptplan.txt ); do + echo "Executing ${line}..." + source ${line} + done +fi + +# Create the configuration script to be run on controllers. cat > ${WORKSPACE}/configuration-script.sh <> \${CUSTOMPROP} + cat \${CUSTOMPROP} +fi -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} +echo "Configure java home and max memory..." +MEMCONF=/tmp/${BUNDLEFOLDER}/bin/setenv +sed -ie 's%^# export JAVA_HOME%export JAVA_HOME="\${JAVA_HOME:-${JAVA_HOME}}"%g' \${MEMCONF} +sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM="${CONTROLLERMEM}"/g' \${MEMCONF} +cat \${MEMCONF} -echo "Define unique name in akka.conf" -sed -ie "s/{{MEMBER_NAME}}/\$CONTROLLERID/g" ${AKKACONF} +echo "Set Java version" +sudo /usr/sbin/alternatives --install /usr/bin/java java ${JAVA_HOME}/bin/java 1 +sudo /usr/sbin/alternatives --set java ${JAVA_HOME}/bin/java +echo "JDK default version ..." +java -version -echo "Define replication type in module-shards.conf" -sed -ie "s/{{{REPLICAS_1}}}/[\"member-0\",\n\t\t\t\"member-1\",\n\t\t\t\"member-2\"]/g" ${MODULESHARDSCONF} -sed -ie "s/{{{REPLICAS_2}}}/[\"member-0\",\n\t\t\t\"member-1\",\n\t\t\t\"member-2\"]/g" ${MODULESHARDSCONF} -sed -ie "s/{{{REPLICAS_3}}}/[\"member-0\",\n\t\t\t\"member-1\",\n\t\t\t\"member-2\"]/g" ${MODULESHARDSCONF} -sed -ie "s/{{{REPLICAS_4}}}/[\"member-0\",\n\t\t\t\"member-1\",\n\t\t\t\"member-2\"]/g" ${MODULESHARDSCONF} +echo "Set JAVA_HOME" +export JAVA_HOME="${JAVA_HOME}" +# Did you know that in HERE documents, single quote is an ordinary character, but backticks are still executing? +JAVA_RESOLVED=\`readlink -e "\${JAVA_HOME}/bin/java"\` +echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}" + +# Copy shard file if exists +if [ -f /tmp/custom_shard_config.txt ]; then + echo "Custom shard config exists!!!" + echo "Copying the shard config..." + cp /tmp/custom_shard_config.txt /tmp/${BUNDLEFOLDER}/bin/ +fi + +echo "Configuring cluster" +/tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 ${nodes_list} echo "Dump akka.conf" cat ${AKKACONF} +echo "Dump modules.conf" +cat ${MODULESCONF} + echo "Dump module-shards.conf" cat ${MODULESHARDSCONF} @@ -40,17 +125,14 @@ echo "Starting controller..." 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 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/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 ${CONTROLLERIPS[$i]}" + CONTROLLERIP=ODL_SYSTEM_${i}_IP + echo "Configuring member-${i} with IP address ${!CONTROLLERIP}" + scp ${WORKSPACE}/configuration-script.sh ${!CONTROLLERIP}:/tmp/ + ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i}" done # vim: ts=4 sw=4 sts=4 et ft=sh : -