Skip to content

Commit

Permalink
Merge branch 'master' into FDP
Browse files Browse the repository at this point in the history
  • Loading branch information
biozit authored May 28, 2024
2 parents 7dc99e2 + 446ca7b commit 47d49fa
Show file tree
Hide file tree
Showing 9 changed files with 176 additions and 64 deletions.
8 changes: 8 additions & 0 deletions projects/UWMadison_OConnor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Department: Pathology and Laboratory Medicine
Description: "The overarching goal of the O\u2019Connor lab is to contribute meaningfully\
\ to the global response to viral infections impacting human health."
FieldOfScience: Biological and Biomedical Sciences
FieldOfScienceID: 26.0999b
InstitutionID: 'https://osg-htc.org/iid/fq8thqsj99zh'
Organization: University of Wisconsin-Madison
PIName: David O'Connor
14 changes: 7 additions & 7 deletions src/stashcache.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@ def fetch_ligo_authz_list_if_needed():

for authz in extended_authz_list:
if authz.used_in_authfile:
self.id_to_paths[authz.get_authfile_id()].add(path)
self.id_to_str[authz.get_authfile_id()] = str(authz)
self.id_to_paths[authz.authfile_id].add(path)
self.id_to_str[authz.authfile_id] = str(authz)
if authz.used_in_grid_mapfile:
self.grid_mapfile_lines.add(authz.get_grid_mapfile_line())
self.grid_mapfile_lines.add(authz.grid_mapfile_line)

return self

Expand Down Expand Up @@ -220,10 +220,10 @@ def for_origin(cls, topology: Topology, vos_data: VOsData,

for authz in authz_list:
if authz.used_in_authfile:
self.id_to_paths[authz.get_authfile_id()].add(path)
self.id_to_str[authz.get_authfile_id()] = str(authz)
self.id_to_paths[authz.authfile_id].add(path)
self.id_to_str[authz.authfile_id] = str(authz)
if authz.used_in_grid_mapfile:
self.grid_mapfile_lines.add(authz.get_grid_mapfile_line())
self.grid_mapfile_lines.add(authz.grid_mapfile_line)
return self


Expand Down Expand Up @@ -534,7 +534,7 @@ def get_credential_generation_dict_for_namespace(ns: Namespace) -> Optional[Dict
def get_scitokens_list_for_namespace(ns: Namespace) -> List[Dict]:
"""Return the list of scitokens issuer info for the .namespaces[*].scitokens attribute in the namespaces JSON"""
return list(
filter(None, (a.get_namespaces_scitokens_block() for a in ns.authz_list))
filter(None, (a.namespaces_scitokens_block for a in ns.authz_list))
)


Expand Down
44 changes: 21 additions & 23 deletions src/webapp/data_federation.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,20 @@


class AuthMethod:
__slots__ = ("authfile_id", "grid_mapfile_line", "namespaces_scitokens_block")
is_public = False
used_in_authfile = False
used_in_scitokens_conf = False
used_in_grid_mapfile = False

def get_authfile_id(self):
return ""
def __init__(self):
self.authfile_id = ""
self.grid_mapfile_line = ""
self.namespaces_scitokens_block = None

def get_scitokens_conf_block(self, service_name: str):
return ""

def get_grid_mapfile_line(self):
return ""

def get_namespaces_scitokens_block(self):
return None

class NullAuth(AuthMethod):
pass
Expand All @@ -37,54 +35,54 @@ class PublicAuth(AuthMethod):
is_public = True
used_in_authfile = True

def __init__(self):
super().__init__()
self.authfile_id = "u *"

def __str__(self):
return "PUBLIC"

def get_authfile_id(self):
return "u *"


class DNAuth(AuthMethod):
__slots__ = ("dn", "dn_hash")
used_in_authfile = True
used_in_grid_mapfile = True

def __init__(self, dn: str):
super().__init__()
self.dn = dn
self.dn_hash = generate_dn_hash(dn)
self.authfile_id = f"u {self.dn_hash}"
self.grid_mapfile_line = f'"{self.dn}" {self.dn_hash}'

def __str__(self):
return "DN: " + self.dn

def get_dn_hash(self):
return generate_dn_hash(self.dn)

def get_authfile_id(self):
return f"u {self.get_dn_hash()}"

def get_grid_mapfile_line(self):
return f'"{self.dn}" {self.get_dn_hash()}'


class FQANAuth(AuthMethod):
__slots__ = ("fqan",)
used_in_authfile = True

def __init__(self, fqan: str):
super().__init__()
self.fqan = fqan
self.authfile_id = f"g {self.fqan}"

def __str__(self):
return "FQAN: " + self.fqan

def get_authfile_id(self):
return f"g {self.fqan}"


class SciTokenAuth(AuthMethod):
__slots__ = ("issuer", "base_path", "restricted_path", "map_subject")
used_in_scitokens_conf = True

def __init__(self, issuer: str, base_path: str, restricted_path: Optional[str], map_subject: bool):
super().__init__()
self.issuer = issuer
self.base_path = base_path
self.restricted_path = restricted_path
self.map_subject = map_subject
self.namespaces_scitokens_block = self._get_namespaces_scitokens_block()

def __str__(self):
return f"SciToken: issuer={self.issuer} base_path={self.base_path} restricted_path={self.restricted_path} " \
Expand All @@ -103,7 +101,7 @@ def get_scitokens_conf_block(self, service_name: str):

return block

def get_namespaces_scitokens_block(self):
def _get_namespaces_scitokens_block(self):
base_path = re.split(r"\s*,\s*", self.base_path)
restricted_path = re.split(r"\s*,\s*", self.restricted_path) if self.restricted_path else []
return {
Expand Down
2 changes: 2 additions & 0 deletions src/webapp/x509.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import functools
import hashlib
import re

Expand All @@ -17,6 +18,7 @@
}


@functools.lru_cache(maxsize=2048)
def generate_dn_hash(dn: str) -> str:
"""
Given a DN one-liner as commonly encoded in the grid world
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ Resources:
XRootD cache server:
Description: ESnet Amsterdam Cache
AllowedVOs:
- LIGO
- ANY
2 changes: 1 addition & 1 deletion topology/Energy Sciences Network/London/ESnetLondon.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ Resources:
XRootD cache server:
Description: Internet2 London Cache
AllowedVOs:
- LIGO
- ANY
11 changes: 11 additions & 0 deletions topology/Purdue University/Purdue CMS/Purdue_downtime.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2131,3 +2131,14 @@
Services:
- net.perfSONAR.Latency
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819162937
Description: Power transfer for datacenter circuits
Severity: Severe
StartTime: May 30, 2024 11:00 +0000
EndTime: May 30, 2024 21:00 +0000
CreatedTime: May 28, 2024 17:11 +0000
ResourceName: Purdue-EOS-SE
Services:
- EOS
# ---------------------------------------------------------
99 changes: 99 additions & 0 deletions topology/University of Chicago/MWT2 ATLAS UC/MWT2_downtime.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1574,3 +1574,102 @@
Services:
- XRootD component
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819285909
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:36 +0000
ResourceName: MWT2_CE_IU
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286180
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:36 +0000
ResourceName: MWT2_CE_IU2
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286287
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:37 +0000
ResourceName: MWT2_CE_UC
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286377
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:37 +0000
ResourceName: MWT2_CE_UC2
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286612
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:37 +0000
ResourceName: MWT2_CE_UIUC
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286698
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:37 +0000
ResourceName: MWT2_CE_UIUC2
Services:
- CE
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286864
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:38 +0000
ResourceName: MWT2_UC_SE
Services:
- SRMv2
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819286951
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:38 +0000
ResourceName: MWT2_UC_WebDAV
Services:
- WebDAV
# ---------------------------------------------------------
- Class: SCHEDULED
ID: 1819287109
Description: EL9 Upgrades
Severity: Outage
StartTime: Jun 10, 2024 14:00 +0000
EndTime: Jun 10, 2024 22:00 +0000
CreatedTime: May 28, 2024 20:38 +0000
ResourceName: MWT2_UC_XRootD_door
Services:
- XRootD component
# ---------------------------------------------------------
58 changes: 26 additions & 32 deletions topology/University of Michigan/Michigan HORUS/MI-HORUS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,48 +27,42 @@ Resources:
# If you cannot find the contact above XML, please register the contact:
# https://opensciencegrid.org/docs/common/registration/#registering-contacts
ContactLists:
# Administrative Contacts are persons or groups of people (i.e.,
# mailing lists) that are directly responsible for the
# maintenance of the resource
Administrative Contact:
Primary:
Name: Jeffrey Michael Dost
ID: 3a8eb6436a8b78ca50f7e93bb2a4d1f0141212ba
# Secondary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>
# Tertiary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>

# Security Contact are persons or groups of people (i.e.,
# mailing lists) that are responsible for handling security
# issues related to the resource
Security Contact:
Primary:
Name: Jeffrey Michael Dost
ID: 3a8eb6436a8b78ca50f7e93bb2a4d1f0141212ba
# Secondary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>
# Tertiary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>

# Site contact (optional) are persons or groups of people (i.e.,
# mailing lists) that are generally responsible for a site's
# relationship with the OSG (e.g., principal investigators,
# local administrator contact for OSG Hosted CEs)
# Site Contact:
# Primary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>
# Secondary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>
# Tertiary:
# Name: <FIRSTNAME> <LASTNAME>
# ID: <EMAIL HASH>
Local Operational Contact:
Primary:
Name: Muhammad Akhdhor
ID: OSG1000654
Secondary:
Name: Michael Thompson
ID: f84214412f7b3dbf848808c4ba30d179c5743766
Tertiary:
Name: Andrew Keen
ID: OSG1000660

Local Security Contact:
Primary:
Name: HORUS Security Mailing List
ID: d7ec710e472267ffcc69de4070491f48582ccc2f

Local Executive Contact:
Primary:
Name: Shawn McKee
ID: a833f94ad3840fe779702409c6b778d79aaed76f
Secondary:
Name: Robert Eugene Stovall
ID: OSG1000685
Tertiary:
Name: Robert Michael Thompson
ID: OSG1000697

# FQDN is the fully qualified domain name of the host running this resource
FQDN: mi-horus-ce1.svc.opensciencegrid.org
Expand Down

0 comments on commit 47d49fa

Please sign in to comment.