Skip to content

Commit

Permalink
Switch to regional server support for Perforce
Browse files Browse the repository at this point in the history
  • Loading branch information
swc-jesse committed Mar 4, 2022
1 parent 5c2bc29 commit 5d9125c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
2 changes: 1 addition & 1 deletion info.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ configuration:
description: "The name of the project entity field that contains the perforce server to
connect to. The value in the field should be of the form: 'protocol:server:port'."
allows_empty: True
default_value: sg_p4_server
default_value: sg_perforce_server

server_aliases:
type: list
Expand Down
8 changes: 6 additions & 2 deletions python/connection/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -769,15 +769,19 @@ def _login_required(self, min_timeout=300):
return True

def _get_p4_server(self):
user = sgtk.util.get_current_user(self._fw.sgtk)
sg_user = self._fw.shotgun.find_one('HumanUser', [['id', 'is', user['id']]], ["sg_region"])
server_field = self._fw.get_setting("server_field")
sg_project = self._fw.shotgun.find_one('Project', [['id', 'is', self._fw.context.project['id']]], [server_field])
server = sg_project.get(server_field)
region = sg_user.get("sg_region")
sg_server = self._fw.shotgun.find_one('CustomNonProjectEntity02', [['id', 'is', server['id']]], [region])

if not server:
if not sg_server:
self._fw.log_error("No server was configured for this project! Enter the p4 server in the project field '{}'".format(server_field))
return None

return str(sg_project.get(server_field))
return str(sg_server.get(region))


def connect(allow_ui=True, user=None, password=None, workspace=None, progress=None):
Expand Down
8 changes: 6 additions & 2 deletions python/sync/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,19 @@ def _sync_with_dlg(self):


def _get_p4_server(self):
user = sgtk.util.get_current_user(self._fw.sgtk)
sg_user = self._fw.shotgun.find_one('HumanUser', [['id', 'is', user['id']]], ["sg_region"])
server_field = self._fw.get_setting("server_field")
sg_project = self._fw.shotgun.find_one('Project', [['id', 'is', self._fw.context.project['id']]], [server_field])
server = sg_project.get(server_field)
region = sg_user.get("sg_region")
sg_server = self._fw.shotgun.find_one('CustomNonProjectEntity02', [['id', 'is', server['id']]], [region])

if not server:
if not sg_server:
self._fw.log_error("No server was configured for this project! Enter the p4 server in the project field '{}'".format(server_field))
return None

return str(sg_project.get(server_field))
return str(sg_server.get(region))


def sync_with_dialog(app, entities_to_sync, specific_files=False):
Expand Down

0 comments on commit 5d9125c

Please sign in to comment.