@@ -1449,14 +1449,15 @@ def deleteJob(self, jobID):
1449
1449
return ret
1450
1450
jobIDs = ret ["Value" ]
1451
1451
1452
- jobIDsToDelete = []
1453
- for jobID in jobIDs :
1454
- can_kill = JobStatus .checkJobStateTransition (jobID , JobStatus .KILLED )["OK" ]
1455
- can_del = JobStatus .checkJobStateTransition (jobID , JobStatus .DELETED )["OK" ]
1456
- if can_kill or can_del :
1457
- jobIDsToDelete .append (jobID )
1452
+ # Remove any job IDs that can't change to the Killed or Deleted states
1453
+ filteredJobs = set ()
1454
+ for filterState in (JobStatus .KILLED , JobStatus .DELETED ):
1455
+ filterRes = JobStatus .filterJobStateTransition (jobIDs , filterState )
1456
+ if not filterRes ["OK" ]:
1457
+ return filterRes
1458
+ filteredJobs .update (filterRes ["Value" ])
1458
1459
1459
- return WMSClient (useCertificates = self .useCertificates ).deleteJob (jobIDsToDelete )
1460
+ return WMSClient (useCertificates = self .useCertificates ).deleteJob (list ( filteredJobs ) )
1460
1461
1461
1462
#############################################################################
1462
1463
@@ -1481,11 +1482,11 @@ def rescheduleJob(self, jobID):
1481
1482
return ret
1482
1483
jobIDs = ret ["Value" ]
1483
1484
1484
- jobIDsToReschedule = []
1485
- for jobID in jobIDs :
1486
- res = JobStatus . checkJobStateTransition ( jobID , JobStatus . RESCHEDULED )
1487
- if res [ "OK" ]:
1488
- jobIDsToReschedule . append ( jobID )
1485
+ # Remove any job IDs that can't change to the rescheduled state
1486
+ filterRes = JobStatus . filterJobStateTransition ( jobIDs , JobStatus . RESCHEDULED )
1487
+ if not filterRes [ "OK" ]:
1488
+ return filterRes
1489
+ jobIDsToReschedule = filterRes [ "Value" ]
1489
1490
1490
1491
return WMSClient (useCertificates = self .useCertificates ).rescheduleJob (jobIDsToReschedule )
1491
1492
@@ -1508,14 +1509,15 @@ def killJob(self, jobID):
1508
1509
return ret
1509
1510
jobIDs = ret ["Value" ]
1510
1511
1511
- jobIDsToKill = []
1512
- for jobID in jobIDs :
1513
- can_kill = JobStatus .checkJobStateTransition (jobID , JobStatus .KILLED )["OK" ]
1514
- can_del = JobStatus .checkJobStateTransition (jobID , JobStatus .DELETED )["OK" ]
1515
- if can_kill or can_del :
1516
- jobIDsToKill .append (jobID )
1512
+ # Remove any job IDs that can't change to the Killed or Deleted states
1513
+ filteredJobs = set ()
1514
+ for filterState in (JobStatus .KILLED , JobStatus .DELETED ):
1515
+ filterRes = JobStatus .filterJobStateTransition (jobIDs , filterState )
1516
+ if not filterRes ["OK" ]:
1517
+ return filterRes
1518
+ filteredJobs .update (filterRes ["Value" ])
1517
1519
1518
- return WMSClient (useCertificates = self .useCertificates ).killJob (jobIDsToKill )
1520
+ return WMSClient (useCertificates = self .useCertificates ).killJob (list ( filteredJobs ) )
1519
1521
1520
1522
#############################################################################
1521
1523
0 commit comments