16
16
17
17
# # from DIRAC
18
18
from DIRAC import S_ERROR , S_OK
19
- from DIRAC .ConfigurationSystem .Client .ConfigurationData import gConfigurationData
20
19
from DIRAC .ConfigurationSystem .Client .Helpers .Operations import Operations
21
20
from DIRAC .Core .Base .AgentModule import AgentModule
22
21
from DIRAC .Core .Utilities .DErrno import cmpError
23
22
from DIRAC .Core .Utilities .List import breakListIntoChunks
24
23
from DIRAC .Core .Utilities .Proxy import executeWithUserProxy
25
24
from DIRAC .Core .Utilities .ReturnValues import returnSingleResult
26
- from DIRAC .DataManagementSystem .Client .DataManager import DataManager
27
25
from DIRAC .RequestManagementSystem .Client .File import File
28
26
from DIRAC .RequestManagementSystem .Client .Operation import Operation
29
27
from DIRAC .RequestManagementSystem .Client .ReqClient import ReqClient
34
32
from DIRAC .Resources .Storage .StorageElement import StorageElement
35
33
from DIRAC .TransformationSystem .Client import TransformationStatus
36
34
from DIRAC .TransformationSystem .Client .TransformationClient import TransformationClient
37
- from DIRAC .WorkloadManagementSystem .Client .JobMonitoringClient import JobMonitoringClient
38
35
from DIRAC .WorkloadManagementSystem .Client .WMSClient import WMSClient
36
+ from DIRAC .WorkloadManagementSystem .DB .JobDB import JobDB
39
37
40
38
# # agent's name
41
39
AGENT_NAME = "Transformation/TransformationCleaningAgent"
@@ -45,7 +43,6 @@ class TransformationCleaningAgent(AgentModule):
45
43
"""
46
44
.. class:: TransformationCleaningAgent
47
45
48
- :param ~DIRAC.DataManagementSystem.Client.DataManager.DataManager dm: DataManager instance
49
46
:param ~TransformationClient.TransformationClient transClient: TransformationClient instance
50
47
:param ~FileCatalogClient.FileCatalogClient metadataClient: FileCatalogClient instance
51
48
@@ -125,8 +122,8 @@ def initialize(self):
125
122
self .reqClient = ReqClient ()
126
123
# # file catalog client
127
124
self .metadataClient = FileCatalogClient ()
128
- # # job monitoring client
129
- self .jobMonitoringClient = JobMonitoringClient ()
125
+ # # job DB
126
+ self .jobDB = JobDB ()
130
127
131
128
return S_OK ()
132
129
@@ -224,7 +221,8 @@ def finalize(self):
224
221
So, we should just clean from time to time.
225
222
What I added here is done only when the agent finalize, and it's quite light-ish operation anyway.
226
223
"""
227
- res = self .jobMonitoringClient .getJobGroups (None , datetime .utcnow () - timedelta (days = 365 ))
224
+
225
+ res = self .jobDB .getDistinctAttributeValues ("JobGroup" , older = datetime .utcnow () - timedelta (days = 365 ))
228
226
if not res ["OK" ]:
229
227
self .log .error ("Failed to get job groups" , res ["Message" ])
230
228
return res
@@ -268,7 +266,7 @@ def finalize(self):
268
266
269
267
# Remove JobIDs that were unknown to the TransformationSystem
270
268
jobGroupsToCheck = [str (transDict ["TransformationID" ]).zfill (8 ) for transDict in toClean + toArchive ]
271
- res = self .jobMonitoringClient .getJobs ({"JobGroup" : jobGroupsToCheck })
269
+ res = self .jobDB .getJobs ({"JobGroup" : jobGroupsToCheck })
272
270
if not res ["OK" ]:
273
271
return res
274
272
jobIDsToRemove = [int (jobID ) for jobID in res ["Value" ]]
0 commit comments