diff --git a/gns3server/compute/docker/docker_vm.py b/gns3server/compute/docker/docker_vm.py index d1ad1456..8794ddb0 100644 --- a/gns3server/compute/docker/docker_vm.py +++ b/gns3server/compute/docker/docker_vm.py @@ -481,6 +481,9 @@ class DockerVM(BaseNode): await self._start_vnc_process(restart=True) monitor_process(self._vnc_process, self._vnc_callback) + if self._console_websocket: + await self._console_websocket.close() + self._console_websocket = None await self._clean_servers() await self.manager.query("POST", "containers/{}/start".format(self._cid)) @@ -702,9 +705,7 @@ class DockerVM(BaseNode): self._console_websocket = await self.manager.websocket_query("containers/{}/attach/ws?stream=1&stdin=1&stdout=1&stderr=1".format(self._cid)) input_stream.ws = self._console_websocket - output_stream.feed_data(self.name.encode() + b" console is now available... Press RETURN to get started.\r\n") - asyncio.ensure_future(self._read_console_output(self._console_websocket, output_stream)) async def _read_console_output(self, ws, out): @@ -727,13 +728,14 @@ class DockerVM(BaseNode): out.feed_eof() await ws.close() break - await self.stop() async def reset_console(self): """ Reset the console. """ + if self._console_websocket: + await self._console_websocket.close() await self._clean_servers() await self._start_console() @@ -778,6 +780,9 @@ class DockerVM(BaseNode): """ try: + if self._console_websocket: + await self._console_websocket.close() + self._console_websocket = None await self._clean_servers() await self._stop_ubridge()