From e291ec1eb902d0ae42e48d375e166efe8af6daf2 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 53cfe25d..e4b5e8c0 100644 --- a/gns3server/compute/iou/iou_vm.py +++ b/gns3server/compute/iou/iou_vm.py @@ -662,6 +662,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 ee2b1c19..f94c0ca3 100644 --- a/gns3server/compute/project.py +++ b/gns3server/compute/project.py @@ -415,7 +415,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)