diff --git a/gns3server/controller/__init__.py b/gns3server/controller/__init__.py index 56787bed..c9f36759 100644 --- a/gns3server/controller/__init__.py +++ b/gns3server/controller/__init__.py @@ -348,7 +348,7 @@ class Controller: self._computes[compute.id] = compute #self.save() if connect: - asyncio.ensure_future(compute.connect()) + asyncio.get_event_loop().call_later(1, lambda: asyncio.ensure_future(compute.connect())) self.notification.controller_emit("compute.created", compute.__json__()) return compute else: diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py index dcef793d..0dc7b1bc 100644 --- a/gns3server/controller/compute.py +++ b/gns3server/controller/compute.py @@ -473,7 +473,8 @@ class Compute: log.info("Connection closed to compute '{}' WebSocket '{}'".format(self._id, ws_url)) # Try to reconnect after 1 second if server unavailable only if not during tests (otherwise we create a ressources usage bomb) - if not hasattr(sys, "_called_from_test") or not sys._called_from_test: + if self.id != "local" and not hasattr(sys, "_called_from_test") or not sys._called_from_test: + log.info("Reconnecting to to compute '{}' WebSocket '{}'".format(self._id, ws_url)) asyncio.get_event_loop().call_later(1, lambda: asyncio.ensure_future(self.connect())) self._cpu_usage_percent = None diff --git a/gns3server/server.py b/gns3server/server.py index b0fe5149..9ed16f9c 100644 --- a/gns3server/server.py +++ b/gns3server/server.py @@ -320,8 +320,7 @@ class Server: port=port, access_log=access_log, ssl_certfile=config.Server.certfile, - ssl_keyfile=config.Server.certkey, - lifespan="on") + ssl_keyfile=config.Server.certkey) # overwrite uvicorn loggers with our own logger for uvicorn_logger_name in ("uvicorn", "uvicorn.error"):