From c6f9cb708397f5e37e837c4d5660fe4441a920bd Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 3 Feb 2021 15:31:09 +0100 Subject: [PATCH 1/4] crashed action with log traceback --- pype/modules/ftrack/actions/action_create_project_structure.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pype/modules/ftrack/actions/action_create_project_structure.py b/pype/modules/ftrack/actions/action_create_project_structure.py index 64b4ba6727..e5d0777570 100644 --- a/pype/modules/ftrack/actions/action_create_project_structure.py +++ b/pype/modules/ftrack/actions/action_create_project_structure.py @@ -91,6 +91,7 @@ class CreateProjectFolders(BaseAction): self.create_ftrack_entities(basic_paths, project_entity) except Exception as exc: + self.log.warning("Creating of structure crashed.", exc_info=True) session.rollback() return { "success": False, From 62479df77c7d02c5aee75830ae56bad5d579e609 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 3 Feb 2021 15:33:13 +0100 Subject: [PATCH 2/4] anatomy is created in create_folders and entity is not passed --- .../ftrack/actions/action_create_project_structure.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pype/modules/ftrack/actions/action_create_project_structure.py b/pype/modules/ftrack/actions/action_create_project_structure.py index e5d0777570..4f9579bb12 100644 --- a/pype/modules/ftrack/actions/action_create_project_structure.py +++ b/pype/modules/ftrack/actions/action_create_project_structure.py @@ -86,8 +86,7 @@ class CreateProjectFolders(BaseAction): try: # Get paths based on presets basic_paths = self.get_path_items(project_folder_structure) - anatomy = Anatomy(project_entity["full_name"]) - self.create_folders(basic_paths, project_entity, anatomy) + self.create_folders(basic_paths, project_entity) self.create_ftrack_entities(basic_paths, project_entity) except Exception as exc: @@ -221,7 +220,8 @@ class CreateProjectFolders(BaseAction): output.append(os.path.normpath(os.path.sep.join(clean_items))) return output - def create_folders(self, basic_paths, project, anatomy): + def create_folders(self, basic_paths, project): + anatomy = Anatomy(project["full_name"]) roots_paths = [] if isinstance(anatomy.roots, dict): for root in anatomy.roots: From e31bd5b75a40a673e7f73d2d7d761414626106e7 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 3 Feb 2021 15:43:40 +0100 Subject: [PATCH 3/4] don't use root keys but their path values --- pype/modules/ftrack/actions/action_create_project_structure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/modules/ftrack/actions/action_create_project_structure.py b/pype/modules/ftrack/actions/action_create_project_structure.py index 4f9579bb12..6b02a84357 100644 --- a/pype/modules/ftrack/actions/action_create_project_structure.py +++ b/pype/modules/ftrack/actions/action_create_project_structure.py @@ -224,7 +224,7 @@ class CreateProjectFolders(BaseAction): anatomy = Anatomy(project["full_name"]) roots_paths = [] if isinstance(anatomy.roots, dict): - for root in anatomy.roots: + for root in anatomy.roots.values(): roots_paths.append(root.value) else: roots_paths.append(anatomy.roots.value) From 70646a9907f480c688de27016a1e03de89a08397 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 3 Feb 2021 15:43:49 +0100 Subject: [PATCH 4/4] fix existence cehcek and added more debug logs --- .../ftrack/actions/action_create_project_structure.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pype/modules/ftrack/actions/action_create_project_structure.py b/pype/modules/ftrack/actions/action_create_project_structure.py index 6b02a84357..f42f952314 100644 --- a/pype/modules/ftrack/actions/action_create_project_structure.py +++ b/pype/modules/ftrack/actions/action_create_project_structure.py @@ -234,9 +234,14 @@ class CreateProjectFolders(BaseAction): full_paths = self.compute_paths(basic_paths, project_root) # Create folders for path in full_paths: - if os.path.exists(path): - continue - os.makedirs(path.format(project_root=project_root)) + full_path = path.format(project_root=project_root) + if os.path.exists(full_path): + self.log.debug( + "Folder already exists: {}".format(full_path) + ) + else: + self.log.debug("Creating folder: {}".format(full_path)) + os.makedirs(full_path) def register(session):