diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py index 145de540..0696c25f 100644 --- a/gns3server/controller/compute.py +++ b/gns3server/controller/compute.py @@ -299,6 +299,7 @@ class Compute: # https://www.python.org/dev/peps/pep-0492/ # that why we wrap the answer class StreamResponse: + def __init__(self, response): self._response = response @@ -350,7 +351,11 @@ class Compute: """ self._ws = yield from self._session().ws_connect(self._getUrl("/notifications/ws")) while True: - response = yield from self._ws.receive() + try: + response = yield from self._ws.receive() + except aiohttp.errors.WSServerHandshakeError: + self._ws = None + return if response.tp == aiohttp.MsgType.closed or response.tp == aiohttp.MsgType.error: self._connected = False break diff --git a/gns3server/controller/link.py b/gns3server/controller/link.py index 845b0b34..676eaba6 100644 --- a/gns3server/controller/link.py +++ b/gns3server/controller/link.py @@ -165,7 +165,7 @@ class Link: @property def nodes(self): - return [ node['node'] for node in self._nodes ] + return [node['node'] for node in self._nodes] @property def capturing(self): diff --git a/gns3server/utils/asyncio/__init__.py b/gns3server/utils/asyncio/__init__.py index e0577af8..1ddfcc76 100644 --- a/gns3server/utils/asyncio/__init__.py +++ b/gns3server/utils/asyncio/__init__.py @@ -127,4 +127,3 @@ def wait_for_named_pipe_creation(pipe_path, timeout=60): else: return raise asyncio.TimeoutError() - diff --git a/tests/utils/test_asyncio.py b/tests/utils/test_asyncio.py index 3c5d617f..b4fc7ae6 100644 --- a/tests/utils/test_asyncio.py +++ b/tests/utils/test_asyncio.py @@ -67,5 +67,3 @@ def test_wait_for_process_termination(loop): exec = wait_for_process_termination(process, timeout=0.5) with pytest.raises(asyncio.TimeoutError): loop.run_until_complete(asyncio.async(exec)) - -