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}
74 echo "Starting controller..."
75 /tmp/${BUNDLEFOLDER}/bin/start
79 # Copy over the configuration script and configuration files to each controller
80 # Execute the configuration script on each controller.
81 for i in `seq 1 ${NUM_ODL_SYSTEM}`
83 CONTROLLERIP=ODL_SYSTEM_${i}_IP
84 echo "Configuring member-${i} with IP address ${!CONTROLLERIP}"
85 ssh ${!CONTROLLERIP} "mkdir /tmp/${BUNDLEFOLDER}/configuration/initial"
86 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/akka.conf.template ${!CONTROLLERIP}:${AKKACONF}
87 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/modules.conf.template ${!CONTROLLERIP}:${MODULESCONF}
88 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/module-shards.conf.template ${!CONTROLLERIP}:${MODULESHARDSCONF}
89 scp ${WORKSPACE}/test/tools/clustering/cluster-deployer/templates/multi-node-test/jolokia.xml.template ${!CONTROLLERIP}:${JOLOKIACONF}
90 scp ${WORKSPACE}/configuration-script.sh ${!CONTROLLERIP}:/tmp/
91 ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i} ${!CONTROLLERIP}"
94 # vim: ts=4 sw=4 sts=4 et ft=sh :