From 3804980a4f975f222415d59a67e485fcb668263d Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 1 Feb 2022 22:28:38 +0100 Subject: [PATCH] Correctly fail extraction if user "interrupts" the extraction --- .../hosts/houdini/plugins/publish/extract_ass.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/houdini/plugins/publish/extract_ass.py b/openpype/hosts/houdini/plugins/publish/extract_ass.py index 239d0ebec3..e56e40df85 100644 --- a/openpype/hosts/houdini/plugins/publish/extract_ass.py +++ b/openpype/hosts/houdini/plugins/publish/extract_ass.py @@ -28,6 +28,16 @@ class ExtractAss(openpype.api.Extractor): render_rop(ropnode) + # Unfortunately user interrupting the extraction does not raise an + # error and thus still continues to the integrator. To capture that + # we make sure all files exist + files = instance.data["frames"] + missing = [fname for fname in files + if not os.path.exists(os.path.join(staging_dir, fname))] + if missing: + raise RuntimeError("Failed to complete Arnold ass extraction. " + "Missing output files: {}".format(missing)) + if "representations" not in instance.data: instance.data["representations"] = [] @@ -37,7 +47,7 @@ class ExtractAss(openpype.api.Extractor): representation = { 'name': 'ass', 'ext': ext, - "files": instance.data["frames"], + "files": files, "stagingDir": staging_dir, "frameStart": instance.data["frameStart"], "frameEnd": instance.data["frameEnd"],