Fix when closing a container using VNC, root permission are not reset

Fix #659

Signed-off-by: Julien Duponchelle <julien@gns3.net>
This commit is contained in:
Bernhard Ehlers 2016-09-01 09:28:22 +02:00 committed by Julien Duponchelle
parent da1cd9a3e7
commit 07b982d4db
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8

View File

@ -577,6 +577,9 @@ class DockerVM(BaseVM):
@asyncio.coroutine @asyncio.coroutine
def reset(self): def reset(self):
try: try:
state = yield from self._get_container_state()
if state == "paused" or state == "running":
yield from self.stop()
if self.console_type == "vnc": if self.console_type == "vnc":
if self._x11vnc_process: if self._x11vnc_process:
try: try:
@ -589,9 +592,6 @@ class DockerVM(BaseVM):
yield from self._xvfb_process.wait() yield from self._xvfb_process.wait()
except ProcessLookupError: except ProcessLookupError:
pass pass
state = yield from self._get_container_state()
if state == "paused" or state == "running":
yield from self.stop()
# v 1/True/true or 0/False/false, Remove the volumes associated to the container. Default false. # v 1/True/true or 0/False/false, Remove the volumes associated to the container. Default false.
# force - 1/True/true or 0/False/false, Kill then remove the container. Default false. # force - 1/True/true or 0/False/false, Kill then remove the container. Default false.
yield from self.manager.query("DELETE", "containers/{}".format(self._cid), params={"force": 1, "v": 1}) yield from self.manager.query("DELETE", "containers/{}".format(self._cid), params={"force": 1, "v": 1})
@ -658,7 +658,7 @@ class DockerVM(BaseVM):
if nio.capturing: if nio.capturing:
yield from self._ubridge_hypervisor.send('bridge start_capture bridge{adapter} "{pcap_file}"'.format(adapter=adapter_number, yield from self._ubridge_hypervisor.send('bridge start_capture bridge{adapter} "{pcap_file}"'.format(adapter=adapter_number,
pcap_file=nio.pcap_output_file)) pcap_file=nio.pcap_output_file))
yield from self._ubridge_hypervisor.send('bridge start bridge{adapter}'.format(adapter=adapter_number)) yield from self._ubridge_hypervisor.send('bridge start bridge{adapter}'.format(adapter=adapter_number))