Skip to content

Commit

Permalink
sweep: DIRACGrid#7859 RSS fix: some protocols or types are not in GOC
Browse files Browse the repository at this point in the history
  • Loading branch information
fstagni authored and web-flow committed Nov 4, 2024
1 parent fb83c8b commit c96d06a
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions src/DIRAC/ResourceStatusSystem/Command/DowntimeCommand.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,17 @@ def _prepareCommand(self):

# Determine the SE type and update gOCDBServiceType accordingly
se_type = se.options.get("SEType", "")
diskOrTape = ""
if re.search(r"D[1-9]", se_type):
gOCDBServiceType = diracToGOC_conversion[f"disk_{se_protocols[0]}"]
diskOrTape = "disk"
elif re.search(r"T[1-9]", se_type):
gOCDBServiceType = diracToGOC_conversion[f"tape_{se_protocols[0]}"]
diskOrTape = "tape"
# iterate on the protocols and get the first one
for protocol in se_protocols:
dirac_protocol = f"{diskOrTape}_{protocol}"
if dirac_protocol in diracToGOC_conversion:
gOCDBServiceType = diracToGOC_conversion[dirac_protocol]
break

# Get the SE hosts and return an error if none are found
res = getSEHosts(elementName)
Expand All @@ -174,8 +181,10 @@ def _prepareCommand(self):
elementName = seHosts # in this case it will return a list, because there might be more than one host only

elif elementType in ["FTS", "FTS3"]:
gOCDBServiceType = diracToGOC_conversion[elementType]
# WARNING: this method presupposes that the server is an FTS3 type
try:
gOCDBServiceType = diracToGOC_conversion[elementType]
except KeyError: # not a GOC type (? how can this happen ?)
gOCDBServiceType = None
gocSite = getGOCFTSName(elementName)
if not gocSite["OK"]:
self.log.warn("FTS not in Resources/FTSEndpoints/FTS3 ?", elementName)
Expand All @@ -190,7 +199,10 @@ def _prepareCommand(self):
ceType = gConfig.getValue(
cfgPath("Resources", "Sites", siteName.split(".")[0], siteName, "CEs", elementName, "CEType")
)
gOCDBServiceType = diracToGOC_conversion[ceType]
try:
gOCDBServiceType = diracToGOC_conversion[ceType]
except KeyError: # not a GOC type (e.g. SSH CE)
gOCDBServiceType = None

return S_OK((element, elementName, hours, gOCDBServiceType))

Expand Down

0 comments on commit c96d06a

Please sign in to comment.