mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
support based on init.sh, Ref: #2482
This commit is contained in:
1 parent
43081152ef
commit
80958e8a6d
3 files changed
+60
-12
No files matched your search
@@ -337,11 +337,10 @@ class DockerVM(BaseNode):
|
||||
params["Env"].append("DISPLAY=:{}".format(self._display))
|
||||
params["HostConfig"]["Binds"].append("/tmp/.X11-unix/:/tmp/.X11-unix/")
|
||||
|
||||
if self._extra_hosts is not None and self._extra_hosts.strip() != "":
|
||||
params["HostConfig"]["ExtraHosts"] = [h.strip()
|
||||
for h in self._extra_hosts.split("\n")
|
||||
if h.strip() != "" ]
|
||||
|
||||
if self._extra_hosts:
|
||||
extra_hosts = self._format_extra_hosts(self._extra_hosts)
|
||||
if extra_hosts:
|
||||
params["Env"].append("GNS3_EXTRA_HOSTS={}".format(extra_hosts))
|
||||
|
||||
result = yield from self.manager.query("POST", "containers/create", data=params)
|
||||
self._cid = result['Id']
|
||||
@@ -349,6 +348,20 @@ class DockerVM(BaseNode):
|
||||
name=self._name, id=self._id))
|
||||
return True
|
||||
|
||||
def _format_extra_hosts(self, extra_hosts):
|
||||
lines = [h.strip() for h in self._extra_hosts.split("\n") if h.strip() != ""]
|
||||
hosts = []
|
||||
try:
|
||||
for host in lines:
|
||||
hostname, ip = host.split(":")
|
||||
hostname = hostname.strip()
|
||||
ip = ip.strip()
|
||||
if hostname and ip:
|
||||
hosts.append((hostname, ip))
|
||||
except ValueError:
|
||||
raise DockerError("Can't apply `ExtraHosts`, wrong format: {}".format(extra_hosts))
|
||||
return "\n".join(["{}\t{}".format(h[1], h[0]) for h in hosts])
|
||||
|
||||
@asyncio.coroutine
|
||||
def update(self):
|
||||
"""
|
||||
|
||||
@@ -60,6 +60,14 @@ ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
__EOF__
|
||||
|
||||
# imitate docker's `ExtraHosts` behaviour
|
||||
sed -i '/GNS3_EXTRA_HOSTS_START/,/GNS3_EXTRA_HOSTS_END/d' /etc/hosts
|
||||
[ -n "$GNS3_EXTRA_HOSTS" ] && cat >> /etc/hosts << __EOF__
|
||||
# GNS3_EXTRA_HOSTS_START
|
||||
$GNS3_EXTRA_HOSTS
|
||||
# GNS3_EXTRA_HOSTS_END
|
||||
__EOF__
|
||||
|
||||
# configure loopback interface
|
||||
ip link set dev lo up
|
||||
|
||||
|
||||
Reference in new issue
Block a user