1414
1515from DIRAC import S_ERROR , S_OK
1616from DIRAC .ConfigurationSystem .Client .Helpers .Registry import getDNForUsername , getVOForGroup
17- from DIRAC .Core .DISET .MessageClient import MessageClient
1817from DIRAC .Core .DISET .RequestHandler import RequestHandler
1918from DIRAC .Core .Utilities .ClassAd .ClassAdLight import ClassAd
2019from DIRAC .Core .Utilities .DErrno import EWMSJDL , EWMSSUBM
2322from DIRAC .Core .Utilities .ObjectLoader import ObjectLoader
2423from DIRAC .FrameworkSystem .Client .ProxyManagerClient import gProxyManager
2524from DIRAC .WorkloadManagementSystem .Client import JobStatus
25+ from DIRAC .WorkloadManagementSystem .DB .StatusUtils import kill_delete_jobs
2626from DIRAC .WorkloadManagementSystem .Service .JobPolicy import (
2727 RIGHT_DELETE ,
2828 RIGHT_KILL ,
3131 RIGHT_SUBMIT ,
3232 JobPolicy ,
3333)
34- from DIRAC .WorkloadManagementSystem .DB .StatusUtils import kill_delete_jobs
3534from DIRAC .WorkloadManagementSystem .Utilities .JobModel import JobDescriptionModel
3635from DIRAC .WorkloadManagementSystem .Utilities .ParametricJob import generateParametricJobs , getParameterVectorLength
3736from DIRAC .WorkloadManagementSystem .Utilities .Utils import rescheduleJobs
@@ -45,31 +44,34 @@ class JobManagerHandlerMixin:
4544 @classmethod
4645 def initializeHandler (cls , serviceInfoDict ):
4746 """Initialization of DB objects and OptimizationMind"""
48- try :
49- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobDB" , "JobDB" )
50- if not result ["OK" ]:
51- return result
52- cls .jobDB = result ["Value" ](parentLogger = cls .log )
47+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobDB" , "JobDB" )
48+ if not result ["OK" ]:
49+ return result
50+ cls .jobDB = result ["Value" ](parentLogger = cls .log )
5351
54- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobLoggingDB" , "JobLoggingDB" )
55- if not result ["OK" ]:
56- return result
57- cls .jobLoggingDB = result ["Value" ](parentLogger = cls .log )
52+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobLoggingDB" , "JobLoggingDB" )
53+ if not result ["OK" ]:
54+ return result
55+ cls .jobLoggingDB = result ["Value" ](parentLogger = cls .log )
5856
59- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.TaskQueueDB" , "TaskQueueDB" )
60- if not result ["OK" ]:
61- return result
62- cls .taskQueueDB = result ["Value" ](parentLogger = cls .log )
57+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.TaskQueueDB" , "TaskQueueDB" )
58+ if not result ["OK" ]:
59+ return result
60+ cls .taskQueueDB = result ["Value" ](parentLogger = cls .log )
6361
64- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.PilotAgentsDB" , "PilotAgentsDB" )
62+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.PilotAgentsDB" , "PilotAgentsDB" )
63+ if not result ["OK" ]:
64+ return result
65+ cls .pilotAgentsDB = result ["Value" ](parentLogger = cls .log )
66+
67+ try :
68+ result = ObjectLoader ().loadObject ("StorageManagementSystem.DB.StorageManagementDB" , "StorageManagementDB" )
6569 if not result ["OK" ]:
6670 return result
67- cls .pilotAgentsDB = result ["Value" ](parentLogger = cls .log )
68-
69- except RuntimeError as excp :
70- return S_ERROR (f"Can't connect to DB: { excp !r} " )
71+ cls .storageManagementDB = result ["Value" ]()
72+ except RuntimeError :
73+ cls .storageManagementDB = None
7174
72- cls .msgClient = MessageClient ("WorkloadManagement/OptimizationMind" )
7375 result = cls .msgClient .connect (JobManager = True )
7476 if not result ["OK" ]:
7577 cls .log .warn ("Cannot connect to OptimizationMind!" , result ["Message" ])
@@ -464,6 +466,7 @@ def export_deleteJob(self, jobIDs, force=False):
464466 jobdb = self .jobDB ,
465467 taskqueuedb = self .taskQueueDB ,
466468 pilotagentsdb = self .pilotAgentsDB ,
469+ storagemanagementDB = self .storageManagementDB ,
467470 )
468471
469472 result ["requireProxyUpload" ] = len (ownerJobList ) > 0 and self .__checkIfProxyUploadIsRequired ()
@@ -501,6 +504,7 @@ def export_killJob(self, jobIDs, force=False):
501504 jobdb = self .jobDB ,
502505 taskqueuedb = self .taskQueueDB ,
503506 pilotagentsdb = self .pilotAgentsDB ,
507+ storagemanagementDB = self .storageManagementDB ,
504508 )
505509
506510 result ["requireProxyUpload" ] = len (ownerJobList ) > 0 and self .__checkIfProxyUploadIsRequired ()
0 commit comments