mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 09:18:08 +00:00
Merge pull request #518 from GNS3/detect_eth
Wait for all interfaces available in container
This commit is contained in:
commit
c7d58eb3b3
@ -284,6 +284,9 @@ class DockerVM(BaseVM):
|
|||||||
params["Cmd"] = ["/bin/sh"]
|
params["Cmd"] = ["/bin/sh"]
|
||||||
params["Entrypoint"].insert(0, "/gns3/init.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:
|
if self._environment:
|
||||||
params["Env"] += [e.strip() for e in self._environment.split("\n")]
|
params["Env"] += [e.strip() for e in self._environment.split("\n")]
|
||||||
|
|
||||||
|
@ -28,9 +28,6 @@ if [ ! -d /tmp/gns3/bin ]; then
|
|||||||
/gns3/bin/busybox --install -s /tmp/gns3/bin
|
/gns3/bin/busybox --install -s /tmp/gns3/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wait 2 seconds to settle the network interfaces
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
# /etc/hosts
|
# /etc/hosts
|
||||||
[ -s /etc/hosts ] || cat > /etc/hosts << __EOF__
|
[ -s /etc/hosts ] || cat > /etc/hosts << __EOF__
|
||||||
127.0.1.1 $HOSTNAME
|
127.0.1.1 $HOSTNAME
|
||||||
@ -45,6 +42,13 @@ __EOF__
|
|||||||
# configure loopback interface
|
# configure loopback interface
|
||||||
ip link set dev lo up
|
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
|
# activate eth interfaces
|
||||||
sed -n 's/^ *\(eth[0-9]*\):.*/\1/p' < /proc/net/dev | while read dev; do
|
sed -n 's/^ *\(eth[0-9]*\):.*/\1/p' < /proc/net/dev | while read dev; do
|
||||||
ip link set dev $dev up
|
ip link set dev $dev up
|
||||||
|
@ -103,7 +103,9 @@ def test_create(loop, project, manager):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": [],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0"
|
||||||
|
],
|
||||||
"Entrypoint": ["/gns3/init.sh"],
|
"Entrypoint": ["/gns3/init.sh"],
|
||||||
"Cmd": ["/bin/sh"]
|
"Cmd": ["/bin/sh"]
|
||||||
})
|
})
|
||||||
@ -142,7 +144,10 @@ def test_create_vnc(loop, project, manager):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": ['DISPLAY=:42'],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0",
|
||||||
|
"DISPLAY=:42"
|
||||||
|
],
|
||||||
"Entrypoint": ["/gns3/init.sh"],
|
"Entrypoint": ["/gns3/init.sh"],
|
||||||
"Cmd": ["/bin/sh"]
|
"Cmd": ["/bin/sh"]
|
||||||
})
|
})
|
||||||
@ -182,7 +187,9 @@ def test_create_start_cmd(loop, project, manager):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": []
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0"
|
||||||
|
]
|
||||||
})
|
})
|
||||||
assert vm._cid == "e90e34656806"
|
assert vm._cid == "e90e34656806"
|
||||||
|
|
||||||
@ -211,7 +218,11 @@ def test_create_environment(loop, project, manager):
|
|||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
"Env": ["YES=1", "NO=0"],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0",
|
||||||
|
"YES=1",
|
||||||
|
"NO=0"
|
||||||
|
],
|
||||||
"Volumes": {},
|
"Volumes": {},
|
||||||
"NetworkDisabled": True,
|
"NetworkDisabled": True,
|
||||||
"Name": "test",
|
"Name": "test",
|
||||||
@ -266,7 +277,9 @@ def test_create_image_not_available(loop, project, manager):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": [],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0"
|
||||||
|
],
|
||||||
"Entrypoint": ["/gns3/init.sh"],
|
"Entrypoint": ["/gns3/init.sh"],
|
||||||
"Cmd": ["/bin/sh"]
|
"Cmd": ["/bin/sh"]
|
||||||
})
|
})
|
||||||
@ -481,7 +494,9 @@ def test_update(loop, vm):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": [],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0"
|
||||||
|
],
|
||||||
"Entrypoint": ["/gns3/init.sh"],
|
"Entrypoint": ["/gns3/init.sh"],
|
||||||
"Cmd": ["/bin/sh"]
|
"Cmd": ["/bin/sh"]
|
||||||
})
|
})
|
||||||
@ -546,7 +561,9 @@ def test_update_running(loop, vm):
|
|||||||
"Name": "test",
|
"Name": "test",
|
||||||
"Hostname": "test",
|
"Hostname": "test",
|
||||||
"Image": "ubuntu",
|
"Image": "ubuntu",
|
||||||
"Env": [],
|
"Env": [
|
||||||
|
"GNS3_MAX_ETHERNET=eth0"
|
||||||
|
],
|
||||||
"Entrypoint": ["/gns3/init.sh"],
|
"Entrypoint": ["/gns3/init.sh"],
|
||||||
"Cmd": ["/bin/sh"]
|
"Cmd": ["/bin/sh"]
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user