From 20d47e54ca678a6046582ac6544fcb670a53f86b Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 19 Mar 2024 14:54:24 +0100 Subject: [PATCH] AY-745 - updated validator for DL connection --- .../help/validate_deadline_connection.xml | 17 +++++++++++++++++ .../publish/validate_deadline_connection.py | 18 ++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml diff --git a/client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml b/client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml new file mode 100644 index 0000000000..cafcdb8928 --- /dev/null +++ b/client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml @@ -0,0 +1,17 @@ + + + + Deadline Authentication + +## Deadline authenticatin is required + +This project has set in Settings that Deadline requires authentication. + +### How to repair? + +Please go to Ayon Server Site settings and provide your Deadline username and + most likely password too. (Deadline could run in configuration that empty passwords are allowed. Ask your administrator for details.) + + + + \ No newline at end of file diff --git a/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py b/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py index a7b300beff..b1503fb95b 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py +++ b/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py @@ -1,5 +1,7 @@ import pyblish.api +from ayon_core.pipeline import PublishXmlValidationError + from openpype_modules.deadline.abstract_submit_deadline import requests_get @@ -15,8 +17,9 @@ class ValidateDeadlineConnection(pyblish.api.InstancePlugin): responses = {} def process(self, instance): + context = instance.context # get default deadline webservice url from deadline module - deadline_url = instance.context.data["defaultDeadline"] + deadline_url = context.data["defaultDeadline"] # if custom one is set in instance, use that if instance.data.get("deadlineUrl"): deadline_url = instance.data.get("deadlineUrl") @@ -25,8 +28,19 @@ class ValidateDeadlineConnection(pyblish.api.InstancePlugin): ) assert deadline_url, "Requires Deadline Webservice URL" + kwargs = {} + if context.data["deadline_require_authentication"]: + kwargs["auth"] = context.data["deadline_auth"] + + if not context.data["deadline_auth"]: + raise PublishXmlValidationError( + self, + "Deadline requires authentication. " + "At least username is required to be set in " + "Site Settings.") + if deadline_url not in self.responses: - self.responses[deadline_url] = requests_get(deadline_url) + self.responses[deadline_url] = requests_get(deadline_url, **kwargs) response = self.responses[deadline_url] assert response.ok, "Response must be ok"