Skip to content

Commit

Permalink
Merge pull request #41 from sdss/s5cfgs
Browse files Browse the repository at this point in the history
generalize the logic for s5cfgs
  • Loading branch information
havok2063 authored Aug 14, 2023
2 parents 485e02b + cde73c2 commit 4ad60ee
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
10 changes: 7 additions & 3 deletions python/sdss_access/path/path.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class BasePath(object):

_netloc = {"dtn": "dtn.sdss.org", "sdss": "data.sdss.org", "sdss5": "data.sdss5.org",
"mirror": "data.mirror.sdss.org", "svn": "svn.sdss.org"}
_s5cfgs = ['sdsswork', 'sdss5', 'ipl1'] # list of collab-only SDSS-V releases/configs
_s5cfgs = ['sdss', 'ipl'] # SDSS-V releases start with sdss or ipl.

def __init__(self, release=None, public=False, mirror=False, verbose=False,
force_modules=None, preserve_envvars=None):
Expand Down Expand Up @@ -799,6 +799,10 @@ def _call_special_functions(self, filetype, template, **kwargs):

return template

def is_sdss5(self) -> bool:
""" Checks if the release is an SDSS-V work or ipl release """
return any(s5cfg for s5cfg in self._s5cfgs if self.release.startswith(s5cfg))

def get_netloc(self, netloc=None, sdss=None, sdss5=None, dtn=None, svn=None, mirror=None):
''' Get a net url domain
Expand Down Expand Up @@ -839,7 +843,7 @@ def get_netloc(self, netloc=None, sdss=None, sdss5=None, dtn=None, svn=None, mir
elif svn:
return '{0}{1}'.format(self._netloc["svn"], "/public" if self.public else '')
else:
return self._netloc["sdss5"] if self.release in self._s5cfgs else self._netloc["sdss"]
return self._netloc["sdss5"] if self.is_sdss5() else self._netloc["sdss"]

def set_netloc(self, netloc=None, sdss=None, sdss5=None, dtn=None, svn=None, mirror=None):
''' Set a url domain location
Expand Down Expand Up @@ -885,7 +889,7 @@ def get_remote_base(self, scheme="https", svn=None):
if self.public or scheme == "https":
remote_base = "{scheme}://{netloc}".format(scheme=scheme, netloc=netloc)
else:
user = "sdss5" if self.release in self._s5cfgs else "sdss"
user = "sdss5" if self.is_sdss5() else "sdss"
remote_base = "{scheme}://{user}@{netloc}".format(scheme=scheme, user=user, netloc=netloc)
return remote_base

Expand Down
4 changes: 3 additions & 1 deletion python/sdss_access/sync/baseaccess.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ def remote(self, username=None, password=None, inquire=None):
use_dtn = self.remote_scheme == 'rsync'
# simplifies things to have a single sdss (or sdss5) machine in
# .netrc for SDSS-IV (or SDSS-V, respectively).
sdss5 = ( self.release in self._s5cfgs )
sdss5 = self.is_sdss5()
# set sdss5 true if s5cfg (e.g. sdsswork or ipl-N) starts with
# values defined in self._s5cfgs (e.g. sdss or ipl).
self.set_netloc(sdss=not sdss5, sdss5=sdss5)
self.set_auth(username=username, password=password, inquire=inquire)
if use_dtn:
Expand Down

0 comments on commit 4ad60ee

Please sign in to comment.