Fix federation rabbit script to support multisite 27/53527/4
authorAlon Kochba <alonko@hpe.com>
Sun, 19 Mar 2017 13:05:17 +0000 (15:05 +0200)
committerJamo Luhrsen <jluhrsen@redhat.com>
Sun, 2 Apr 2017 14:29:25 +0000 (14:29 +0000)
Depends-On: https://git.opendaylight.org/gerrit/#/c/50066/
Change-Id: I92f85816d904d114ac5d85ae5e2786bc26327f77
Signed-off-by: Alon Kochba <alonko@hpe.com>
csit/scripts/set_federation_rabbit.sh

index 0afc2b476380ed8dd17436f0cee2dee8cceeb46b..b6d70f74458e3dab9556df12a83b22b6dad3fce7 100644 (file)
@@ -2,11 +2,11 @@
 
 if [[ ${CONTROLLERFEATURES} == *federation* ]]; then
 
-cat > ${WORKSPACE}/set_federation_rabbit.sh <<EOF
+cat > ${WORKSPACE}/install_federation_rabbit.sh <<EOF
 
     echo "Install rabbit server ..."
     sudo yum install -y erlang
-    sudo yum install -y rabbitmq-server
+    sudo yum install -y rabbitmq-server # Technically we should only install on the first ODL
 
     echo "Starting rabbit server ..."
     sudo chkconfig rabbitmq-server
@@ -16,28 +16,44 @@ cat > ${WORKSPACE}/set_federation_rabbit.sh <<EOF
     sudo /usr/sbin/rabbitmqctl add_user federation federation
     sudo rabbitmqctl set_permissions -p / federation ".*" ".*" ".*"
 
+EOF
+
+cat > ${WORKSPACE}/configure_federation_rabbit.sh <<EOF
+
     echo "Configuring rabbit broker for ODL ..."
     SERVICECONF=\$(find "/tmp/${BUNDLEFOLDER}/" -name "federation-service-impl-*config.xml")
-    sed -ie "s/<site-ip>.*</<site-ip>\$2</g" \${SERVICECONF}
     sed -ie "s/<mqBrokerIp>.*</<mqBrokerIp>\$1</g" \${SERVICECONF}
-    sed -ie "s/CONTROL_QUEUE_.*</CONTROL_QUEUE_\$1</g" \${SERVICECONF}
+    sed -ie "s/<site-ip>.*</<site-ip>\$2</g" \${SERVICECONF}
+    sed -ie "s/CONTROL_QUEUE_.*</CONTROL_QUEUE_\$2</g" \${SERVICECONF}
     sed -ie "s/guest/federation/g" \${SERVICECONF}
     cat \${SERVICECONF}
 
 EOF
 
+    NUM_ODLS_PER_SITE=$((NUM_ODL_SYSTEM / NUM_OPENSTACK_SITES))
     echo "Copying config files to ODL Controller folder"
-    for i in `seq 1 ${NUM_ODL_SYSTEM}`
+    for i in `seq 1 ${NUM_OPENSTACK_SITES}`
     do
-        CONTROLLERIP=ODL_SYSTEM_${i}_IP
-        ODL_SITE_IP=${ODL_SYSTEM_1_IP}
-        if [ ${NUM_ODL_SYSTEM} -gt 1 ]; then
-            HA_PROXY_IP=OPENSTACK_COMPUTE_NODE_${NUM_OPENSTACK_SYSTEM}_IP
-            ODL_SITE_IP=${!HA_PROXY_IP}
-        fi
-        echo "Setting rabbit client site ip to ${ODL_MGR_IP} on ${!CONTROLLERIP}"
-        scp ${WORKSPACE}/set_federation_rabbit.sh ${!CONTROLLERIP}:/tmp/
-        ssh ${!CONTROLLERIP} 'bash /tmp/set_federation_rabbit.sh' ${!CONTROLLERIP} ${ODL_SITE_IP}
+        FIRST_ODL_IN_SITE=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + 1))_IP
+        RABBIT_SERVER_IP=ODL_SYSTEM_${!FIRST_ODL_IN_SITE} # We install Rabbit on the first ODL in each site
+        CONTROLLERIP=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
+
+        scp ${WORKSPACE}/install_federation_rabbit.sh ${!RABBIT_SERVER_IP}:/tmp/
+        ssh ${!RABBIT_SERVER_IP} 'bash /tmp/install_federation_rabbit.sh'
+
+        for j in `seq 1 ${NUM_ODLS_PER_SITE}`
+        do
+            ODL_IP=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
+            if [ ${NUM_ODLS_PER_SITE} -gt 1 ]; then
+                HA_PROXY_IP=OPENSTACK_HAPROXY_${i}_IP
+                SITE_IP=${!HA_PROXY_IP}
+            else
+                SITE_IP=${!FIRST_ODL_IN_SITE} # Should this really be the first IP in the site?
+            fi
+            echo "Setting rabbit client site ip to ${SITE_IP} on ${!RABBIT_SERVER_IP}"
+
+            scp ${WORKSPACE}/configure_federation_rabbit.sh ${!ODL_IP}:/tmp/
+            ssh ${!ODL_IP} 'bash /tmp/configure_federation_rabbit.sh' ${!RABBIT_SERVER_IP} ${SITE_IP}
+        done
     done
-
 fi