diskimage-builder/elements/ramdisk/init.d/02-start-network
Ben Nemec 381ff6ab1d Fix set -eu and pipefail failures
Fixes problems found by set -eu and pipefail, including:
-Many unset variables
-Commands that can fail under normal circumstances, which breaks
with set -e.  This change swallows those expected errors to allow
our existing error code to handle them.
-The dkms element was not finding Fedora kernel versions correctly.
This may be an issue for other distros too, but since Fedora was
working fine without this functionality I only changed it to print
a warning message rather than failing the build when it happens.
-The ramdisk init script will not be set -eu because if it fails
the result is a kernel panic, which can be tricky to debug.
However, in testing with set -e a few failing commands were found
and have been fixed in this patch.

Change-Id: I44cf98dfc80cfcaec54b88cc83be80a3dbf2cec3
2014-04-15 20:53:15 -05:00

46 lines
904 B
Plaintext

echo "starting network $BOOT_MAC_ADDRESS"
t=0
while ! BOOT_INTERFACE=$(find_interface "$BOOT_MAC_ADDRESS"); do
t=`expr "$t" + 5`
if [ "$t" -gt 10 ]; then
break
fi
sleep 5
done
if [ -z "$BOOT_INTERFACE" ]; then
err_msg "Could not find an interface that owns MAC: $BOOT_MAC_ADDRESS"
troubleshoot
fi
readonly BOOT_INTERFACE
ifconfig lo 127.0.0.1 up
rv=0
ifconfig "$BOOT_INTERFACE" up || rv=1
if [ rv -ne 0 ]; then
sleep 10
rv=0
ifconfig "$BOOT_INTERFACE" up || rv=1
if [ $? -ne 0 ]; then
err_msg "Failed to ifconfig up $BOOT_INTERFACE"
troubleshoot
fi
fi
ifconfig "$BOOT_INTERFACE" "$BOOT_IP_ADDRESS" netmask "$BOOT_NETMASK"
route del default || true
route add default gw $BOOT_GATEWAY
echo "pinging to boot server $BOOT_SERVER"
w=30
while [ $w -gt 0 ]; do
ping -c 5 -q "$BOOT_SERVER" > /dev/null
if [ $? -eq 0 ]; then
break
fi
sleep 1
w=`expr $w - 5`
done
echo "network ready"