@@ -200,29 +200,29 @@ def getSiteGrid(site):
200
200
def getQueue (site , ce , queue ):
201
201
"""Get parameters of the specified queue"""
202
202
grid = site .split ("." )[0 ]
203
- result = gConfig .getOptionsDict (f"/Resources/Sites/{ grid } /{ site } /CEs/{ ce } " )
204
- if not result ["OK" ]:
203
+
204
+ # Get CE parameters
205
+ if not (result := gConfig .getOptionsDict (f"/Resources/Sites/{ grid } /{ site } /CEs/{ ce } " ))["OK" ]:
205
206
return result
206
- resultDict = result ["Value" ]
207
+ ceDict = result ["Value" ]
207
208
208
- # Get queue defaults
209
- result = gConfig .getOptionsDict (f"/Resources/Sites/{ grid } /{ site } /CEs/{ ce } /Queues/{ queue } " )
210
- if not result ["OK" ]:
209
+ tags = set (fromChar (ceDict .get ("Tag" )) or [])
210
+ requiredTags = set (fromChar (ceDict .get ("RequiredTag" )) or [])
211
+
212
+ # Get queue parameters
213
+ if not (result := gConfig .getOptionsDict (f"/Resources/Sites/{ grid } /{ site } /CEs/{ ce } /Queues/{ queue } " ))["OK" ]:
211
214
return result
212
- resultDict .update (result ["Value" ])
213
-
214
- # Handle tag lists for the queue
215
- for tagFieldName in ("Tag" , "RequiredTag" ):
216
- tags = []
217
- ceTags = resultDict .get (tagFieldName )
218
- if ceTags :
219
- tags = fromChar (ceTags )
220
- queueTags = resultDict .get (tagFieldName )
221
- if queueTags :
222
- queueTags = fromChar (queueTags )
223
- tags = list (set (tags + queueTags ))
224
- if tags :
225
- resultDict [tagFieldName ] = tags
215
+ queueDict = result ["Value" ]
216
+
217
+ # Union the sets to combine tags and required tags from CE and queue
218
+ tags = tags .union (set (fromChar (queueDict .get ("Tag" )) or []))
219
+ requiredTags = requiredTags .union (set (fromChar (queueDict .get ("RequiredTag" )) or []))
220
+
221
+ resultDict = {** ceDict , ** queueDict }
222
+ if tags :
223
+ resultDict ["Tag" ] = list (tags )
224
+ if requiredTags :
225
+ resultDict ["RequiredTag" ] = list (requiredTags )
226
226
227
227
resultDict ["Queue" ] = queue
228
228
return S_OK (resultDict )
0 commit comments