From b0ab09201a61167c8193cf36270cfd622f3e1868 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 20 Nov 2023 16:48:03 +0800 Subject: [PATCH 1/5] add optional validator to check verbosity level in Arnold and plugin info for arnold verbose --- .../validate_arnold_verbosity_level.py | 42 +++++++++++++++++++ .../plugins/publish/submit_maya_deadline.py | 12 +++++- openpype/pipeline/publish/lib.py | 2 +- 3 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py diff --git a/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py b/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py new file mode 100644 index 0000000000..b4a08e6bb4 --- /dev/null +++ b/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py @@ -0,0 +1,42 @@ +import pyblish.api +from openpype.pipeline import ( + PublishValidationError, + OptionalPyblishPluginMixin +) +from maya import cmds +from openpype.pipeline.publish import RepairAction + + +class ValidateArnoldVerbosityLevel(pyblish.api.InstancePlugin, + OptionalPyblishPluginMixin): + """Validate Arnold Verbosity Level For Deadline Submission""" + + order = pyblish.api.ValidatorOrder + families = ["renderlayer"] + hosts = ["maya"] + label = "Validate Arnold Verbosity Level" + actions = [RepairAction] + optional = True + + def process(self, instance): + if not self.is_active(instance.data): + return + if instance.data["renderer"] != "arnold": + self.log.debug("The renderer for deadline submission is not Arnold." + " Skipping Validate Arnold Verbosity Level.") + return + current_verbosity_level = cmds.getAttr( + "defaultArnoldRenderOptions.log_verbosity") + + if not current_verbosity_level >= 3: + report = ( + "Arnold verbosity level has invalid value(s).\n\n" + "It must be always greater than 3.\n\n" + "You can use repair action to set the correct value\n" + ) + raise PublishValidationError( + report, title="Invalid Value(s) for Arnold Verbosity Level") + + @classmethod + def repair(cls, instance): + return cmds.setAttr("defaultArnoldRenderOptions.log_verbosity", 3) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index 7d532923ff..cdaf329ef2 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -97,6 +97,7 @@ class VRayPluginInfo(object): @attr.s class ArnoldPluginInfo(object): ArnoldFile = attr.ib(default=None) + ArnoldVerbose = attr.ib(default=2) class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, @@ -281,6 +282,10 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, plugin_payload = attr.asdict(plugin_info) + if instance.data["renderer"] == "arnold": + plugin_payload["ArnoldVerbose"] = cmds.getAttr( + "defaultArnoldRenderOptions.log_verbosity") + # Patching with pluginInfo from settings for key, value in self.pluginInfo.items(): plugin_payload[key] = value @@ -648,7 +653,7 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, return job_info, attr.asdict(plugin_info) def _get_arnold_render_payload(self, data): - + from maya import cmds # Job Info job_info = copy.deepcopy(self.job_info) job_info.Name = self._job_info_label("Render") @@ -658,9 +663,12 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, # Plugin Info ass_file, _ = os.path.splitext(data["output_filename_0"]) ass_filepath = ass_file + ".ass" + current_verbosity_level = cmds.getAttr( + "defaultArnoldRenderOptions.log_verbosity") plugin_info = ArnoldPluginInfo( - ArnoldFile=ass_filepath + ArnoldFile=ass_filepath, + ArnoldVerbose=current_verbosity_level ) return job_info, attr.asdict(plugin_info) diff --git a/openpype/pipeline/publish/lib.py b/openpype/pipeline/publish/lib.py index 4ea2f932f1..87ca3323cb 100644 --- a/openpype/pipeline/publish/lib.py +++ b/openpype/pipeline/publish/lib.py @@ -74,7 +74,7 @@ def get_template_name_profiles( project_settings ["global"] ["publish"] - ["IntegrateAssetNew"] + ["IntegrateHeroVersion"] ["template_name_profiles"] ) if legacy_profiles: From be7c5a99dc783be712ae69affc400d630275434b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 20 Nov 2023 16:56:28 +0800 Subject: [PATCH 2/5] restore unnecessary code change --- openpype/pipeline/publish/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/pipeline/publish/lib.py b/openpype/pipeline/publish/lib.py index 87ca3323cb..4ea2f932f1 100644 --- a/openpype/pipeline/publish/lib.py +++ b/openpype/pipeline/publish/lib.py @@ -74,7 +74,7 @@ def get_template_name_profiles( project_settings ["global"] ["publish"] - ["IntegrateHeroVersion"] + ["IntegrateAssetNew"] ["template_name_profiles"] ) if legacy_profiles: From 1ad7c1bca8b1dc6c3fed56a55febba7fd004fa12 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 20 Nov 2023 16:58:13 +0800 Subject: [PATCH 3/5] hound --- .../maya/plugins/publish/validate_arnold_verbosity_level.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py b/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py index b4a08e6bb4..67e48cd63b 100644 --- a/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py +++ b/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py @@ -22,8 +22,9 @@ class ValidateArnoldVerbosityLevel(pyblish.api.InstancePlugin, if not self.is_active(instance.data): return if instance.data["renderer"] != "arnold": - self.log.debug("The renderer for deadline submission is not Arnold." - " Skipping Validate Arnold Verbosity Level.") + self.log.debug( + "The renderer for deadline submission is not Arnold.\n\n" + " Skipping Validate Arnold Verbosity Level.") return current_verbosity_level = cmds.getAttr( "defaultArnoldRenderOptions.log_verbosity") From cd4f603b4e61a7a9f54a1e5420430d14e3307443 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 21 Nov 2023 13:46:13 +0800 Subject: [PATCH 4/5] supports the settings of additional plugin info and job info --- .../deadline/plugins/publish/submit_maya_deadline.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index cdaf329ef2..86de5c620e 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -133,6 +133,8 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, cls.group = settings.get("group", cls.group) cls.strict_error_checking = settings.get("strict_error_checking", cls.strict_error_checking) + cls.jobInfo = settings.get("jobInfo", cls.jobInfo) + cls.pluginInfo = settings.get("pluginInfo", cls.pluginInfo) def get_job_info(self): job_info = DeadlineJobInfo(Plugin="MayaBatch") @@ -282,10 +284,6 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, plugin_payload = attr.asdict(plugin_info) - if instance.data["renderer"] == "arnold": - plugin_payload["ArnoldVerbose"] = cmds.getAttr( - "defaultArnoldRenderOptions.log_verbosity") - # Patching with pluginInfo from settings for key, value in self.pluginInfo.items(): plugin_payload[key] = value From 460433cd136f50421fce685272d7e711970c227c Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 21 Nov 2023 13:47:24 +0800 Subject: [PATCH 5/5] remove the validator for arnold verbosity level --- .../validate_arnold_verbosity_level.py | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py diff --git a/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py b/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py deleted file mode 100644 index 67e48cd63b..0000000000 --- a/openpype/hosts/maya/plugins/publish/validate_arnold_verbosity_level.py +++ /dev/null @@ -1,43 +0,0 @@ -import pyblish.api -from openpype.pipeline import ( - PublishValidationError, - OptionalPyblishPluginMixin -) -from maya import cmds -from openpype.pipeline.publish import RepairAction - - -class ValidateArnoldVerbosityLevel(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): - """Validate Arnold Verbosity Level For Deadline Submission""" - - order = pyblish.api.ValidatorOrder - families = ["renderlayer"] - hosts = ["maya"] - label = "Validate Arnold Verbosity Level" - actions = [RepairAction] - optional = True - - def process(self, instance): - if not self.is_active(instance.data): - return - if instance.data["renderer"] != "arnold": - self.log.debug( - "The renderer for deadline submission is not Arnold.\n\n" - " Skipping Validate Arnold Verbosity Level.") - return - current_verbosity_level = cmds.getAttr( - "defaultArnoldRenderOptions.log_verbosity") - - if not current_verbosity_level >= 3: - report = ( - "Arnold verbosity level has invalid value(s).\n\n" - "It must be always greater than 3.\n\n" - "You can use repair action to set the correct value\n" - ) - raise PublishValidationError( - report, title="Invalid Value(s) for Arnold Verbosity Level") - - @classmethod - def repair(cls, instance): - return cmds.setAttr("defaultArnoldRenderOptions.log_verbosity", 3)