diff --git a/src/DIRAC/TransformationSystem/Agent/InputDataAgent.py b/src/DIRAC/TransformationSystem/Agent/InputDataAgent.py index f767cebf61c..9267da1b6a1 100644 --- a/src/DIRAC/TransformationSystem/Agent/InputDataAgent.py +++ b/src/DIRAC/TransformationSystem/Agent/InputDataAgent.py @@ -46,6 +46,7 @@ def __init__(self, *args, **kwargs): self.transClient = TransformationClient() self.metadataClient = FileCatalogClient() self.transformationTypes = None + self.multiVO = False ############################################################################# def initialize(self): @@ -64,6 +65,8 @@ def initialize(self): self.transformationTypes.remove(extendable) # This is because the Extendables do not use this Agent (have no Input data query) + self.multiVO = self.am_getOption("MultiVO", self.multiVO) + return S_OK() ############################################################################## @@ -116,7 +119,13 @@ def execute(self): # Perform the query to the metadata catalog self.log.verbose("Using input data query for transformation", "%d: %s" % (transID, str(inputDataQuery))) start = time.time() - result = self.metadataClient.findFilesByMetadata(inputDataQuery) + mdc = self.metadataClient + if self.multiVO: + ownerDN = transDict["AuthorDN"] + ownerGroup = transDict["AuthorGroup"] + self.log.debug(f"Querying file catalog as {ownerDN}, {ownerGroup}") + mdc = FileCatalogClient(useCertificates=True, delegatedDN=ownerDN, delegatedGroup=ownerGroup) + result = mdc.findFilesByMetadata(inputDataQuery) rtime = time.time() - start self.log.verbose("Metadata catalog query time", f": {rtime:.2f} seconds.") if not result["OK"]: diff --git a/src/DIRAC/TransformationSystem/ConfigTemplate.cfg b/src/DIRAC/TransformationSystem/ConfigTemplate.cfg index f3dbbce2d72..21e21638564 100644 --- a/src/DIRAC/TransformationSystem/ConfigTemplate.cfg +++ b/src/DIRAC/TransformationSystem/ConfigTemplate.cfg @@ -25,6 +25,8 @@ Agents PollingTime = 120 FullUpdatePeriod = 86400 RefreshOnly = False + # If True, query the FileCatalog as the owner of the transformation, needed for MultiVO*MetaData filecatalogs + MultiVO = False } ##END ##BEGIN MCExtensionAgent