2323from DIRAC .Core .Utilities .ObjectLoader import ObjectLoader
2424from DIRAC .FrameworkSystem .Client .ProxyManagerClient import gProxyManager
2525from DIRAC .WorkloadManagementSystem .Client import JobStatus
26+ from DIRAC .WorkloadManagementSystem .DB .StatusUtils import kill_delete_jobs
2627from DIRAC .WorkloadManagementSystem .Service .JobPolicy import (
2728 RIGHT_DELETE ,
2829 RIGHT_KILL ,
3132 RIGHT_SUBMIT ,
3233 JobPolicy ,
3334)
34- from DIRAC .WorkloadManagementSystem .DB .StatusUtils import kill_delete_jobs
3535from DIRAC .WorkloadManagementSystem .Utilities .JobModel import JobDescriptionModel
3636from DIRAC .WorkloadManagementSystem .Utilities .ParametricJob import generateParametricJobs , getParameterVectorLength
3737from DIRAC .WorkloadManagementSystem .Utilities .Utils import rescheduleJobs
@@ -45,29 +45,33 @@ class JobManagerHandlerMixin:
4545 @classmethod
4646 def initializeHandler (cls , serviceInfoDict ):
4747 """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 )
48+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobDB" , "JobDB" )
49+ if not result ["OK" ]:
50+ return result
51+ cls .jobDB = result ["Value" ](parentLogger = cls .log )
5352
54- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobLoggingDB" , "JobLoggingDB" )
55- if not result ["OK" ]:
56- return result
57- cls .jobLoggingDB = result ["Value" ](parentLogger = cls .log )
53+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.JobLoggingDB" , "JobLoggingDB" )
54+ if not result ["OK" ]:
55+ return result
56+ cls .jobLoggingDB = result ["Value" ](parentLogger = cls .log )
5857
59- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.TaskQueueDB" , "TaskQueueDB" )
60- if not result ["OK" ]:
61- return result
62- cls .taskQueueDB = result ["Value" ](parentLogger = cls .log )
58+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.TaskQueueDB" , "TaskQueueDB" )
59+ if not result ["OK" ]:
60+ return result
61+ cls .taskQueueDB = result ["Value" ](parentLogger = cls .log )
6362
64- result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.PilotAgentsDB" , "PilotAgentsDB" )
63+ result = ObjectLoader ().loadObject ("WorkloadManagementSystem.DB.PilotAgentsDB" , "PilotAgentsDB" )
64+ if not result ["OK" ]:
65+ return result
66+ cls .pilotAgentsDB = result ["Value" ](parentLogger = cls .log )
67+
68+ try :
69+ result = ObjectLoader ().loadObject ("StorageManagementSystem.DB.StorageManagementDB" , "StorageManagementDB" )
6570 if not result ["OK" ]:
6671 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} " )
72+ cls .storageManagementDB = result ["Value" ](parentLogger = cls .log )
73+ except RuntimeError :
74+ cls .storageManagementDB = None
7175
7276 cls .msgClient = MessageClient ("WorkloadManagement/OptimizationMind" )
7377 result = cls .msgClient .connect (JobManager = True )
@@ -464,6 +468,7 @@ def export_deleteJob(self, jobIDs, force=False):
464468 jobdb = self .jobDB ,
465469 taskqueuedb = self .taskQueueDB ,
466470 pilotagentsdb = self .pilotAgentsDB ,
471+ storagemanagementdb = self .storageManagementDB ,
467472 )
468473
469474 result ["requireProxyUpload" ] = len (ownerJobList ) > 0 and self .__checkIfProxyUploadIsRequired ()
@@ -501,6 +506,7 @@ def export_killJob(self, jobIDs, force=False):
501506 jobdb = self .jobDB ,
502507 taskqueuedb = self .taskQueueDB ,
503508 pilotagentsdb = self .pilotAgentsDB ,
509+ storagemanagementdb = self .storageManagementDB ,
504510 )
505511
506512 result ["requireProxyUpload" ] = len (ownerJobList ) > 0 and self .__checkIfProxyUploadIsRequired ()
0 commit comments