1 echo "#################################################"
2 echo "## Configure Cluster and Start ##"
3 echo "#################################################"
5 AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf
6 MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
7 MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
8 JOLOKIACONF=/tmp/${BUNDLEFOLDER}/deploy/jolokia.xml
10 # Utility function for joining strings.
16 final=${final}${delim}${str}
22 # Create the strings for data and rpc seed nodes
23 # First create various arrays with one element per controller.
24 # Then merge each array using the join utility defined above.
26 for i in `seq 1 ${NUM_ODL_SYSTEM}` ; do
27 CONTROLLERIP=ODL_SYSTEM_${i}_IP
28 data_seed_nodes[$i]=\\\"akka.tcp:\\/\\/opendaylight-cluster-data@${!CONTROLLERIP}:2550\\\"
29 rpc_seed_nodes[$i]=\\\"akka.tcp:\\/\\/odl-cluster-rpc@${!CONTROLLERIP}:2551\\\"
30 member_names[$i]=\\\"member-${i}\\\"
33 data_seed_list=$(join ${data_seed_nodes[@]})
34 rpc_seed_list=$(join ${rpc_seed_nodes[@]})
35 member_name_list=$(join ${member_names[@]})
37 # echo ${data_seed_list}
38 # echo ${rpc_seed_list}
39 # echo ${member_name_list}
41 # Create the configuration script to be run on controllers.
42 cat > ${WORKSPACE}/configuration-script.sh <<EOF
44 CONTROLLERID="member-\$1"
47 echo "Configuring hostname in akka.conf"
48 sed -i -e "s:{{HOST}}:\${CONTROLLERIP}:" ${AKKACONF}
50 echo "Configuring data seed nodes in akka.conf"
51 sed -i -e "s/{{{DS_SEED_NODES}}}/[${data_seed_list}]/g" ${AKKACONF}
53 echo "Configuring rpc seed nodes in akka.conf"
54 sed -i -e "s/{{{RPC_SEED_NODES}}}/[${rpc_seed_list}]/g" ${AKKACONF}
56 echo "Define unique name in akka.conf"
57 sed -i -e "s/{{MEMBER_NAME}}/\${CONTROLLERID}/g" ${AKKACONF}
59 echo "Define replication type in module-shards.conf"
60 sed -i -e "s/{{{REPLICAS_1}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
61 sed -i -e "s/{{{REPLICAS_2}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
62 sed -i -e "s/{{{REPLICAS_3}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
63 sed -i -e "s/{{{REPLICAS_4}}}/[${member_name_list}]/g" ${MODULESHARDSCONF}
68 echo "Dump modules.conf"
71 echo "Dump module-shards.conf"
72 cat ${MODULESHARDSCONF}
75 export JAVA_HOME="${JAVA_HOME}"
76 # Did you know that in HERE documents, single quote is an ordinary character, but backticks are still executing?
77 JAVA_RESOLVED=\`readlink -e "\${JAVA_HOME}/bin/java"\`
78 echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}"
79 echo "JDK default version ..."
82 echo "Starting controller..."
83 /tmp/${BUNDLEFOLDER}/bin/start
87 # Copy over the configuration script and configuration files to each controller
88 # Execute the configuration script on each controller.
89 for i in `seq 1 ${NUM_ODL_SYSTEM}`
91 CONTROLLERIP=ODL_SYSTEM_${i}_IP
92 echo "Configuring member-${i} with IP address ${!CONTROLLERIP}"
93 ssh ${!CONTROLLERIP} "mkdir /tmp/${BUNDLEFOLDER}/configuration/initial"
94 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/akka.conf.template ${!CONTROLLERIP}:${AKKACONF}
95 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/modules.conf.template ${!CONTROLLERIP}:${MODULESCONF}
96 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/module-shards.conf.template ${!CONTROLLERIP}:${MODULESHARDSCONF}
97 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/jolokia.xml.template ${!CONTROLLERIP}:${JOLOKIACONF}
98 scp ${WORKSPACE}/configuration-script.sh ${!CONTROLLERIP}:/tmp/
99 ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i} ${!CONTROLLERIP}"
102 # vim: ts=4 sw=4 sts=4 et ft=sh :