diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py index 33dac0ab..5be1d6d8 100644 --- a/gns3server/controller/compute.py +++ b/gns3server/controller/compute.py @@ -347,7 +347,7 @@ class Compute: if not self._connected and not self._closed: try: response = yield from self._run_http_query("GET", "/capabilities") - except (aiohttp.errors.ClientOSError, aiohttp.errors.ClientRequestError): + except (aiohttp.errors.ClientOSError, aiohttp.errors.ClientRequestError, aiohttp.ClientResponseError): # Try to reconnect after 2 seconds if server unavailable asyncio.get_event_loop().call_later(2, lambda: asyncio.async(self.connect())) return diff --git a/gns3server/controller/node.py b/gns3server/controller/node.py index 8f797526..baa68c06 100644 --- a/gns3server/controller/node.py +++ b/gns3server/controller/node.py @@ -342,7 +342,7 @@ class Node: try: yield from self.post("/stop") # We don't care if a compute is down at this step - except aiohttp.errors.ClientOSError: + except (aiohttp.errors.ClientOSError, aiohttp.web.HTTPNotFound, aiohttp.web.HTTPConflict): pass @asyncio.coroutine diff --git a/gns3server/controller/project.py b/gns3server/controller/project.py index d1ce7e34..90130283 100644 --- a/gns3server/controller/project.py +++ b/gns3server/controller/project.py @@ -497,7 +497,7 @@ class Project: try: yield from compute.post("/projects/{}/close".format(self._id)) # We don't care if a compute is down at this step - except aiohttp.errors.ClientOSError: + except (aiohttp.errors.ClientOSError, aiohttp.web.HTTPNotFound, aiohttp.web.HTTPConflict): pass self._cleanPictures() self._status = "closed"