Merged in tokejepsen/pype/deadline_priority_nuke (pull request #349)

Support Deadline priority in Nuke.

Approved-by: Jakub Ježek <jakub@pype.club>
This commit is contained in:
Toke Jepsen 2019-11-04 13:56:57 +00:00 committed by Jakub Ježek
commit f7dae6aa5d
5 changed files with 30 additions and 4 deletions

View file

@ -389,6 +389,14 @@ def add_deadline_tab(node):
knob.setValue(1) knob.setValue(1)
node.addKnob(knob) 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, def create_backdrop(label="", color=None, layer=0,
nodes=None): nodes=None):

View file

@ -174,7 +174,8 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin):
"JobDependency0": job["_id"], "JobDependency0": job["_id"],
"UserName": job["Props"]["User"], "UserName": job["Props"]["User"],
"Comment": instance.context.data.get("comment", ""), "Comment": instance.context.data.get("comment", ""),
"InitialStatus": state "InitialStatus": state,
"Priority": job["Props"]["Pri"]
}, },
"PluginInfo": { "PluginInfo": {
"Version": "3.6", "Version": "3.6",

View file

@ -106,6 +106,10 @@ class CollectNukeWrites(pyblish.api.InstancePlugin):
if "deadlineChunkSize" in group_node.knobs(): if "deadlineChunkSize" in group_node.knobs():
deadlineChunkSize = group_node["deadlineChunkSize"].value() deadlineChunkSize = group_node["deadlineChunkSize"].value()
deadlinePriority = 50
if "deadlinePriority" in group_node.knobs():
deadlinePriority = group_node["deadlinePriority"].value()
instance.data.update({ instance.data.update({
"versionData": version_data, "versionData": version_data,
"path": path, "path": path,
@ -117,7 +121,8 @@ class CollectNukeWrites(pyblish.api.InstancePlugin):
"frameEnd": last_frame, "frameEnd": last_frame,
"outputType": output_type, "outputType": output_type,
"colorspace": node["colorspace"].value(), "colorspace": node["colorspace"].value(),
"deadlineChunkSize": deadlineChunkSize "deadlineChunkSize": deadlineChunkSize,
"deadlinePriority": deadlinePriority
}) })
self.log.debug("instance.data: {}".format(instance.data)) self.log.debug("instance.data: {}".format(instance.data))

View file

@ -85,6 +85,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin):
end=int(instance.data["frameEnd"]) end=int(instance.data["frameEnd"])
), ),
"ChunkSize": instance.data["deadlineChunkSize"], "ChunkSize": instance.data["deadlineChunkSize"],
"Priority": instance.data["deadlinePriority"],
"Comment": comment, "Comment": comment,

View file

@ -22,6 +22,13 @@ class RepairNukeWriteDeadlineTab(pyblish.api.Action):
for instance in instances: for instance in instances:
group_node = [x for x in instance if x.Class() == "Group"][0] 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) pype.nuke.lib.add_deadline_tab(group_node)
@ -38,5 +45,9 @@ class ValidateNukeWriteDeadlineTab(pyblish.api.InstancePlugin):
def process(self, instance): def process(self, instance):
group_node = [x for x in instance if x.Class() == "Group"][0] group_node = [x for x in instance if x.Class() == "Group"][0]
msg = "Deadline tab missing on \"{}\"".format(group_node.name()) knob_names = pype.nuke.lib.get_deadline_knob_names()
assert "Deadline" in group_node.knobs(), msg 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)