From f27f986360e862537e64ded10cbcbd2c0f8f48b2 Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 7 Nov 2017 10:39:02 +0100 Subject: [PATCH 01/16] renderlayer settings creator --- .../maya/create/colorbleed_rendersettings.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 colorbleed/plugins/maya/create/colorbleed_rendersettings.py diff --git a/colorbleed/plugins/maya/create/colorbleed_rendersettings.py b/colorbleed/plugins/maya/create/colorbleed_rendersettings.py new file mode 100644 index 0000000000..1d64871297 --- /dev/null +++ b/colorbleed/plugins/maya/create/colorbleed_rendersettings.py @@ -0,0 +1,26 @@ +from collections import OrderedDict + +import avalon.maya +from colorbleed.maya import lib + + +class CreateRenderSettings(avalon.maya.Creator): + + label = "Render Settings" + family = "colorbleed.rendersettings" + icon = "gears" + + def __init__(self, *args, **kwargs): + super(CreateRenderSettings, self).__init__(*args, **kwargs) + + data = OrderedDict(**self.data) + + data["publish"] = True + data["includeDefaultRenderLayer"] = False + data["overrideFrameRange"] = False + + # Get basic animation data : start / end / handles / steps + for key, value in lib.collect_animation_data().items(): + data[key] = value + + self.data = data \ No newline at end of file From c3580630b0b8050e56a45f686e6eabe307d65835 Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 14:36:57 +0100 Subject: [PATCH 02/16] updated submit to support initialstatus for job --- .../maya/create/colorbleed_renderglobals.py | 38 +++++++++++++++++++ .../maya/create/colorbleed_rendersettings.py | 26 ------------- .../plugins/maya/publish/submit_deadline.py | 24 +++++++++--- 3 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 colorbleed/plugins/maya/create/colorbleed_renderglobals.py delete mode 100644 colorbleed/plugins/maya/create/colorbleed_rendersettings.py diff --git a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py new file mode 100644 index 0000000000..952e7a9476 --- /dev/null +++ b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py @@ -0,0 +1,38 @@ +from collections import OrderedDict + +import avalon.maya + + +class CreateRenderGlobals(avalon.maya.Creator): + + label = "Render Globals" + family = "colorbleed.renderglobals" + icon = "gears" + + def __init__(self, *args, **kwargs): + super(CreateRenderGlobals, self).__init__(*args, **kwargs) + + # We won't be publishing this one + self.data["id"] = "avalon.renderglobals" + data = OrderedDict(**self.data) + + data["suspendPublishJob"] = False + data["includeDefaultRenderLayer"] = False + data["priority"] = 50 + data["whitelist"] = False + data["machineList"] = "" + + self.data = data + self.options = {"useSelection": False} # Force no content + + def process(self): + from maya import cmds + + exists = cmds.ls("renderglobalsDefault") + assert len(exists) <= 1, ( + "More than one renderglobal exists, this is a bug") + + if exists: + return cmds.warning("%s already exists." % exists[0]) + + super(CreateRenderGlobals, self).process() \ No newline at end of file diff --git a/colorbleed/plugins/maya/create/colorbleed_rendersettings.py b/colorbleed/plugins/maya/create/colorbleed_rendersettings.py deleted file mode 100644 index 1d64871297..0000000000 --- a/colorbleed/plugins/maya/create/colorbleed_rendersettings.py +++ /dev/null @@ -1,26 +0,0 @@ -from collections import OrderedDict - -import avalon.maya -from colorbleed.maya import lib - - -class CreateRenderSettings(avalon.maya.Creator): - - label = "Render Settings" - family = "colorbleed.rendersettings" - icon = "gears" - - def __init__(self, *args, **kwargs): - super(CreateRenderSettings, self).__init__(*args, **kwargs) - - data = OrderedDict(**self.data) - - data["publish"] = True - data["includeDefaultRenderLayer"] = False - data["overrideFrameRange"] = False - - # Get basic animation data : start / end / handles / steps - for key, value in lib.collect_animation_data().items(): - data[key] = value - - self.data = data \ No newline at end of file diff --git a/colorbleed/plugins/maya/publish/submit_deadline.py b/colorbleed/plugins/maya/publish/submit_deadline.py index db0611839e..8f046f1c39 100644 --- a/colorbleed/plugins/maya/publish/submit_deadline.py +++ b/colorbleed/plugins/maya/publish/submit_deadline.py @@ -2,6 +2,7 @@ import os import json import shutil import getpass +import pprint from maya import cmds @@ -194,7 +195,10 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): }) # Include optional render globals - payload["JobInfo"].update(instance.data.get("renderGlobals", {})) + render_globals = instance.data.get("renderGlobals", {}) + payload["JobInfo"].update(render_globals) + + pprint.pprint(payload["JobInfo"]) self.preflight_check(instance) @@ -215,14 +219,19 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): with open(json_fpath, "w") as f: json.dump(data, f, indent=4, sort_keys=True) + self.log.info("Creating publish job") + state = instance.data["suspendPublishJob"] publish_job = self.create_publish_job(fname, deadline_user, comment, jobname, render_job, - json_fpath) + json_fpath, + state) if not publish_job: self.log.error("Could not submit publish job!") + else: + self.log.info(publish_job) else: try: @@ -279,15 +288,17 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): ) def create_publish_job(self, fname, user, comment, jobname, - job, json_fpath): - """ - Make sure all frames are published + job, json_fpath, state): + """Make sure all frames are published + Args: job (dict): the render job data json_fpath (str): file path to json file + state (str): In which state the job needs to when submitted, e.g.: + "Suspended" Returns: - + dict """ url = "{}/api/jobs".format(api.Session["AVALON_DEADLINE"]) @@ -310,6 +321,7 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): "JobDependency0": job["_id"], "UserName": user, "Comment": comment, + "InitialStatus": state }, "PluginInfo": { "Version": "3.6", From 6fc1ec413b9ca6c3f8ac6eca9d888eb77e55fe12 Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 14:37:49 +0100 Subject: [PATCH 03/16] added render globals to control job submittions --- .../maya/publish/collect_renderlayers.py | 58 ++++++++++++++----- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index a8cdc5a40f..36d6c0609f 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -1,3 +1,5 @@ +import pprint + from maya import cmds import pyblish.api @@ -23,12 +25,26 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): relative_file = current_file.replace(registered_root, "{root}") source_file = relative_file.replace("\\", "/") + # Get renderglobals + if cmds.objExists("renderglobalsDefault"): + attr = "renderglobalsDefault.includeDefaultRenderLayer" + use_defaultlayer = cmds.getAttr(attr) + else: + use_defaultlayer = False + + # Get render layers renderlayers = cmds.ls(type="renderLayer") + # Exclude renderlayers if attribute is False + if not use_defaultlayer: + renderlayers = [i for i in renderlayers if + not i.endswith("defaultRenderLayer")] + for layer in renderlayers: if layer.endswith("defaultRenderLayer"): - continue + layername = "masterLayer" + else: + layername = layer.split("rs_", 1)[-1] - layername = layer.split("rs_", 1)[-1] data = {"family": "Render Layers", "families": ["colorbleed.renderlayer"], "publish": cmds.getAttr("{}.renderable".format(layer)), @@ -63,20 +79,26 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): # Include (optional) global settings # TODO(marcus): Take into account layer overrides try: - avalon_globals = maya.lsattr("id", "avalon.renderglobals")[0] + render_globals = cmds.ls("renderglobalsDefault")[0] except IndexError: pass else: - _globals = maya.read(avalon_globals) - data["renderGlobals"] = self.get_global_overrides(_globals) + _globals = maya.read(render_globals) + # Ensure machine list is created correctly + overrides = self.translate_overrides(_globals) + + # Check if renders need to published + data.update(**overrides) instance = context.create_instance(layername) instance.data.update(data) + pprint.pprint(instance.data) + def get_render_attribute(self, attr): return cmds.getAttr("defaultRenderGlobals.{}".format(attr)) - def get_global_overrides(self, globals): + def translate_overrides(self, globals): """ Get all overrides with a value, skip those without @@ -90,15 +112,19 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): Returns: dict: only overrides with values """ - keys = ["pool", "group", "frames", "priority"] - read_globals = {} - for key in keys: - value = globals[key] - if not value: - continue - read_globals[key.capitalize()] = value + machine_list = globals["machineList"] + translation = {"renderGlobals": + {"Priority": globals["priority"]}, + "suspendPublishJob": "Active" + } - if not read_globals: - self.log.info("Submitting without overrides") + if globals["whitelist"]: + translation["renderGlobals"]["Whitelist"] = machine_list + else: + translation["renderGlobals"]["Blacklist"] = machine_list + + if globals["suspendPublishJob"]: + translation["suspendPublishJob"] = "Suspended" + + return translation - return read_globals \ No newline at end of file From 8d3935b09c02409e1a01c09f99c368865fc427bd Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 14:38:45 +0100 Subject: [PATCH 04/16] added renderglobals controller --- colorbleed/plugins/maya/create/colorbleed_renderglobals.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py index 952e7a9476..a0e7d9195a 100644 --- a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py +++ b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py @@ -14,6 +14,11 @@ class CreateRenderGlobals(avalon.maya.Creator): # We won't be publishing this one self.data["id"] = "avalon.renderglobals" + + # We don't need subset or asset attributes + self.data.pop("subset", None) + self.data.pop("asset", None) + data = OrderedDict(**self.data) data["suspendPublishJob"] = False @@ -35,4 +40,4 @@ class CreateRenderGlobals(avalon.maya.Creator): if exists: return cmds.warning("%s already exists." % exists[0]) - super(CreateRenderGlobals, self).process() \ No newline at end of file + super(CreateRenderGlobals, self).process() From 8cdff651696c3dc66cfd2d75543672046d89f27f Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 15:40:40 +0100 Subject: [PATCH 05/16] added check, renderglobals must be present to collect renderlayers --- .../maya/publish/collect_renderlayers.py | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index 36d6c0609f..ca7ccace09 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -25,20 +25,26 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): relative_file = current_file.replace(registered_root, "{root}") source_file = relative_file.replace("\\", "/") - # Get renderglobals - if cmds.objExists("renderglobalsDefault"): - attr = "renderglobalsDefault.includeDefaultRenderLayer" - use_defaultlayer = cmds.getAttr(attr) - else: - use_defaultlayer = False + # Get render globals node + try: + render_globals = cmds.ls("renderglobalsDefault")[0] + except IndexError: + raise RuntimeError("Can not collect renderlayers without " + "renderGlobals node") + + attr = "{}.includeDefaultRenderLayer".format(render_globals) + use_defaultlayer = cmds.getAttr(attr) # Get render layers renderlayers = cmds.ls(type="renderLayer") - # Exclude renderlayers if attribute is False if not use_defaultlayer: renderlayers = [i for i in renderlayers if not i.endswith("defaultRenderLayer")] + # Get global overrides and translate to Deadline values + _globals = maya.read(render_globals) + overrides = self.translate_overrides(_globals) + for layer in renderlayers: if layer.endswith("defaultRenderLayer"): layername = "masterLayer" @@ -78,17 +84,8 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): # Include (optional) global settings # TODO(marcus): Take into account layer overrides - try: - render_globals = cmds.ls("renderglobalsDefault")[0] - except IndexError: - pass - else: - _globals = maya.read(render_globals) - # Ensure machine list is created correctly - overrides = self.translate_overrides(_globals) - - # Check if renders need to published - data.update(**overrides) + # Add the global overrides + data.update(**overrides) instance = context.create_instance(layername) instance.data.update(data) From 0520b6a03f15f41cee1d10a1c5c56c87af9af9ef Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 16:41:31 +0100 Subject: [PATCH 06/16] check for render global not before collecting layers, simplified code --- .../maya/publish/collect_renderlayers.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index ca7ccace09..1ae584406a 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -29,7 +29,7 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): try: render_globals = cmds.ls("renderglobalsDefault")[0] except IndexError: - raise RuntimeError("Can not collect renderlayers without " + raise RuntimeError("Cannot collect renderlayers without " "renderGlobals node") attr = "{}.includeDefaultRenderLayer".format(render_globals) @@ -41,10 +41,6 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): renderlayers = [i for i in renderlayers if not i.endswith("defaultRenderLayer")] - # Get global overrides and translate to Deadline values - _globals = maya.read(render_globals) - overrides = self.translate_overrides(_globals) - for layer in renderlayers: if layer.endswith("defaultRenderLayer"): layername = "masterLayer" @@ -84,7 +80,8 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): # Include (optional) global settings # TODO(marcus): Take into account layer overrides - # Add the global overrides + # Get global overrides and translate to Deadline values + overrides = self.translate_overrides(render_globals) data.update(**overrides) instance = context.create_instance(layername) @@ -95,33 +92,39 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): def get_render_attribute(self, attr): return cmds.getAttr("defaultRenderGlobals.{}".format(attr)) - def translate_overrides(self, globals): - """ - Get all overrides with a value, skip those without + def translate_overrides(self, render_globals): + """Get all overrides with a value, skip those without Here's the kicker. These globals override defaults in the submission integrator, but an empty value means no overriding is made. Otherwise, Frames would override the default frames set under globals. Args: - globals (dict) collection of render globals + render_globals (str): collection of render globals Returns: dict: only overrides with values """ - machine_list = globals["machineList"] + + _globals = maya.read(render_globals) + + machine_list = _globals["machineList"] translation = {"renderGlobals": - {"Priority": globals["priority"]}, + {"Priority": _globals["priority"]}, "suspendPublishJob": "Active" } - if globals["whitelist"]: + if _globals["whitelist"]: translation["renderGlobals"]["Whitelist"] = machine_list else: translation["renderGlobals"]["Blacklist"] = machine_list - if globals["suspendPublishJob"]: + if _globals["suspendPublishJob"]: translation["suspendPublishJob"] = "Suspended" - return translation + if _globals["startFrame"] and _globals["endFrame"]: + frame_range = "{}-{}".format(_globals["startFrame"], + _globals["endFrame"]) + translation["renderGlobals"]["Frames"] = frame_range + return translation From a680686fadca13632917de9b78f7e6f72f7e6398 Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 16:42:24 +0100 Subject: [PATCH 07/16] removed attributes, when processing check for existing node of the same name --- .../plugins/maya/create/colorbleed_renderglobals.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py index a0e7d9195a..c2e96d0103 100644 --- a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py +++ b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py @@ -1,5 +1,7 @@ from collections import OrderedDict +import maya.cmds as cmds + import avalon.maya @@ -21,19 +23,23 @@ class CreateRenderGlobals(avalon.maya.Creator): data = OrderedDict(**self.data) + startframe = cmds.playbackOptions(query=True, animationStartTime=True) + endframe = cmds.playbackOptions(query=True, animationEndTime=True) + data["suspendPublishJob"] = False data["includeDefaultRenderLayer"] = False data["priority"] = 50 data["whitelist"] = False data["machineList"] = "" + data["startFrame"] = int(startframe) + data["endFrame"] = int(endframe) self.data = data self.options = {"useSelection": False} # Force no content def process(self): - from maya import cmds - exists = cmds.ls("renderglobalsDefault") + exists = cmds.ls(self.name) assert len(exists) <= 1, ( "More than one renderglobal exists, this is a bug") From b8081925d0eb4cc051451f413770000dc02bbe50 Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 16:51:24 +0100 Subject: [PATCH 08/16] removed if statement, not needed --- colorbleed/plugins/maya/publish/collect_renderlayers.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index 1ae584406a..fbcdd59632 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -122,9 +122,8 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): if _globals["suspendPublishJob"]: translation["suspendPublishJob"] = "Suspended" - if _globals["startFrame"] and _globals["endFrame"]: - frame_range = "{}-{}".format(_globals["startFrame"], - _globals["endFrame"]) - translation["renderGlobals"]["Frames"] = frame_range + frame_range = "{}-{}".format(_globals["startFrame"], + _globals["endFrame"]) + translation["renderGlobals"]["Frames"] = frame_range return translation From 4f44fe25462c21f3410196e8aa83eaf39655d65b Mon Sep 17 00:00:00 2001 From: aardschok Date: Wed, 8 Nov 2017 18:00:42 +0100 Subject: [PATCH 09/16] added DL submission settigns UI --- colorbleed/maya/menu.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/colorbleed/maya/menu.json b/colorbleed/maya/menu.json index e29c231c79..e426020061 100644 --- a/colorbleed/maya/menu.json +++ b/colorbleed/maya/menu.json @@ -925,6 +925,25 @@ } ] }, + { + "type": "menu", + "title": "Rendering", + "items": [ + { + "type": "action", + "command": "$COLORBLEED_SCRIPTS\\pyblish\\open_deadline_submission_settings.py", + "sourcetype": "file", + "tags": [ + "settings", + "deadline", + "globals", + "render" + ], + "title": "DL Submission Settings UI", + "tooltip": "Open the Deadline Submission Settings UI" + } + ] + }, { "type": "menu", "title": "Animation", From 4ffa72ae65c635fdfb64026ad0d2660857b19ad4 Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 11:20:48 +0100 Subject: [PATCH 10/16] removed frames from renderGlobals --- colorbleed/plugins/maya/publish/collect_renderlayers.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index fbcdd59632..4e5c69c509 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -122,8 +122,4 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): if _globals["suspendPublishJob"]: translation["suspendPublishJob"] = "Suspended" - frame_range = "{}-{}".format(_globals["startFrame"], - _globals["endFrame"]) - translation["renderGlobals"]["Frames"] = frame_range - return translation From 61c0fa4983933f01fff9ffec1cdaee661f7cad5d Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 11:24:09 +0100 Subject: [PATCH 11/16] removed debug pprint --- colorbleed/plugins/maya/publish/collect_renderlayers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index 4e5c69c509..954c075d4b 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -87,8 +87,6 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): instance = context.create_instance(layername) instance.data.update(data) - pprint.pprint(instance.data) - def get_render_attribute(self, attr): return cmds.getAttr("defaultRenderGlobals.{}".format(attr)) From 143626d240bbb14ac1042e5f0f94ebfa276a726d Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 11:44:25 +0100 Subject: [PATCH 12/16] removed frame attribute from instance, add locking of machinelist attr --- colorbleed/plugins/maya/create/colorbleed_renderglobals.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py index c2e96d0103..4831419047 100644 --- a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py +++ b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py @@ -23,16 +23,11 @@ class CreateRenderGlobals(avalon.maya.Creator): data = OrderedDict(**self.data) - startframe = cmds.playbackOptions(query=True, animationStartTime=True) - endframe = cmds.playbackOptions(query=True, animationEndTime=True) - data["suspendPublishJob"] = False data["includeDefaultRenderLayer"] = False data["priority"] = 50 data["whitelist"] = False data["machineList"] = "" - data["startFrame"] = int(startframe) - data["endFrame"] = int(endframe) self.data = data self.options = {"useSelection": False} # Force no content @@ -47,3 +42,5 @@ class CreateRenderGlobals(avalon.maya.Creator): return cmds.warning("%s already exists." % exists[0]) super(CreateRenderGlobals, self).process() + + cmds.setAttr("{}.machineList".format(self.name), lock=True) From 8c15c38c9f381c6999aeb6078dafed93d0e18c56 Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 11:45:00 +0100 Subject: [PATCH 13/16] removed unused import --- colorbleed/plugins/maya/publish/collect_renderlayers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index 954c075d4b..fda32f4b37 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -1,5 +1,3 @@ -import pprint - from maya import cmds import pyblish.api From 31f7242cd9fd6e301cb64560d49ea3c285c698fb Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 14:20:39 +0100 Subject: [PATCH 14/16] refactored translator methond to parse_options --- .../maya/publish/collect_renderlayers.py | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/colorbleed/plugins/maya/publish/collect_renderlayers.py b/colorbleed/plugins/maya/publish/collect_renderlayers.py index fda32f4b37..71894d136b 100644 --- a/colorbleed/plugins/maya/publish/collect_renderlayers.py +++ b/colorbleed/plugins/maya/publish/collect_renderlayers.py @@ -79,7 +79,7 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): # Include (optional) global settings # TODO(marcus): Take into account layer overrides # Get global overrides and translate to Deadline values - overrides = self.translate_overrides(render_globals) + overrides = self.parse_options(render_globals) data.update(**overrides) instance = context.create_instance(layername) @@ -88,7 +88,7 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): def get_render_attribute(self, attr): return cmds.getAttr("defaultRenderGlobals.{}".format(attr)) - def translate_overrides(self, render_globals): + def parse_options(self, render_globals): """Get all overrides with a value, skip those without Here's the kicker. These globals override defaults in the submission @@ -102,20 +102,20 @@ class CollectMindbenderMayaRenderlayers(pyblish.api.ContextPlugin): dict: only overrides with values """ - _globals = maya.read(render_globals) + attributes = maya.read(render_globals) - machine_list = _globals["machineList"] - translation = {"renderGlobals": - {"Priority": _globals["priority"]}, - "suspendPublishJob": "Active" - } + options = {"renderGlobals": {}} - if _globals["whitelist"]: - translation["renderGlobals"]["Whitelist"] = machine_list - else: - translation["renderGlobals"]["Blacklist"] = machine_list + options['renderGlobals']['Priority'] = attributes['priority'] - if _globals["suspendPublishJob"]: - translation["suspendPublishJob"] = "Suspended" + # Machine list + machine_list = attributes["machineList"] + if machine_list: + key = "Whitelist" if attributes["whitelist"] else "Blacklist" + options['renderGlobals'][key] = machine_list - return translation + # Suspend publish job + state = "Suspended" if attributes["suspendPublishJob"] else "Active" + options["suspendPublishJob"] = state + + return options From 3e87af28505ff206c6fc7091112c3a057fd5b709 Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 14:21:29 +0100 Subject: [PATCH 15/16] removed debug print --- colorbleed/plugins/maya/publish/submit_deadline.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/colorbleed/plugins/maya/publish/submit_deadline.py b/colorbleed/plugins/maya/publish/submit_deadline.py index 8f046f1c39..a0e6610744 100644 --- a/colorbleed/plugins/maya/publish/submit_deadline.py +++ b/colorbleed/plugins/maya/publish/submit_deadline.py @@ -2,7 +2,6 @@ import os import json import shutil import getpass -import pprint from maya import cmds @@ -198,8 +197,6 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): render_globals = instance.data.get("renderGlobals", {}) payload["JobInfo"].update(render_globals) - pprint.pprint(payload["JobInfo"]) - self.preflight_check(instance) self.log.info("Submitting..") From c513e1d6d5f261b47dd31e89f5bf9e3865a7ebee Mon Sep 17 00:00:00 2001 From: aardschok Date: Thu, 9 Nov 2017 15:03:25 +0100 Subject: [PATCH 16/16] remove active from data dict --- colorbleed/plugins/maya/create/colorbleed_renderglobals.py | 1 + 1 file changed, 1 insertion(+) diff --git a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py index 4831419047..5ce04495cc 100644 --- a/colorbleed/plugins/maya/create/colorbleed_renderglobals.py +++ b/colorbleed/plugins/maya/create/colorbleed_renderglobals.py @@ -20,6 +20,7 @@ class CreateRenderGlobals(avalon.maya.Creator): # We don't need subset or asset attributes self.data.pop("subset", None) self.data.pop("asset", None) + self.data.pop("active", None) data = OrderedDict(**self.data)