mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-05 13:27:09 +02:00
62 lines
2.7 KiB
Diff
62 lines
2.7 KiB
Diff
From a7412d1c879920c3b2c2871763aafbe6836d1ed7 Mon Sep 17 00:00:00 2001
|
|
From: ziajka <dominik@gns3.net>
|
|
Date: Thu, 26 Oct 2017 16:29:01 +0200
|
|
Subject: [PATCH] aiohttp 2.3.1 dependency
|
|
|
|
---
|
|
gns3server/controller/compute.py | 8 +++++++-
|
|
gns3server/web/web_server.py | 11 ++++++++---
|
|
requirements.txt | 2 +-
|
|
3 files changed, 16 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py
|
|
index 05154fd3..8a3d35e8 100644
|
|
--- a/gns3server/controller/compute.py
|
|
+++ b/gns3server/controller/compute.py
|
|
@@ -506,10 +506,16 @@ def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
|
|
else:
|
|
data = json.dumps(data).encode("utf-8")
|
|
try:
|
|
+ log.debug("Attempting request to compute: {method} {url} {headers}".format(
|
|
+ method=method,
|
|
+ url=url,
|
|
+ headers=headers
|
|
+ ))
|
|
response = yield from self._session().request(method, url, headers=headers, data=data, auth=self._auth, chunked=chunked, timeout=timeout)
|
|
except asyncio.TimeoutError as e:
|
|
raise ComputeError("Timeout error when connecting to {}".format(url))
|
|
- except (aiohttp.ClientError, aiohttp.ServerDisconnectedError, ValueError, KeyError) as e:
|
|
+ except (aiohttp.ClientError, aiohttp.ServerDisconnectedError, ValueError, KeyError, socket.gaierror) as e:
|
|
+ # aiohttp 2.3.1 raises socket.gaierror when cannot find host
|
|
raise ComputeError(str(e))
|
|
body = yield from response.read()
|
|
if body and not raw:
|
|
diff --git a/gns3server/web/web_server.py b/gns3server/web/web_server.py
|
|
index 40179367..9ce9c2e0 100644
|
|
--- a/gns3server/web/web_server.py
|
|
+++ b/gns3server/web/web_server.py
|
|
@@ -43,8 +43,8 @@
|
|
import logging
|
|
log = logging.getLogger(__name__)
|
|
|
|
-if not aiohttp.__version__.startswith("2.2"):
|
|
- raise RuntimeError("aiohttp 2.2 is required to run the GNS3 server")
|
|
+if not (aiohttp.__version__.startswith("2.2") or aiohttp.__version__.startswith("2.3")):
|
|
+ raise RuntimeError("aiohttp 2.2.x or 2.3.x is required to run the GNS3 server")
|
|
|
|
|
|
class WebServer:
|
|
@@ -102,7 +102,12 @@ def shutdown_server(self):
|
|
if self._app:
|
|
yield from self._app.shutdown()
|
|
if self._handler:
|
|
- yield from self._handler.finish_connections(2) # Parameter is timeout
|
|
+ try:
|
|
+ # aiohttp < 2.3
|
|
+ yield from self._handler.finish_connections(2) # Parameter is timeout
|
|
+ except AttributeError:
|
|
+ # aiohttp >= 2.3
|
|
+ yield from self._handler.shutdown(2) # Parameter is timeout
|
|
if self._app:
|
|
yield from self._app.cleanup()
|