From 3daa3f450b2401275d4cbf2b4b6798ef91d77612 Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 18 Mar 2019 18:05:40 +0700 Subject: [PATCH] Fix IOU symlink issue on remote servers. --- gns3server/compute/iou/iou_vm.py | 7 +++++++ gns3server/compute/project.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gns3server/compute/iou/iou_vm.py b/gns3server/compute/iou/iou_vm.py index 08a43e54..83c5befa 100644 --- a/gns3server/compute/iou/iou_vm.py +++ b/gns3server/compute/iou/iou_vm.py @@ -674,6 +674,13 @@ class IOUVM(BaseNode): pass self._iou_process = None + try: + symlink = os.path.join(self.working_dir, os.path.basename(self.path)) + if os.path.islink(symlink): + os.unlink(symlink) + except OSError as e: + log.warning("Could not delete symbolic link: {}".format(e)) + self._started = False self.save_configs() diff --git a/gns3server/compute/project.py b/gns3server/compute/project.py index 35623986..38b96522 100644 --- a/gns3server/compute/project.py +++ b/gns3server/compute/project.py @@ -407,7 +407,7 @@ class Project: """ files = [] - for dirpath, dirnames, filenames in os.walk(self.path): + for dirpath, dirnames, filenames in os.walk(self.path, followlinks=False): for filename in filenames: if not filename.endswith(".ghost"): path = os.path.relpath(dirpath, self.path)