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 <marcus@betterservers.com> 1365617851 -0600
This commit is contained in:
Marcus Sorensen 2013-04-10 12:17:31 -06:00
parent a4a059c043
commit 9670553ea8

View File

@ -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