diff --git a/gns3server/modules/dynamips/nodes/router.py b/gns3server/modules/dynamips/nodes/router.py index c23f10f5..784e9451 100644 --- a/gns3server/modules/dynamips/nodes/router.py +++ b/gns3server/modules/dynamips/nodes/router.py @@ -1498,7 +1498,10 @@ class Router(BaseVM): if self.startup_config or self.private_config: module_workdir = self.project.module_working_directory(self.manager.module_name.lower()) startup_config_base64, private_config_base64 = yield from self.extract_config() - if self.startup_config and startup_config_base64: + if startup_config_base64: + if not self.startup_config: + self._startup_config = os.path.join("configs", "i{}_startup-config.cfg".format(self._dynamips_id)) + try: config = base64.b64decode(startup_config_base64).decode("utf-8", errors="replace") config = "!\n" + config.replace("\r", "") @@ -1509,7 +1512,10 @@ class Router(BaseVM): except (binascii.Error, OSError) as e: raise DynamipsError("Could not save the startup configuration {}: {}".format(config_path, e)) - if self.private_config and private_config_base64: + if private_config_base64: + if not self.private_config: + self._private_config = os.path.join("configs", "i{}_private-config.cfg".format(self._dynamips_id)) + try: config = base64.b64decode(private_config_base64).decode("utf-8", errors="replace") config = "!\n" + config.replace("\r", "")