X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Finclude-raw-integration-configure-clustering.sh;h=fda080ddf10716cf8446a33f30fa4cb3577f1cee;hb=c0598b3fd754f4e7e7384a89fdd89e74e044b1cf;hp=f758b51df603b15817cbe2c2e109bad85b6d21ad;hpb=8a4b303d3cfab90125af7772a7a872a78e229d52;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 f758b51df..fda080ddf 100644 --- a/jjb/integration/include-raw-integration-configure-clustering.sh +++ b/jjb/integration/include-raw-integration-configure-clustering.sh @@ -1,234 +1,152 @@ -echo "##################################################" -echo "## include-raw-integration-configure-clustering ##" -echo "##################################################" - -# this script configures replication on a single ODL controller. -# files touched are akka.conf modules-shards.conf - - - -echo "##################################" -echo "## Loop through controller IPs #" -echo "##################################" - -declare CONTROLLERIPS=($(cat slave_addresses.txt | grep CONTROLLER | awk -F = '{print $2}')) -declare -p CONTROLLERIPS - -echo "######################################################" -echo "## include-raw-integration-configuration_functions ##" -echo "######################################################" - -# writes the functions needed for configuring clustering to -# configuration-functions in the WORKSPACE -env - -set -x +echo "#################################################" +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 +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'` -cat > ${WORKSPACE}/configuration-functions < scriptplan.txt + cat scriptplan.txt + for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' scriptplan.txt ); do + echo "Executing ${line}..." + source ${line} + done fi -if [ -z \${CONTROLLERIPS} ]; then - echo "WARNING: Cluster IPs not known due to UNBOUND varible: CONTROLLERIPS[@] does not exist" - echo "WARNING: Calling getslaveaddresses to populate CONTROLLERIPS[@]" - getslaveaddresses -fi - - - - -############################ -# BEGIN function variables # -############################ - - # make local copies of global varibles because globals may produce interesting bugs. - echo "# set the IP of the current controller." - - local LOOPINCR=\$1 - local CURRENTCONTROLLERIPADDR=\$2 - local AKKACONF=\$(find /tmp/${BUNDLEFOLDER} -name akka.conf) - - # used to verify IP address of current VM - local HOSTIPADDR0=\$(/sbin/ifconfig eth0 | grep "inet " | awk '{print \$2}' | awk '{print \$1}') - local HOSTIPADDR=\${HOSTIPADDR0#'addr:'} - local TEMPIP = \$(/sbin/ifconfig eth0 | grep "inet " | awk '{print \$0}' ) - local CLUSTERDATAORIG="\"akka.tcp:\/\/opendaylight-cluster-data@127.0.0.1:2550"\" - local CLUSTERDATANEW="\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER0:2550\",\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER1:2550\",\"akka.tcp:\/\/opendaylight-cluster-data@$CONTROLLER2:2550"\" - - local CLUSTERRPCORIG="\"akka.tcp:\/\/odl-cluster-rpc@127.0.0.1:2551"\" - local CLUSTERRPCNEW="\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER0:2551\",\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER1:2551\",\"akka.tcp:\/\/odl-cluster-rpc@$CONTROLLER2:2551\"" - - local UIDORIG="member-1" - local UIDNEW="member-\$1" - -########################## -# END function variables # -########################## - -##################################### -# sanity test hostname in akka.conf # -##################################### -# probably overkill as SCP depends on IPaddress being correct. - -#set -x - if [ -z \${HOSTIPADDR} ]; then - echo "WARNING: HOSTIPADDR is empty." - fi - -#set +x - - if [ "\${CURRENTCONTROLLERIPADDR}" == "\${HOSTIPADDR}" ] - then - echo "CURRENTCONTROLLERIPADRR:\${CURRENTCONTROLLERIPADDR} == HOSTIPADDR:\${HOSTIPADDR}" - else - echo "WARNING: CURRENTCONTROLLERIPADRR:\${CURRENTCONTROLLERIPADDR} != HOSTIPADDR:\${HOSTIPADDR}" - fi - -#################################### -# configure hostname in akka.conf # -#################################### - cp \${AKKACONF} \${AKKACONF}.bak - sed -ri "s:hostname = \"([0-9]{1,3}[\.]){3}[0-9]{1,3}\":hostname = \ -\$HOSTIPADDR:" \${AKKACONF}.bak +# Create the configuration script to be run on controllers. +cat > ${WORKSPACE}/configuration-script.sh <> \${CUSTOMPROP} + cat \${CUSTOMPROP} +fi - sed -i "s/\$CLUSTERDATAORIG/\$CLUSTERDATANEW/g" \${AKKACONF}.bak - sed -i "s/\$CLUSTERRPCORIG/\$CLUSTERRPCNEW/g" \${AKKACONF}.bak +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 "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 "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 -#################################### -# define unique name for each node # -#################################### - - sed -i "s/\$UIDORIG/\$UIDNEW/g" \${AKKACONF}.bak - cp \${AKKACONF}.bak \${AKKACONF} - cat \${AKKACONF} -echo "##### END editakkaconf #####" -set +x -} -function configuremoduleshardsconf -{ - echo"### configuremoduleshardsconf ###" - set -x - if [ -z ${BUNDLEFOLDER} ] || [ -f ${BUNDLEFOLDER} ]; then - echo "MODULESHARDSCONF WARNING: Location of ODL BUNDLEFOLDER:\$BUNDLEFOLDER is not defined" - fi - - local REPLICACONFORIG='"member-1"' - local REPLICACONFNEW='"member-0",\n\t\t\t"member-1",\n\t\t\t"member-2"' - - - MODULESHARDSCONF=\$(find /tmp/${BUNDLEFOLDER} -name module-shards.conf) - - if [ -z \${MODULESHARDSCONF} ] - then - printf "source file module-shards.conf was not found\n" - else - printf "MODULESHARDSCONF: \${MODULESHARDSCONF}" - cp \${MODULESHARDSCONF} \${MODULESHARDSCONF}.bak - printf \$REPLICACONFNEW - sed -i "s/\$REPLICACONFORIG/\$REPLICACONFNEW/g" \${MODULESHARDSCONF}.bak - - cp \${MODULESHARDSCONF}.bak \${MODULESHARDSCONF} - cat \${MODULESHARDSCONF} - fi - set +x -} +echo "Configuring cluster" +/tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 ${nodes_list} +echo "Dump akka.conf" +cat ${AKKACONF} +echo "Dump modules.conf" +cat ${MODULESCONF} -function runcontrollerscript -{ - local CONTROLLERIP=\$1 - local SCRIPT=\$2 - echo "run controller \$CONTROLLERIP on \$i" - ssh -v \$CONTROLLERIP 'bash /tmp/\$SCRIPT' -} +echo "Dump module-shards.conf" +cat ${MODULESHARDSCONF} EOF -set +x - - -#less configuration-functions -echo "#########################################################" -echo "## END include-raw-integration-configuration_functions ##" -echo "#########################################################" - -echo "##################################" -echo "## Less configuration functions #" -echo "##################################" - -#less ${WORKSPACE}/configuration-functions - -echo "######################################" -echo "## END Less configuration functions #" -echo "######################################" - -## Describe the script run on guest vm (node) to configure clustering +# Create the startup script to be run on controllers. +cat > ${WORKSPACE}/startup-script.sh < ${WORKSPACE}/configuration-script.sh <