From d63a0aad71cbc40aac8a8baa46b3dc183eeac977 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 1 Apr 2022 14:42:39 +0200 Subject: [PATCH 1/6] Nuke: adding concurrent tasks attribute to job submission also adding to settings --- .../plugins/publish/submit_nuke_deadline.py | 2 ++ .../defaults/project_settings/deadline.json | 1 + .../projects_schema/schema_project_deadline.json | 14 ++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index d6bd11620d..055d3c8a2c 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -27,6 +27,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): # presets priority = 50 chunk_size = 1 + concurent_task = 1 primary_pool = "" secondary_pool = "" group = "" @@ -177,6 +178,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): "Priority": priority, "ChunkSize": chunk_size, + "ConcurrentTasks": self.concurent_task, "Department": self.department, "Pool": self.primary_pool, diff --git a/openpype/settings/defaults/project_settings/deadline.json b/openpype/settings/defaults/project_settings/deadline.json index 5bb0a4022e..cfbb92e590 100644 --- a/openpype/settings/defaults/project_settings/deadline.json +++ b/openpype/settings/defaults/project_settings/deadline.json @@ -62,6 +62,7 @@ "use_published": true, "priority": 50, "chunk_size": 10, + "concurent_task": 1, "primary_pool": "", "secondary_pool": "", "group": "", diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json index e6097a2b14..700c3863fb 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json @@ -192,6 +192,9 @@ "key": "use_published", "label": "Use Published scene" }, + { + "type": "splitter" + }, { "type": "number", "key": "priority", @@ -202,6 +205,14 @@ "key": "chunk_size", "label": "Chunk Size" }, + { + "type": "number", + "key": "concurent_task", + "label": "Number of concurent tasks" + }, + { + "type": "splitter" + }, { "type": "text", "key": "primary_pool", @@ -217,6 +228,9 @@ "key": "group", "label": "Group" }, + { + "type": "splitter" + }, { "type": "text", "key": "department", From 5014dfddf9b2a2c657d557871ae1e137b9415726 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 1 Apr 2022 16:40:14 +0200 Subject: [PATCH 2/6] nuke: adding node knob for concurrent tasks - and fixing misspelling --- openpype/hosts/nuke/api/lib.py | 8 ++++++-- .../deadline/plugins/publish/submit_nuke_deadline.py | 10 ++++++++-- .../settings/defaults/project_settings/deadline.json | 2 +- .../projects_schema/schema_project_deadline.json | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py index c22488f728..9601244d1d 100644 --- a/openpype/hosts/nuke/api/lib.py +++ b/openpype/hosts/nuke/api/lib.py @@ -1048,12 +1048,16 @@ def add_review_knob(node): def add_deadline_tab(node): node.addKnob(nuke.Tab_Knob("Deadline")) + knob = nuke.Int_Knob("deadlinePriority", "Priority") + knob.setValue(50) + node.addKnob(knob) + knob = nuke.Int_Knob("deadlineChunkSize", "Chunk Size") knob.setValue(0) node.addKnob(knob) - knob = nuke.Int_Knob("deadlinePriority", "Priority") - knob.setValue(50) + knob = nuke.Int_Knob("deadlineConcurrentTasks", "Concurrent tasks") + knob.setValue(0) node.addKnob(knob) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index 055d3c8a2c..442fcc1ddf 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -27,7 +27,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): # presets priority = 50 chunk_size = 1 - concurent_task = 1 + concurrent_tasks = 1 primary_pool = "" secondary_pool = "" group = "" @@ -154,6 +154,11 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): if chunk_size == 0 and self.chunk_size: chunk_size = self.chunk_size + # define chunk and priority + concurrent_tasks = instance.data.get("deadlineConcurrentTasks") + if concurrent_tasks == 0 and self.concurrent_tasks: + concurrent_tasks = self.concurrent_tasks + priority = instance.data.get("deadlinePriority") if not priority: priority = self.priority @@ -178,7 +183,8 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): "Priority": priority, "ChunkSize": chunk_size, - "ConcurrentTasks": self.concurent_task, + "ConcurrentTasks": concurrent_tasks, + "Department": self.department, "Pool": self.primary_pool, diff --git a/openpype/settings/defaults/project_settings/deadline.json b/openpype/settings/defaults/project_settings/deadline.json index cfbb92e590..efaaa07be6 100644 --- a/openpype/settings/defaults/project_settings/deadline.json +++ b/openpype/settings/defaults/project_settings/deadline.json @@ -62,7 +62,7 @@ "use_published": true, "priority": 50, "chunk_size": 10, - "concurent_task": 1, + "concurrent_tasks": 1, "primary_pool": "", "secondary_pool": "", "group": "", diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json index 700c3863fb..ea1173313b 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json @@ -207,8 +207,8 @@ }, { "type": "number", - "key": "concurent_task", - "label": "Number of concurent tasks" + "key": "concurrent_tasks", + "label": "Number of concurrent tasks" }, { "type": "splitter" From fd420ff0dad0fe9c6e658613f587dfea65132340 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 1 Apr 2022 17:40:54 +0200 Subject: [PATCH 3/6] nuke: adding concurrent task knob input to instance data --- .../nuke/plugins/publish/precollect_writes.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/openpype/hosts/nuke/plugins/publish/precollect_writes.py b/openpype/hosts/nuke/plugins/publish/precollect_writes.py index 85e98db7ed..4826b2788f 100644 --- a/openpype/hosts/nuke/plugins/publish/precollect_writes.py +++ b/openpype/hosts/nuke/plugins/publish/precollect_writes.py @@ -128,13 +128,17 @@ class CollectNukeWrites(pyblish.api.InstancePlugin): } group_node = [x for x in instance if x.Class() == "Group"][0] - deadlineChunkSize = 1 + dl_chunk_size = 1 if "deadlineChunkSize" in group_node.knobs(): - deadlineChunkSize = group_node["deadlineChunkSize"].value() + dl_chunk_size = group_node["deadlineChunkSize"].value() - deadlinePriority = 50 + dl_priority = 50 if "deadlinePriority" in group_node.knobs(): - deadlinePriority = group_node["deadlinePriority"].value() + dl_priority = group_node["deadlinePriority"].value() + + dl_concurrent_tasks = 0 + if "deadlineConcurrentTasks" in group_node.knobs(): + dl_concurrent_tasks = group_node["deadlineConcurrentTasks"].value() instance.data.update({ "versionData": version_data, @@ -144,8 +148,9 @@ class CollectNukeWrites(pyblish.api.InstancePlugin): "label": label, "outputType": output_type, "colorspace": colorspace, - "deadlineChunkSize": deadlineChunkSize, - "deadlinePriority": deadlinePriority + "deadlineChunkSize": dl_chunk_size, + "deadlinePriority": dl_priority, + "deadlineConcurrentTasks": dl_concurrent_tasks }) if self.is_prerender(_families_test): From f186b99e22ab82d58e89fee7308356e6479042b4 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 4 Apr 2022 11:16:59 +0200 Subject: [PATCH 4/6] nuke: add comment to code --- openpype/hosts/nuke/api/lib.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py index 9601244d1d..b1717ea7ff 100644 --- a/openpype/hosts/nuke/api/lib.py +++ b/openpype/hosts/nuke/api/lib.py @@ -1057,12 +1057,19 @@ def add_deadline_tab(node): node.addKnob(knob) knob = nuke.Int_Knob("deadlineConcurrentTasks", "Concurrent tasks") + # zero as default will trigger value from Setting during collection + # look to precollect_write.py knob.setValue(0) node.addKnob(knob) def get_deadline_knob_names(): - return ["Deadline", "deadlineChunkSize", "deadlinePriority"] + return [ + "Deadline", + "deadlineChunkSize", + "deadlinePriority", + "deadlineConcurrentTasks" + ] def create_backdrop(label="", color=None, layer=0, From 71384d8cd6b049f5341167b583a3c830d7104c11 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 4 Apr 2022 11:32:39 +0200 Subject: [PATCH 5/6] deadline: adding strict method for getting --- .../deadline/plugins/publish/submit_nuke_deadline.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index 442fcc1ddf..9b5800c33f 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -150,16 +150,16 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): pass # define chunk and priority - chunk_size = instance.data.get("deadlineChunkSize") + chunk_size = instance.data["deadlineChunkSize"] if chunk_size == 0 and self.chunk_size: chunk_size = self.chunk_size # define chunk and priority - concurrent_tasks = instance.data.get("deadlineConcurrentTasks") + concurrent_tasks = instance.data["deadlineConcurrentTasks"] if concurrent_tasks == 0 and self.concurrent_tasks: concurrent_tasks = self.concurrent_tasks - priority = instance.data.get("deadlinePriority") + priority = instance.data["deadlinePriority"] if not priority: priority = self.priority From 582e35a4829f6494c9d145cbf027e4f8446f6ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Je=C5=BEek?= Date: Mon, 4 Apr 2022 16:11:04 +0200 Subject: [PATCH 6/6] Update openpype/hosts/nuke/api/lib.py Co-authored-by: Roy Nieterau --- openpype/hosts/nuke/api/lib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py index b1717ea7ff..e05c6aecbd 100644 --- a/openpype/hosts/nuke/api/lib.py +++ b/openpype/hosts/nuke/api/lib.py @@ -1057,8 +1057,8 @@ def add_deadline_tab(node): node.addKnob(knob) knob = nuke.Int_Knob("deadlineConcurrentTasks", "Concurrent tasks") - # zero as default will trigger value from Setting during collection - # look to precollect_write.py + # zero as default will get value from Settings during collection + # instead of being an explicit user override, see precollect_write.py knob.setValue(0) node.addKnob(knob)