diff --git a/gns3server/modules/dynamips/__init__.py b/gns3server/modules/dynamips/__init__.py index c10fce52..03eb326c 100644 --- a/gns3server/modules/dynamips/__init__.py +++ b/gns3server/modules/dynamips/__init__.py @@ -435,7 +435,7 @@ class Dynamips(BaseManager): except DynamipsError as e: log.warn("Could not create ghost instance: {}".format(e)) - if vm.ghost_file != ghost_file and os.path.isfile(ghost_file): + if vm.ghost_file != ghost_file and os.path.isfile(ghost_file_path): # set the ghost file to the router yield from vm.set_ghost_status(2) yield from vm.set_ghost_file(ghost_file) diff --git a/gns3server/modules/dynamips/nodes/router.py b/gns3server/modules/dynamips/nodes/router.py index 910430a9..dcfaac80 100644 --- a/gns3server/modules/dynamips/nodes/router.py +++ b/gns3server/modules/dynamips/nodes/router.py @@ -1495,10 +1495,10 @@ class Router(BaseVM): try: reply = yield from self._hypervisor.send("vm extract_config {}".format(self._name)) - reply = reply[0].rsplit(' ', 2)[-2:] - except IOError: + except DynamipsError: #for some reason Dynamips gets frozen when it does not find the magic number in the NVRAM file. return None, None + reply = reply[0].rsplit(' ', 2)[-2:] startup_config = reply[0][1:-1] # get statup-config and remove single quotes private_config = reply[1][1:-1] # get private-config and remove single quotes return startup_config, private_config diff --git a/gns3server/web/route.py b/gns3server/web/route.py index 4bf5679b..1fee37c7 100644 --- a/gns3server/web/route.py +++ b/gns3server/web/route.py @@ -115,8 +115,8 @@ class Route(object): except VMError as e: log.error("VM error detected: {type}".format(type=type(e)), exc_info=1) response = Response(route=route) - response.set_status(500) - response.json({"message": str(e), "status": 500}) + response.set_status(409) + response.json({"message": str(e), "status": 409}) except Exception as e: log.error("Uncaught exception detected: {type}".format(type=type(e)), exc_info=1) response = Response(route=route)