Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions caveclient/datastack_lookup.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,13 @@ def handle_server_address(
):
data = read_map(filename)
if server_address is not None and datastack is not None:
if write and server_address != data.get(datastack):
old_address = data.get(datastack)
if server_address != old_address and write:
data[datastack] = server_address
wrote = write_map(data, filename)
if wrote and do_log:
logger.warning(
f"Updated datastack-to-server cache — '{server_address}' will now be used by default for datastack '{datastack}'"
f"Updated datastack-to-server cache — '{server_address}' will now be used by default for datastack '{datastack}'; previously '{old_address}'"
)
return server_address
else:
Expand Down
34 changes: 29 additions & 5 deletions caveclient/frameworkclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,6 @@ def __new__(
info_cache=info_cache,
)
else:
server_address = handle_server_address(
datastack_name, server_address, write=write_server_cache
)

return CAVEclientFull(
datastack_name=datastack_name,
server_address=server_address,
Expand All @@ -131,6 +127,7 @@ def __new__(
desired_resolution=desired_resolution,
info_cache=info_cache,
version=version,
write_server_cache=write_server_cache,
)

@staticmethod
Expand Down Expand Up @@ -448,6 +445,7 @@ def __init__(
desired_resolution=None,
info_cache=None,
version: Optional[int] = None,
write_server_cache=True,
):
"""A manager for all clients sharing common datastack and authentication information.

Expand Down Expand Up @@ -512,6 +510,15 @@ def __init__(

[get_session_defaults](../extended_api/session_config.md/#caveclient.session_config.get_session_defaults)
"""

old_server_address = server_address
server_address = handle_server_address(
datastack_name,
old_server_address,
write=False,
do_log=False,
)

super(CAVEclientFull, self).__init__(
server_address=server_address,
auth_token_file=auth_token_file,
Expand All @@ -531,9 +538,26 @@ def __init__(
self._skeleton = None
self._l2cache = None
self.desired_resolution = desired_resolution
self.local_server = self.info.local_server()
try:
self.local_server = self.info.local_server()
except HTTPError as e:
if e.response.status_code == 401 or e.response.status_code == 403:
msg = f"Access denied to datastack {datastack_name}!\nTo set up your token for server {server_address}, please run:\n\tCAVEclient.setup_token(server_address='{server_address}')\nand follow the instructions there."
print(msg)
raise e
else:
raise e
self.auth.local_server = self.local_server

# If it worked, actually try to write version.
if write_server_cache:
handle_server_address(
datastack=datastack_name,
server_address=old_server_address,
write=write_server_cache,
do_log=True,
)

av_info = self.info.get_aligned_volume_info()
self._aligned_volume_name = av_info["name"]

Expand Down
Loading