Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deadline: provide default user credential fields in studio settings #729

Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin):
"""Collects user name and password for artist if DL requires authentication

If Deadline server is marked to require authentication, it looks first for
default values in 'Studio Settings', which could be overriden by artist
dependent values from 'Site settings`.
"""
order = pyblish.api.CollectorOrder + 0.250
label = "Collect Deadline User Credentials"
Expand Down Expand Up @@ -72,12 +76,23 @@ def process(self, instance):

addons_manager = instance.context.data["ayonAddonsManager"]
deadline_addon = addons_manager["deadline"]

default_username = deadline_info["default_username"]
default_password = deadline_info["default_password"]
if default_username and default_password:
self.log.debug("Setting credentials from defaults")
instance.data["deadline"]["auth"] = (default_username,
default_password)

# TODO import 'get_addon_site_settings' when available
# in public 'ayon_api'
local_settings = get_server_api_connection().get_addon_site_settings(
deadline_addon.name, deadline_addon.version)
local_settings = local_settings["local_settings"]
for server_info in local_settings:
if deadline_server_name == server_info["server_name"]:
instance.data["deadline"]["auth"] = (server_info["username"],
server_info["password"])
if server_info["username"] and server_info["password"]:
self.log.debug("Setting credentials from Site Settings")
instance.data["deadline"]["auth"] = \
(server_info["username"], server_info["password"])
break
2 changes: 1 addition & 1 deletion server_addon/deadline/client/ayon_deadline/version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring AYON addon 'deadline' version."""
__version__ = "0.2.2"
__version__ = "0.2.3"
2 changes: 1 addition & 1 deletion server_addon/deadline/package.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "deadline"
title = "Deadline"
version = "0.2.2"
version = "0.2.3"

client_dir = "ayon_deadline"

Expand Down
19 changes: 17 additions & 2 deletions server_addon/deadline/server/settings/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,25 @@ async def defined_deadline_ws_name_enum_resolver(

class ServerItemSubmodel(BaseSettingsModel):
"""Connection info about configured DL servers."""
_layout = "compact"
_layout = "expanded"
name: str = SettingsField(title="Name")
value: str = SettingsField(title="Url")
require_authentication: bool = SettingsField(
False, title="Require authentication")
not_verify_ssl: bool = SettingsField(
False, title="Don't verify SSL")
default_username: str = SettingsField(
"",
title="Default user name",
description="Webservice username, 'Require authentication' must be "
"enabled."
)
default_password: str = SettingsField(
"",
title="Default password",
description="Webservice password, 'Require authentication' must be "
"enabled."
)


class DeadlineSettings(BaseSettingsModel):
Expand Down Expand Up @@ -77,7 +89,10 @@ def validate_unique_names(cls, value):
"name": "default",
"value": "http://127.0.0.1:8082",
"require_authentication": False,
"not_verify_ssl": False
"not_verify_ssl": False,
"default_username": "",
"default_password": ""

}
],
"deadline_server": "default",
Expand Down