Wait for all interfaces available in container

Fix #511
This commit is contained in:
Julien Duponchelle committed 2016-05-06 19:07:18 +02:00
1 parent 16b5bb8810
commit 2cdfd6c0d7
3 files changed
+34 -10

No files matched your search

+3
View File
@@ -284,6 +284,9 @@ class DockerVM(BaseVM):
params["Cmd"] = ["/bin/sh"]
params["Entrypoint"].insert(0, "/gns3/init.sh")
# Give the information to the container on how many interface should be inside
params["Env"].append("GNS3_MAX_ETHERNET=eth{}".format(self.adapters - 1))
if self._environment:
params["Env"] += [e.strip() for e in self._environment.split("\n")]
+7 -3
View File
@@ -28,9 +28,6 @@ if [ ! -d /tmp/gns3/bin ]; then
/gns3/bin/busybox --install -s /tmp/gns3/bin
fi
# Wait 2 seconds to settle the network interfaces
sleep 2
# /etc/hosts
[ -s /etc/hosts ] || cat > /etc/hosts << __EOF__
127.0.1.1 $HOSTNAME
@@ -45,6 +42,13 @@ __EOF__
# configure loopback interface
ip link set dev lo up
# Wait for all eth available
while true
do
grep $GNS3_MAX_ETHERNET /proc/net/dev > /dev/null && break
sleep 0.5
done
# activate eth interfaces
sed -n 's/^ *\(eth[0-9]*\):.*/\1/p' < /proc/net/dev | while read dev; do
ip link set dev $dev up