From 71bfa3774a944a65201bf779bc5335d61b6c57ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Mon, 17 Aug 2020 16:50:29 +0200 Subject: [PATCH] submit each assembly job separately --- .../global/publish/submit_publish_job.py | 5 ++-- .../maya/publish/submit_maya_deadline.py | 30 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/pype/plugins/global/publish/submit_publish_job.py b/pype/plugins/global/publish/submit_publish_job.py index d106175eb6..1a3d0df1b3 100644 --- a/pype/plugins/global/publish/submit_publish_job.py +++ b/pype/plugins/global/publish/submit_publish_job.py @@ -897,8 +897,9 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): # # Batch name reflect original scene name - if instance.data.get("assemblySubmissionJob"): - render_job["Props"]["Batch"] = instance.data.get("jobBatchName") + if instance.data.get("assemblySubmissionJobs"): + render_job["Props"]["Batch"] = instance.data.get( + "jobBatchName") else: render_job["Props"]["Batch"] = os.path.splitext( os.path.basename(context.data.get("currentFile")))[0] diff --git a/pype/plugins/maya/publish/submit_maya_deadline.py b/pype/plugins/maya/publish/submit_maya_deadline.py index d6d4bd2910..afa5496455 100644 --- a/pype/plugins/maya/publish/submit_maya_deadline.py +++ b/pype/plugins/maya/publish/submit_maya_deadline.py @@ -638,6 +638,9 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): "Path is unreachable: `{}`".format( os.path.dirname(config_file))) + # add config file as job auxFile + assembly_payloads[hash]["AuxFiles"] = [config_file] + with open(config_file, "w") as cf: print("TileCount={}".format(tiles_count), file=cf) print("ImageFileName={}".format(file), file=cf) @@ -658,20 +661,23 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): for k, v in tiles.items(): print("{}={}".format(k, v), file=cf) - self.log.debug(json.dumps(assembly_payloads, - indent=4, sort_keys=True)) - self.log.info( - "Submitting assembly job(s) [{}] ...".format(len(assembly_payloads))) # noqa: E501 - url = "{}/api/jobs".format(self._deadline_url) - response = self._requests_post(url, json={ - "Jobs": list(assembly_payloads.values()), - "AuxFiles": [] - }) - if not response.ok: - raise Exception(response) + job_idx = 1 + instance.data["assemblySubmissionJobs"] = [] + for k, ass_job in assembly_payloads.items(): + self.log.info("submitting assembly job {} of {}".format( + job_idx, len(assembly_payloads) + )) + self.log.debug(json.dumps(ass_job, indent=4, sort_keys=True)) + response = self._requests_post(url, json=ass_job) + if not response.ok: + raise Exception(response.text) + + instance.data["assemblySubmissionJobs"].append(ass_job) + job_idx += 1 - instance.data["assemblySubmissionJob"] = assembly_payloads instance.data["jobBatchName"] = payload["JobInfo"]["BatchName"] + self.log.info("Setting batch name on instance: {}".format( + instance.data["jobBatchName"])) else: # Submit job to farm -------------------------------------------- self.log.info("Submitting ...")