X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Finclude-raw-integration-configure-clustering.sh;h=fda080ddf10716cf8446a33f30fa4cb3577f1cee;hb=refs%2Fchanges%2F17%2F38317%2F2;hp=bf5ba87a457c76284320f6d88f06a75e3388ea98;hpb=e3eda5afc71463e89a99e1cfc450517423bd5aea;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 bf5ba87a4..fda080ddf 100644 --- a/jjb/integration/include-raw-integration-configure-clustering.sh +++ b/jjb/integration/include-raw-integration-configure-clustering.sh @@ -5,11 +5,21 @@ 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=',\n\t\t' + delim=' ' final=$1; shift for str in $* ; do @@ -19,48 +29,87 @@ function join { 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. - +# Create the string for nodes 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}\\\" + nodes[$i]=${!CONTROLLERIP} done -data_seed_list=$(join ${data_seed_nodes[@]}) -rpc_seed_list=$(join ${rpc_seed_nodes[@]}) -member_name_list=$(join ${member_names[@]}) +nodes_list=$(join ${nodes[@]}) -# echo ${data_seed_list} -# echo ${rpc_seed_list} -# echo ${member_name_list} +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 hostname in akka.conf" -sed -i -e "s:{{HOST}}:\${CONTROLLERIP}:" ${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 "Configuring data seed nodes in akka.conf" -sed -i -e "s/{{{DS_SEED_NODES}}}/[${data_seed_list}]/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 "Configuring rpc seed nodes in akka.conf" -sed -i -e "s/{{{RPC_SEED_NODES}}}/[${rpc_seed_list}]/g" ${AKKACONF} +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}" -echo "Define unique name in akka.conf" -sed -i -e "s/{{MEMBER_NAME}}/\${CONTROLLERID}/g" ${AKKACONF} +# 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 "Define replication type in module-shards.conf" -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 "Configuring cluster" +/tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 ${nodes_list} echo "Dump akka.conf" cat ${AKKACONF} @@ -71,21 +120,10 @@ 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 +EOF + +# Create the startup script to be run on controllers. +cat > ${WORKSPACE}/startup-script.sh <