Skip to content

Commit c4f845f

Browse files
authored
Merge pull request #5932 from DIRACGridBot/cherry-pick-2-795b4587c-integration
[sweep:integration] Add SourceSE filter to RMS ReplicateAndRegister
2 parents c165c81 + 756b98c commit c4f845f

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/DIRAC/DataManagementSystem/Agent/RequestOperations/ReplicateAndRegister.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
from DIRAC.MonitoringSystem.Client.MonitoringReporter import MonitoringReporter
4848

4949

50-
def filterReplicas(opFile, logger=None, dataManager=None):
50+
def filterReplicas(opFile, logger=None, dataManager=None, opSources=None):
5151
"""filter out banned/invalid source SEs"""
5252

5353
if logger is None:
@@ -71,6 +71,11 @@ def filterReplicas(opFile, logger=None, dataManager=None):
7171
return S_ERROR(failed)
7272

7373
replicas = replicas["Successful"].get(opFile.LFN, {})
74+
75+
# If user set sourceSEs, only consider those replicas
76+
if opSources:
77+
replicas = {x: y for (x, y) in replicas.items() if x in opSources}
78+
7479
noReplicas = False
7580
if not replicas:
7681
allReplicas = dataManager.getReplicas(opFile.LFN, getUrl=False)
@@ -286,7 +291,7 @@ def _addMetadataToFiles(self, toSchedule):
286291

287292
def _filterReplicas(self, opFile):
288293
"""filter out banned/invalid source SEs"""
289-
return filterReplicas(opFile, logger=self.log, dataManager=self.dm)
294+
return filterReplicas(opFile, logger=self.log, dataManager=self.dm, opSources=self.operation.sourceSEList)
290295

291296
def _checkExistingFTS3Operations(self):
292297
"""

src/DIRAC/DataManagementSystem/Agent/RequestOperations/test/Test_CheckMigration.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def checkRequestAndOp(listOfLFNs):
4141
req.RequestName = "MyRequest"
4242
op = Operation()
4343
op.Type = "CheckMigration"
44+
op.TargetSE = "Foo-SE"
4445
for index, lfn in enumerate(listOfLFNs):
4546
oFile = File()
4647
oFile.LFN = lfn
@@ -89,7 +90,7 @@ def test_run_NotMigrated(checkMigration, seMock, multiRetVal):
8990
seClassMock.getFileMetadata = MagicMock(side_effect=functools.partial(multiRetVal, Migrated=0))
9091
checkMigration._run()
9192
assert len(checkMigration.waitingFiles) == N_FILES
92-
seModMock.assert_called_with("")
93+
seModMock.assert_called_with("Foo-SE")
9394
for opFile in checkMigration.operation:
9495
assert opFile.Status == "Waiting"
9596

src/DIRAC/RequestManagementSystem/Client/Operation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,12 @@ def __len__(self):
210210
@property
211211
def sourceSEList(self):
212212
"""helper property returning source SEs as a list"""
213-
return self.SourceSE.split(",") if self.SourceSE else [""]
213+
return self.SourceSE.split(",") if self.SourceSE else []
214214

215215
@property
216216
def targetSEList(self):
217217
"""helper property returning target SEs as a list"""
218-
return self.TargetSE.split(",") if self.TargetSE else [""]
218+
return self.TargetSE.split(",") if self.TargetSE else []
219219

220220
@property
221221
def Arguments(self):

0 commit comments

Comments
 (0)