Merge branch 'ehlers-docker-init' into 1.5

pull/460/head
Julien Duponchelle 8 years ago
commit 60e9241857
No known key found for this signature in database
GPG Key ID: F1E2485547D4595D

@ -195,16 +195,22 @@ class DockerVM(BaseVM):
}, },
"Volumes": {}, "Volumes": {},
"Env": [], "Env": [],
"Cmd": image_infos.get("ContainerConfig", {"Cmd": []})["Cmd"] "Cmd": [],
"Entrypoint": image_infos.get("Config", {"Entrypoint": []})["Entrypoint"]
} }
params["Cmd"].insert(0, "/bin/sh")
params["Cmd"].insert(1, "/gns3/init.sh") if params["Entrypoint"] is None:
params["Entrypoint"] = []
if self._start_command: if self._start_command:
params["Cmd"] += shlex.split(self._start_command) params["Cmd"] = shlex.split(self._start_command)
else: if len(params["Cmd"]) == 0:
if len(params["Cmd"]) == 2: params["Cmd"] = image_infos.get("Config", {"Cmd": []})["Cmd"]
params["Cmd"] += ["/bin/sh"] if params["Cmd"] is None:
params["Cmd"] = []
if len(params["Cmd"]) == 0 and len(params["Entrypoint"]) == 0:
params["Cmd"] = ["/bin/sh"]
params["Entrypoint"].insert(0, "/gns3/init.sh")
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")]

@ -43,4 +43,4 @@ sed -n 's/^ *\(eth[0-9]*\):.*/\1/p' < /proc/net/dev | while read dev; do
done done
# continue normal docker startup # continue normal docker startup
/bin/sh -c "$@" exec "$@"

@ -98,7 +98,8 @@ def test_create(loop, project, manager):
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Env": [], "Env": [],
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm._cid == "e90e34656806" assert vm._cid == "e90e34656806"
@ -135,7 +136,8 @@ def test_create_vnc(loop, project, manager):
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Env": ['DISPLAY=:42'], "Env": ['DISPLAY=:42'],
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm._start_vnc.called assert vm._start_vnc.called
assert vm._cid == "e90e34656806" assert vm._cid == "e90e34656806"
@ -163,7 +165,8 @@ def test_create_start_cmd(loop, project, manager):
"Privileged": True "Privileged": True
}, },
"Volumes": {}, "Volumes": {},
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/ls"], "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/ls"],
"NetworkDisabled": True, "NetworkDisabled": True,
"Name": "test", "Name": "test",
"Hostname": "test", "Hostname": "test",
@ -200,7 +203,8 @@ def test_create_environment(loop, project, manager):
"Name": "test", "Name": "test",
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm._cid == "e90e34656806" assert vm._cid == "e90e34656806"
@ -246,7 +250,8 @@ def test_create_image_not_available(loop, project, manager):
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Env": [], "Env": [],
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm._cid == "e90e34656806" assert vm._cid == "e90e34656806"
mock_pull.assert_called_with("ubuntu") mock_pull.assert_called_with("ubuntu")
@ -456,7 +461,8 @@ def test_update(loop, vm):
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Env": [], "Env": [],
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm.console == original_console assert vm.console == original_console
@ -493,7 +499,8 @@ def test_update_running(loop, vm):
"Hostname": "test", "Hostname": "test",
"Image": "ubuntu", "Image": "ubuntu",
"Env": [], "Env": [],
"Cmd": ["/bin/sh", "/gns3/init.sh", "/bin/sh"] "Entrypoint": ["/gns3/init.sh"],
"Cmd": ["/bin/sh"]
}) })
assert vm.console == original_console assert vm.console == original_console

Loading…
Cancel
Save