diff --git a/gns3server/compute/docker/__init__.py b/gns3server/compute/docker/__init__.py index fc488a93a..9dfdad8bb 100644 --- a/gns3server/compute/docker/__init__.py +++ b/gns3server/compute/docker/__init__.py @@ -100,14 +100,17 @@ class Docker(BaseManager): """ data = json.dumps(data) url = "http://docker/" + path - response = yield from aiohttp.request( - method, - url, - connector=(yield from self.connector()), - params=params, - data=data, - headers={"content-type": "application/json", }, - ) + try: + response = yield from aiohttp.request( + method, + url, + connector=(yield from self.connector()), + params=params, + data=data, + headers={"content-type": "application/json", }, + ) + except aiohttp.ClientResponseError as e: + raise DockerError("Docker has returned an error: {}".format(str(e))) if response.status >= 300: body = yield from response.read() try: diff --git a/gns3server/compute/dynamips/nodes/router.py b/gns3server/compute/dynamips/nodes/router.py index f3d0bc808..fc3bc00d9 100644 --- a/gns3server/compute/dynamips/nodes/router.py +++ b/gns3server/compute/dynamips/nodes/router.py @@ -1545,7 +1545,14 @@ class Router(BaseNode): """ if self.startup_config or self.private_config: + module_workdir = self.project.module_working_directory(self.manager.module_name.lower()) + try: + config_path = os.path.join(module_workdir, "configs") + os.makedirs(config_path, exist_ok=True) + except OSError as e: + raise DynamipsError("Could could not create configuration directory {}: {}".format(config_path, e)) + startup_config_base64, private_config_base64 = yield from self.extract_config() if startup_config_base64: if not self.startup_config: