From 83921a45df9a453d1a515e9d62794990f419f6ee Mon Sep 17 00:00:00 2001 From: grossmj Date: Tue, 26 Nov 2024 12:07:06 +1000 Subject: [PATCH] Fix use project name instead of ID for fast duplication when running local server. Fixes #2446 --- gns3server/controller/project.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gns3server/controller/project.py b/gns3server/controller/project.py index b1651c1a7..743758c72 100644 --- a/gns3server/controller/project.py +++ b/gns3server/controller/project.py @@ -588,7 +588,7 @@ async def add_node(self, compute, name, node_id, dump=True, node_type=None, **kw if node_type == "iou": async with self._iou_id_lock: - # wait for a IOU node to be completely created before adding a new one + # wait for an IOU node to be completely created before adding a new one # this is important otherwise we allocate the same application ID (used # to generate MAC addresses) when creating multiple IOU node at the same time if "properties" in kwargs.keys(): @@ -1275,7 +1275,10 @@ async def _fast_duplication(self, name=None, location=None, reset_mac_addresses= p_work = pathlib.Path(location or self.path).parent.absolute() t0 = time.time() new_project_id = str(uuid.uuid4()) - new_project_path = p_work.joinpath(new_project_id) + if location: + new_project_path = p_work.joinpath(location) + else: + new_project_path = p_work.joinpath(new_project_id) # copy dir await wait_run_in_executor(shutil.copytree, self.path, new_project_path.as_posix(), symlinks=True, ignore_dangling_symlinks=True) log.info("Project content copied from '{}' to '{}' in {}s".format(self.path, new_project_path, time.time() - t0))