diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index f182088457..d8a1352a55 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -389,6 +389,14 @@ def add_deadline_tab(node): knob.setValue(1) node.addKnob(knob) + knob = nuke.Int_Knob("deadlinePriority", "Priority") + knob.setValue(50) + node.addKnob(knob) + + +def get_deadline_knob_names(): + return ["Deadline", "deadlineChunkSize", "deadlinePriority"] + def create_backdrop(label="", color=None, layer=0, nodes=None): diff --git a/pype/plugins/global/publish/submit_publish_job.py b/pype/plugins/global/publish/submit_publish_job.py index 0130eaf0c4..1072f95b8e 100644 --- a/pype/plugins/global/publish/submit_publish_job.py +++ b/pype/plugins/global/publish/submit_publish_job.py @@ -174,7 +174,8 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): "JobDependency0": job["_id"], "UserName": job["Props"]["User"], "Comment": instance.context.data.get("comment", ""), - "InitialStatus": state + "InitialStatus": state, + "Priority": job["Props"]["Pri"] }, "PluginInfo": { "Version": "3.6", diff --git a/pype/plugins/nuke/publish/collect_writes.py b/pype/plugins/nuke/publish/collect_writes.py index 29ae6cb929..adfc5c69f0 100644 --- a/pype/plugins/nuke/publish/collect_writes.py +++ b/pype/plugins/nuke/publish/collect_writes.py @@ -106,6 +106,10 @@ class CollectNukeWrites(pyblish.api.InstancePlugin): if "deadlineChunkSize" in group_node.knobs(): deadlineChunkSize = group_node["deadlineChunkSize"].value() + deadlinePriority = 50 + if "deadlinePriority" in group_node.knobs(): + deadlinePriority = group_node["deadlinePriority"].value() + instance.data.update({ "versionData": version_data, "path": path, @@ -117,7 +121,8 @@ class CollectNukeWrites(pyblish.api.InstancePlugin): "frameEnd": last_frame, "outputType": output_type, "colorspace": node["colorspace"].value(), - "deadlineChunkSize": deadlineChunkSize + "deadlineChunkSize": deadlineChunkSize, + "deadlinePriority": deadlinePriority }) self.log.debug("instance.data: {}".format(instance.data)) diff --git a/pype/plugins/nuke/publish/submit_nuke_deadline.py b/pype/plugins/nuke/publish/submit_nuke_deadline.py index ef971f3a37..4044026b5e 100644 --- a/pype/plugins/nuke/publish/submit_nuke_deadline.py +++ b/pype/plugins/nuke/publish/submit_nuke_deadline.py @@ -85,6 +85,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): end=int(instance.data["frameEnd"]) ), "ChunkSize": instance.data["deadlineChunkSize"], + "Priority": instance.data["deadlinePriority"], "Comment": comment, diff --git a/pype/plugins/nuke/publish/validate_write_deadline_tab.py b/pype/plugins/nuke/publish/validate_write_deadline_tab.py index 0c222a164a..4e63e14a7f 100644 --- a/pype/plugins/nuke/publish/validate_write_deadline_tab.py +++ b/pype/plugins/nuke/publish/validate_write_deadline_tab.py @@ -22,6 +22,13 @@ class RepairNukeWriteDeadlineTab(pyblish.api.Action): for instance in instances: group_node = [x for x in instance if x.Class() == "Group"][0] + + # Remove exising knobs. + knob_names = pype.nuke.lib.get_deadline_knob_names() + for name, knob in group_node.knobs().iteritems(): + if name in knob_names: + group_node.removeKnob(knob) + pype.nuke.lib.add_deadline_tab(group_node) @@ -38,5 +45,9 @@ class ValidateNukeWriteDeadlineTab(pyblish.api.InstancePlugin): def process(self, instance): group_node = [x for x in instance if x.Class() == "Group"][0] - msg = "Deadline tab missing on \"{}\"".format(group_node.name()) - assert "Deadline" in group_node.knobs(), msg + knob_names = pype.nuke.lib.get_deadline_knob_names() + missing_knobs = [] + for name in knob_names: + if name not in group_node.knobs().keys(): + missing_knobs.append(name) + assert not missing_knobs, "Missing knobs: {}".format(missing_knobs)