From 9670553ea85d6593046425f2c040cc08d2e61733 Mon Sep 17 00:00:00 2001 From: Marcus Sorensen Date: Wed, 10 Apr 2013 12:17:31 -0600 Subject: [PATCH] In system vm, wait for interface to be available before configuring gateway. Previous patch to this only did so for system vms with a $3 interface, usually eth2. System VMs that only provide DNS wouldn't get a gateway, for example. BUG-ID: CLOUDSTACK-1565 Signed-off-by: Marcus Sorensen 1365617851 -0600 --- .../config/etc/init.d/cloud-early-config | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config index 514c0b012cf..3faa1bd0f2e 100755 --- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config +++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config @@ -386,33 +386,39 @@ setup_common() { ip route delete default if [ "$RROUTER" != "1" ] then - if [ -z "$3" ] + gwdev=$3 + if [ -z "$gwdev" ] + then + gwdev="eth0" + fi + + timer=0 + #default route add fails if we run before interface configured with ip + log_it "checking that $gwdev has IP before setting default route to $GW" + echo "checking that $gwdev has IP before setting default route to $GW" + while true + do + ip=$(ifconfig $gwdev | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}') + if [ -z $ip ] then - ip route add default via $GW dev eth0 + sleep 1; + #waiting for the interface to setup with ip + log_it "waiting for $gwdev interface setup with ip" + echo "waiting for $gwdev interface setup with ip" else - timer=0 - #default route add fails if we run before interface configured with ip - while true - do - ip=$(ifconfig $3 | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}') - if [ -z $ip ] - then - sleep 1; - #waiting for the interface to setup with ip - echo "waiting for $3 interface setup with ip" - else - ip route add default via $GW dev $3 - break - fi - - if [ $timer -gt 5 ] - then - echo "interface $3 is not set up with ip... configuring default route failed" - break - fi - timer=`expr $timer + 1` - done + ip route add default via $GW dev $gwdev + break fi + + if [ $timer -gt 15 ] + then + log_it "interface $gwdev is not set up with ip... configuring default route failed"; + echo "interface $gwdev is not set up with ip... configuring default route failed" + break + fi + timer=`expr $timer + 1` + done + fi # a hacking way to activate vSwitch under VMware