CS-15094: Fix multiply vlan of redundang router

This fix would work because:
1. When booting up the router, there is possible that no ip information have
been set for the interface(CS would do it after confirm router is up), so the
interface isn't associate with any ip, then ifconfig cannot work. We have to use
ifup, this is especially true for the first router become master.

2. After booting up phase, the ip would be associated with interfaces, then we
can use ifconfig to bring them up.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/0c6dcb47
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/0c6dcb47
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/0c6dcb47

Branch: refs/heads/master
Commit: 0c6dcb477237a2e84261fc51afe3f359d68b9ea1
Parents: 435e4f6
Author: Sheng Yang <[email protected]>
Authored: Mon Sep 24 12:06:18 2012 -0700
Committer: Sheng Yang <[email protected]>
Committed: Wed Sep 26 16:28:33 2012 -0700

----------------------------------------------------------------------
 .../root/redundant_router/enable_pubip.sh.templ    |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0c6dcb47/patches/systemvm/debian/config/root/redundant_router/enable_pubip.sh.templ
----------------------------------------------------------------------
diff --git 
a/patches/systemvm/debian/config/root/redundant_router/enable_pubip.sh.templ 
b/patches/systemvm/debian/config/root/redundant_router/enable_pubip.sh.templ
index ec5905d..ccdef0b 100644
--- a/patches/systemvm/debian/config/root/redundant_router/enable_pubip.sh.templ
+++ b/patches/systemvm/debian/config/root/redundant_router/enable_pubip.sh.templ
@@ -21,8 +21,14 @@ set -e
 ip link|grep BROADCAST|grep -v eth0|grep -v eth1|cut -d ":" -f 2 > /tmp/iflist
 while read i
 do
-    ifdown $i
-    ifup $i
+    if [ "$i" == "eth2" ]
+    then
+        ifdown $i
+        ifup $i
+    else
+        ifconfig $i down
+        ifconfig $i up
+    fi
 done < /tmp/iflist
 ip route add default via [GATEWAY] dev eth2 && \
 service cloud-passwd-srvr restart && \

Reply via email to