DIRAC 9.0.0a69__py3-none-any.whl → 9.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import time
2
2
 
3
3
  from DIRAC.ConfigurationSystem.Client.ConfigurationData import gConfigurationData
4
- from DIRAC.ConfigurationSystem.Client.PathFinder import getGatewayURLs
4
+ from DIRAC.ConfigurationSystem.Client.PathFinder import getGatewayURLs, groupURLsByPriority
5
5
  from DIRAC.Core.Utilities import List
6
6
  from DIRAC.Core.Utilities.EventDispatcher import gEventDispatcher
7
7
  from DIRAC.Core.Utilities.ReturnValues import S_ERROR, S_OK
@@ -138,7 +138,9 @@ class RefresherBase:
138
138
  if not initialServerList:
139
139
  return S_OK()
140
140
 
141
- randomServerList = List.randomize(initialServerList)
141
+ randomServerList = []
142
+ for urlGroup in groupURLsByPriority(initialServerList):
143
+ randomServerList.extend(List.randomize(urlGroup))
142
144
  gLogger.debug(f"Randomized server list is {', '.join(randomServerList)}")
143
145
 
144
146
  for sServer in randomServerList:
@@ -12,7 +12,7 @@ class DatasetManager:
12
12
  _tables["FC_MetaDatasets"] = {
13
13
  "Fields": {
14
14
  "DatasetID": "INT AUTO_INCREMENT",
15
- "DatasetName": "VARCHAR(128) CHARACTER SET utfmb4 COLLATE utf8mb4_bin NOT NULL",
15
+ "DatasetName": "VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL",
16
16
  "MetaQuery": "VARCHAR(512)",
17
17
  "DirID": "INT NOT NULL DEFAULT 0",
18
18
  "TotalSize": "BIGINT UNSIGNED NOT NULL",
@@ -41,6 +41,7 @@ class CreateMovingRequest:
41
41
  self.flags = [
42
42
  ("C", "CheckMigration", "Ensure the LFNs are migrated to tape before removing any replicas"),
43
43
  ("X", "Execute", "Put Requests, else dryrun"),
44
+ ("", "SourceOnly", "Only treat files that are already at the Source-SE"),
44
45
  ]
45
46
  self.registerSwitchesAndParseCommandLine()
46
47
  self.getLFNList()
@@ -208,6 +209,7 @@ class CreateMovingRequest:
208
209
 
209
210
  replicate = Operation()
210
211
  replicate.Type = "ReplicateAndRegister"
212
+ replicate.SourceSE = ",".join(self.switches.get("SourceSE", []))
211
213
  replicate.TargetSE = self.switches.get("TargetSE")
212
214
  self.addLFNs(replicate, lfnChunk, addPFN=True)
213
215
  request.addOperation(replicate)
@@ -1463,9 +1463,8 @@ class Dirac(API):
1463
1463
  res = JobMonitoringClient().getJobsStatus(jobIDs)
1464
1464
  if not res["OK"]:
1465
1465
  return res
1466
- js = {k: v["Status"] for k, v in res["Value"].items()}
1467
1466
  # then filter
1468
- filteredJobs.update(_filterJobStateTransition(js, filterState))
1467
+ filteredJobs.update(_filterJobStateTransition(res["Value"], filterState))
1469
1468
 
1470
1469
  return WMSClient(useCertificates=self.useCertificates).deleteJob(list(filteredJobs))
1471
1470
 
@@ -1496,9 +1495,8 @@ class Dirac(API):
1496
1495
  res = JobMonitoringClient().getJobsStatus(jobIDs)
1497
1496
  if not res["OK"]:
1498
1497
  return res
1499
- js = {k: v["Status"] for k, v in res["Value"].items()}
1500
1498
  # then filter
1501
- jobIDsToReschedule = _filterJobStateTransition(js, JobStatus.RESCHEDULED)
1499
+ jobIDsToReschedule = _filterJobStateTransition(res["Value"], JobStatus.RESCHEDULED)
1502
1500
 
1503
1501
  return WMSClient(useCertificates=self.useCertificates).rescheduleJob(jobIDsToReschedule)
1504
1502
 
@@ -1528,9 +1526,8 @@ class Dirac(API):
1528
1526
  res = JobMonitoringClient().getJobsStatus(jobIDs)
1529
1527
  if not res["OK"]:
1530
1528
  return res
1531
- js = {k: v["Status"] for k, v in res["Value"].items()}
1532
1529
  # then filter
1533
- filteredJobs.update(_filterJobStateTransition(js, filterState))
1530
+ filteredJobs.update(_filterJobStateTransition(res["Value"], filterState))
1534
1531
 
1535
1532
  return WMSClient(useCertificates=self.useCertificates).killJob(list(filteredJobs))
1536
1533
 
@@ -48,13 +48,13 @@ from DIRAC.RequestManagementSystem.private.RequestTask import RequestTask
48
48
  # # agent name
49
49
  AGENT_NAME = "RequestManagement/RequestExecutingAgent"
50
50
  # # requests/cycle
51
- REQUESTSPERCYCLE = 100
51
+ REQUESTSPERCYCLE = 300
52
52
  # # minimal nb of subprocess running
53
- MINPROCESS = 20
53
+ MINPROCESS = 50
54
54
  # # maximal nb of subprocess executed same time
55
- MAXPROCESS = 20
55
+ MAXPROCESS = 50
56
56
  # # ProcessPool queue size
57
- QUEUESIZE = 20
57
+ QUEUESIZE = 100
58
58
  # # file timeout
59
59
  FILETIMEOUT = 300
60
60
  # # operation timeout
@@ -62,7 +62,9 @@ OPERATIONTIMEOUT = 300
62
62
  # # ProcessPool finalization timeout
63
63
  POOLTIMEOUT = 900
64
64
  # # ProcessPool sleep time
65
- POOLSLEEP = 5
65
+ POOLSLEEP = 1
66
+ # # Fetch multiple requests at once from the DB. Otherwise, one by one
67
+ BULKREQUEST = 300
66
68
 
67
69
 
68
70
  class AgentConfigError(Exception):
@@ -108,7 +110,7 @@ class RequestExecutingAgent(AgentModule):
108
110
  self.__poolSleep = POOLSLEEP
109
111
  self.__requestClient = None
110
112
  # Size of the bulk if use of getRequests. If 0, use getRequest
111
- self.__bulkRequest = 0
113
+ self.__bulkRequest = BULKREQUEST
112
114
  self.__rmsMonitoring = False
113
115
 
114
116
  def processPool(self):
@@ -44,19 +44,19 @@ Agents
44
44
  {
45
45
  PollingTime = 60
46
46
  # number of Requests to execute per cycle
47
- RequestsPerCycle = 100
47
+ RequestsPerCycle = 300
48
48
  # minimum number of workers process in the ProcessPool
49
- MinProcess = 20
49
+ MinProcess = 50
50
50
  # maximum number of workers process in the ProcessPool; recommended to set it to the same value as MinProcess
51
- MaxProcess = 20
51
+ MaxProcess = 50
52
52
  # queue depth of the ProcessPool
53
- ProcessPoolQueueSize = 20
53
+ ProcessPoolQueueSize = 100
54
54
  # timeout for the ProcessPool finalization
55
55
  ProcessPoolTimeout = 900
56
56
  # sleep time before retrying to get a free slot in the ProcessPool
57
- ProcessPoolSleep = 5
57
+ ProcessPoolSleep = 1
58
58
  # If a positive integer n is given, we fetch n requests at once from the DB. Otherwise, one by one
59
- BulkRequest = 0
59
+ BulkRequest = 300
60
60
  OperationHandlers
61
61
  {
62
62
  ForwardDISET
@@ -22,7 +22,6 @@ from DIRAC.TransformationSystem.Client.FileReport import FileReport
22
22
  from DIRAC.TransformationSystem.Client.TransformationClient import TransformationClient
23
23
  from DIRAC.TransformationSystem.Client.WorkflowTasks import WorkflowTasks
24
24
  from DIRAC.WorkloadManagementSystem.Client import JobStatus
25
- from DIRAC.WorkloadManagementSystem.Client.JobManagerClient import JobManagerClient
26
25
 
27
26
  AGENT_NAME = "Transformation/TaskManagerAgentBase"
28
27
 
@@ -39,7 +38,6 @@ class TaskManagerAgentBase(AgentModule, TransformationAgentsUtilities):
39
38
  TransformationAgentsUtilities.__init__(self)
40
39
 
41
40
  self.transClient = None
42
- self.jobManagerClient = None
43
41
  self.transType = []
44
42
 
45
43
  self.tasksPerLoop = 50
@@ -68,7 +66,6 @@ class TaskManagerAgentBase(AgentModule, TransformationAgentsUtilities):
68
66
 
69
67
  # Default clients
70
68
  self.transClient = TransformationClient()
71
- self.jobManagerClient = JobManagerClient()
72
69
 
73
70
  # Bulk submission flag
74
71
  self.bulkSubmissionFlag = self.am_getOption("BulkSubmission", self.bulkSubmissionFlag)
@@ -79,7 +79,7 @@ def kill_delete_jobs(right, validJobList, nonauthJobList=[], force=False):
79
79
  killJobList = []
80
80
  deleteJobList = []
81
81
  if validJobList:
82
- result = JobDB().getJobsAttributes(killJobList, ["Status"])
82
+ result = JobDB().getJobsAttributes(validJobList, ["Status"])
83
83
  if not result["OK"]:
84
84
  return result
85
85
  jobStates = result["Value"]
@@ -1215,8 +1215,8 @@ class JobWrapper:
1215
1215
  lfn = str(basePath / outputPath / os.path.basename(localfile))
1216
1216
  else:
1217
1217
  # if LFN is given, take it as it is
1218
- localfile = str(self.jobIDPath / outputFile.replace("LFN:", ""))
1219
1218
  lfn = outputFile.replace("LFN:", "")
1219
+ localfile = str(self.jobIDPath / os.path.basename(lfn))
1220
1220
 
1221
1221
  return (lfn, localfile)
1222
1222
 
@@ -664,6 +664,7 @@ def jobIDPath():
664
664
  # Output data files
665
665
  (p / "00232454_00000244_1.sim").touch()
666
666
  (p / "1720442808testFileUpload.txt").touch()
667
+ (p / "testFileUploadFullLFN.txt").touch()
667
668
 
668
669
  with open(p / "pool_xml_catalog.xml", "w") as f:
669
670
  f.write(
@@ -863,7 +864,11 @@ def test_processJobOutputs_output_data_upload(mocker, setup_another_job_wrapper)
863
864
  # BTW, isn't the concept of pool_xml_catalog.xml from lhcbdirac?
864
865
  jw.jobArgs = {
865
866
  "OutputSandbox": [],
866
- "OutputData": ["1720442808testFileUpload.txt", "LFN:00232454_00000244_1.sim"],
867
+ "OutputData": [
868
+ "1720442808testFileUpload.txt",
869
+ "LFN:00232454_00000244_1.sim",
870
+ "LFN:/dirac/user/u/unknown/testFileUploadFullLFN.txt",
871
+ ],
867
872
  "Owner": "Jane Doe",
868
873
  }
869
874
 
@@ -879,10 +884,15 @@ def test_processJobOutputs_output_data_upload(mocker, setup_another_job_wrapper)
879
884
  assert jw.jobReport.jobStatusInfo[1][:-1] == ("", JobMinorStatus.UPLOADING_OUTPUT_DATA)
880
885
  assert jw.jobReport.jobStatusInfo[2][:-1] == (JobStatus.COMPLETING, JobMinorStatus.OUTPUT_DATA_UPLOADED)
881
886
  assert len(jw.jobReport.jobParameters) == 1
882
- assert jw.jobReport.jobParameters[0] == (
883
- "UploadedOutputData",
884
- "00232454_00000244_1.sim, /dirac/user/u/unknown/0/123/1720442808testFileUpload.txt",
885
- )
887
+
888
+ expected_files = {
889
+ "00232454_00000244_1.sim",
890
+ "/dirac/user/u/unknown/0/123/1720442808testFileUpload.txt",
891
+ "/dirac/user/u/unknown/testFileUploadFullLFN.txt",
892
+ }
893
+ assert jw.jobReport.jobParameters[0][0] == "UploadedOutputData"
894
+ uploaded_files = set(jw.jobReport.jobParameters[0][1].split(", "))
895
+ assert uploaded_files == expected_files
886
896
 
887
897
 
888
898
  # -------------------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DIRAC
3
- Version: 9.0.0a69
3
+ Version: 9.0.1
4
4
  Summary: DIRAC is an interware, meaning a software framework for distributed computing.
5
5
  Home-page: https://github.com/DIRACGrid/DIRAC/
6
6
  License: GPL-3.0-only
@@ -19,7 +19,7 @@ Requires-Dist: cachetools
19
19
  Requires-Dist: certifi
20
20
  Requires-Dist: cwltool
21
21
  Requires-Dist: diraccfg
22
- Requires-Dist: DIRACCommon==v9.0.0a69
22
+ Requires-Dist: DIRACCommon==v9.0.1
23
23
  Requires-Dist: diracx-client>=v0.0.1a18
24
24
  Requires-Dist: diracx-core>=v0.0.1a18
25
25
  Requires-Dist: db12
@@ -83,7 +83,7 @@ DIRAC/ConfigurationSystem/private/ConfigurationClient.py,sha256=zRqHURAz2uE96fDW
83
83
  DIRAC/ConfigurationSystem/private/ConfigurationData.py,sha256=KaoCw6yhNTFHPYRf_gE8vllJIlOvrvTq_zI7rOQiHqo,15180
84
84
  DIRAC/ConfigurationSystem/private/Modificator.py,sha256=Ek5pKk-HJ2f7TF4zcHdPifugELBo6bpl4dVo0qbr9Ww,10537
85
85
  DIRAC/ConfigurationSystem/private/Refresher.py,sha256=bdBEp4dVtE8RBdYHmFREftrUniGbe7AwXZK-vBZnAV0,4097
86
- DIRAC/ConfigurationSystem/private/RefresherBase.py,sha256=aZBjIrtvUEh7ZM8GweNBGGEXet54Hrgh4Iz8kMhXumY,6436
86
+ DIRAC/ConfigurationSystem/private/RefresherBase.py,sha256=STbCWT3fJvNqyQNwsrzTQAuG6OndlBzTJfnwGrAOAnQ,6552
87
87
  DIRAC/ConfigurationSystem/private/ServiceInterface.py,sha256=HzFWXFd6aWmlEJfcBNr5nVCG3tXuYmQunR9_xjuueX4,1919
88
88
  DIRAC/ConfigurationSystem/private/ServiceInterfaceBase.py,sha256=bLa6xxydThtsGalaiiYhsSWWXEfA9laJBOLU8ZaMiy0,15644
89
89
  DIRAC/ConfigurationSystem/private/ServiceInterfaceTornado.py,sha256=gEUyxpQM1kJDl_zUI7__OCbqS0-CAD7CCMS9JiWtFgY,1414
@@ -389,7 +389,7 @@ DIRAC/DataManagementSystem/DB/FileCatalogWithFkAndPsDB.sql,sha256=HhPwoKQzpY76Ev
389
389
  DIRAC/DataManagementSystem/DB/__init__.py,sha256=wYM6m2zwnPwfEDyFr8zn3nxsz8ScG0rcK9o3ZTMS1o0,49
390
390
  DIRAC/DataManagementSystem/DB/FileCatalogComponents/Utilities.py,sha256=9ISL04-ODyzbV1L6OJce-NNC8s32JVioZ3ZZ2xRYvNw,584
391
391
  DIRAC/DataManagementSystem/DB/FileCatalogComponents/__init__.py,sha256=9cXeiZx0oIpGUDNV_xAak5eTRF8Qgu8HDtLVlb3tclA,38
392
- DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/DatasetManager.py,sha256=yRxhL9sBiVOe9-e5YnSqD6aqe9-bYzOMI6KbfxfH_HA,31122
392
+ DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/DatasetManager.py,sha256=SUj6xTS3s6l1oWfStLho6HSua-EQzs65VQxnLkVNx5M,31123
393
393
  DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
394
394
  DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryClosure.py,sha256=vsLBKYiZKdgq1MLuZRbofxI23Jio2ha7JIwFzU42tLk,23739
395
395
  DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryFlatTree.py,sha256=uQzlQ1JMnC9SgL1r0PfBJDF5an--rk-KhbBGWyjPin8,8536
@@ -460,7 +460,7 @@ DIRAC/DataManagementSystem/scripts/dirac_dms_catalog_metadata.py,sha256=K8Wz_zyb
460
460
  DIRAC/DataManagementSystem/scripts/dirac_dms_change_replica_status.py,sha256=_3yhBq7gWo_iQQNujT0BDy6sUcroojGyBN1KJnDnhFk,1778
461
461
  DIRAC/DataManagementSystem/scripts/dirac_dms_clean_directory.py,sha256=0SzIyRoiu1TlFIOyTyUkTehH8Ltn7arVY9u-67c7XDI,1782
462
462
  DIRAC/DataManagementSystem/scripts/dirac_dms_create_archive_request.py,sha256=h1ucu6TooaQIfF26tules2s1YEIN_QC7OomczrJ9MOU,22462
463
- DIRAC/DataManagementSystem/scripts/dirac_dms_create_moving_request.py,sha256=HvreObAShjThJS3OFLqr3FOMlvB7WgNdq_Am2-9-LUw,11402
463
+ DIRAC/DataManagementSystem/scripts/dirac_dms_create_moving_request.py,sha256=7tPUPevaRaQ4ACM0nJ8DSl0Ad70QfJ8RMzwonJVTs1s,11561
464
464
  DIRAC/DataManagementSystem/scripts/dirac_dms_create_removal_request.py,sha256=r_i8wi5-24L7Ij5uFG-TKojkCYFeHuzbjT0mfbbkNos,3535
465
465
  DIRAC/DataManagementSystem/scripts/dirac_dms_data_size.py,sha256=XAL34mlKcgE1XfqSHAxMpFiXMBiihKMwBNrD0utiWfs,2478
466
466
  DIRAC/DataManagementSystem/scripts/dirac_dms_directory_sync.py,sha256=UaEubXTbVqHkQid7f59BMlPGwigtPUm9vd1NlYt_qgs,18000
@@ -592,7 +592,7 @@ DIRAC/FrameworkSystem/scripts/dirac_stop_component.py,sha256=RJJy63ilUEV5qyP_r2i
592
592
  DIRAC/FrameworkSystem/scripts/dirac_sys_sendmail.py,sha256=lJ6OO_vkaSVhXp_p79LYTZoq9jT5qLU0qXOfFEgK9fw,2453
593
593
  DIRAC/FrameworkSystem/scripts/dirac_uninstall_component.py,sha256=FTA2zA0cACM31u_uFZgsUYC6S0Fh3xmkqDjgOPdFr4k,2797
594
594
  DIRAC/Interfaces/__init__.py,sha256=hycApm2mNnIWcdIzoOKQZLa8-LpSpfG2jdfgyKGN9Gg,34
595
- DIRAC/Interfaces/API/Dirac.py,sha256=0ZB3s8k_kOdN3HksEyimHNrcntk8zNQQbsQio93pXpM,94786
595
+ DIRAC/Interfaces/API/Dirac.py,sha256=alMGB5YV2Oyo44G2k_jdSSvHRhZz0WmN3bMBeXgN11I,94619
596
596
  DIRAC/Interfaces/API/DiracAdmin.py,sha256=PDwWl1KCckL2xhLodeWJhVS4ZondNvfdbTUEE3pukXA,28135
597
597
  DIRAC/Interfaces/API/Job.py,sha256=FFYNMWaWvcC9ZGDQ2gZhpnFBijjRUFZvcyIIU4PQqC8,50650
598
598
  DIRAC/Interfaces/API/__init__.py,sha256=l_0g05W4nsJ9-kvp9yKYsbdLz3EvWczOfdycoPnwlvU,566
@@ -734,10 +734,10 @@ DIRAC/ProductionSystem/scripts/dirac_prod_get_description.py,sha256=tKrlr-yIUfMQ
734
734
  DIRAC/ProductionSystem/scripts/dirac_prod_get_trans.py,sha256=I7JK2IbS-lyI239IMJoZwPIDIoRXxVUtZDHdlkwtIBY,3002
735
735
  DIRAC/ProductionSystem/scripts/dirac_prod_start.py,sha256=Xr4tdgN41toQRWPJnLF5Nx3xq40PteVI0OTz3t7ehOI,795
736
736
  DIRAC/ProductionSystem/scripts/dirac_prod_stop.py,sha256=sqIvlmTPHtSCn94knJGiPfPiPu7geAngI-IHcfbaE2U,794
737
- DIRAC/RequestManagementSystem/ConfigTemplate.cfg,sha256=jWSq1sgNqzPdY22oPjnJwjYzDhTn-EHglfRgi86L3yE,3774
737
+ DIRAC/RequestManagementSystem/ConfigTemplate.cfg,sha256=IE4HILrLKI9qqnJ3EnoIEH3J3B3qCa7frhTp0DqL7yo,3777
738
738
  DIRAC/RequestManagementSystem/__init__.py,sha256=dd54oqlSYTanQrw2iGyzp_dipGTtvP2VlUrYZzGQI5Q,49
739
739
  DIRAC/RequestManagementSystem/Agent/CleanReqDBAgent.py,sha256=wcXEZPfxU9yoiOSM7qQi9lzA-ilsIezc45xWWxLXKJA,7286
740
- DIRAC/RequestManagementSystem/Agent/RequestExecutingAgent.py,sha256=Hz_WH3p8KQWXOOIeYAHPh15vTYWkWmw7iH5RoATSE78,20038
740
+ DIRAC/RequestManagementSystem/Agent/RequestExecutingAgent.py,sha256=U2MzS_eYuQykpwyR7XkWQjXKhmp3CoBCXxnBK7cBVeM,20138
741
741
  DIRAC/RequestManagementSystem/Agent/__init__.py,sha256=hr-uMJaL3v8Mrx1Mm-xPOpI7xJCzWmoRt21mHQLjGJc,55
742
742
  DIRAC/RequestManagementSystem/Agent/RequestOperations/ForwardDISET.py,sha256=tre5SjRM-9U0uZJ-Ajup1_6pe2bc3UjwsIXueJtHe7E,3418
743
743
  DIRAC/RequestManagementSystem/Agent/RequestOperations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1048,7 +1048,7 @@ DIRAC/TransformationSystem/Agent/DataRecoveryAgent.py,sha256=JUfOBQd0U2uz9WvvArB
1048
1048
  DIRAC/TransformationSystem/Agent/InputDataAgent.py,sha256=YdxfB1wb55MBgZAuWNuqx_zXHaxTAEGCKYikr0eZaD8,8085
1049
1049
  DIRAC/TransformationSystem/Agent/MCExtensionAgent.py,sha256=0pmfiy8FTH670Vv3Md6TPo5iAXsu9y1e-1ybIOTQJPY,5266
1050
1050
  DIRAC/TransformationSystem/Agent/RequestTaskAgent.py,sha256=0FxuRVONDkC6DtDqfSC4LeZmheaevBsrh4yvan0DtVc,2689
1051
- DIRAC/TransformationSystem/Agent/TaskManagerAgentBase.py,sha256=M8CVPGCY4UMNfKNDdcfgUd2er3JPAIeNzGghsk0ohUQ,30824
1051
+ DIRAC/TransformationSystem/Agent/TaskManagerAgentBase.py,sha256=v61j-e_qMQXACENK0JYWa7lMgL0-xNT9irzEdXDHs-8,30652
1052
1052
  DIRAC/TransformationSystem/Agent/TransformationAgent.py,sha256=rUPyfX_Ip3ZUyBrmVBrYiddVmgeTx6gKiYPEzwUDOcY,33813
1053
1053
  DIRAC/TransformationSystem/Agent/TransformationAgentsUtilities.py,sha256=XrgrjQWSDQm0uxG-wyEY-W0A_MBJyIE-22TafqrLP3A,2805
1054
1054
  DIRAC/TransformationSystem/Agent/TransformationCleaningAgent.py,sha256=uAu_aQxko4GF_cTxDxY4KmARqjuytBO89e4XVy5PPUM,32898
@@ -1184,7 +1184,7 @@ DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.py,sha256=tUSuhv59CQgB7NkxsXo5r-
1184
1184
  DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.sql,sha256=RnCDCDGa__7sDxjSFGlu_5OwKbzxeK3a9TOMpV5ftRw,2738
1185
1185
  DIRAC/WorkloadManagementSystem/DB/SandboxMetadataDB.py,sha256=a4tHv19jN2lKi4o5SYvfkG6JPbVcjJO_SgJBJORUV7Y,15631
1186
1186
  DIRAC/WorkloadManagementSystem/DB/SandboxMetadataDB.sql,sha256=2TcyLiewFuPWqBhD43geHG0obCFRGTSLbQwPUwENYnQ,23
1187
- DIRAC/WorkloadManagementSystem/DB/StatusUtils.py,sha256=K4fIDNOWbSxUaxVfKbsSKzPAlF5v_S5FSCGxHRkPScM,5124
1187
+ DIRAC/WorkloadManagementSystem/DB/StatusUtils.py,sha256=cVVNiZlVbp0B-4MpkpXATlSLRtubsL6iGx4-U4KP2A4,5125
1188
1188
  DIRAC/WorkloadManagementSystem/DB/TaskQueueDB.py,sha256=4ClljoQUnHKq1KHAIFpUwL_5-NrUUuM8oHKzOZULXZg,54623
1189
1189
  DIRAC/WorkloadManagementSystem/DB/TaskQueueDB.sql,sha256=GfeceE3VY7l15pMwt6MzI8pGqdk772XuIg_DE0vkj74,541
1190
1190
  DIRAC/WorkloadManagementSystem/DB/__init__.py,sha256=1H5briNEaZlSL6pMxzjDmkZkVvGxHix8DtfkM-mOwGc,53
@@ -1203,13 +1203,13 @@ DIRAC/WorkloadManagementSystem/FutureClient/JobMonitoringClient.py,sha256=3Mjq3h
1203
1203
  DIRAC/WorkloadManagementSystem/FutureClient/JobStateUpdateClient.py,sha256=PG3JkQPgmPacjTLTCHTobZeKys4nxObs0D_Axfrl2Uw,6650
1204
1204
  DIRAC/WorkloadManagementSystem/FutureClient/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1205
1205
  DIRAC/WorkloadManagementSystem/JobWrapper/JobExecutionCoordinator.py,sha256=Y64YnkrKklOkXnV5wKsgzBONFljVJ0ByFVUMFNkiGAU,2461
1206
- DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py,sha256=paoNJpBRRsB51f3PniXIb7vXnesu_xB7L-ZLnml0-LY,74804
1206
+ DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py,sha256=s_YHg_PsTGVHBLrS1QkbPGcarWf2xDHeXAKSS3s2fxc,74795
1207
1207
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperOfflineTemplate.py,sha256=wem5VDN9XiC7szAzdsbgHUxpIOQB2Hj36DIVMoV9px8,2490
1208
1208
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperTemplate.py,sha256=4QgcFPMLRaTagP9e_Vvsla8pFH8HdewklHfS-gyS4-g,3313
1209
1209
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperUtilities.py,sha256=5w_4PMnaHhuexChADDvt1L9Ih1PstdUuYWObnlv9Dto,10072
1210
1210
  DIRAC/WorkloadManagementSystem/JobWrapper/Watchdog.py,sha256=wGpIdnyVzI5T9agxNp94gmPZPceXWREaJiEtZg1lAzk,39997
1211
1211
  DIRAC/WorkloadManagementSystem/JobWrapper/__init__.py,sha256=e9Oa_ddNLweR3Lp_HOMK6WqqCWWj2SLPxF5UH4F19ic,61
1212
- DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py,sha256=qoj3Rb6VOTwilJ79DPjr4SKSvDwIuZSqPK9xjTfZpNc,38829
1212
+ DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py,sha256=R9onrrnfyc1v4USt2nnvrYHFo5tKbpLjhMkXl4n0y2Y,39177
1213
1213
  DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapperTemplate.py,sha256=dC_SvC5Rlchlj2NvBfN7FH1ioXgC8bf9U8BQnEL5GYg,21982
1214
1214
  DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_Watchdog.py,sha256=a-QJ1E1ZcWObhOVgxZYD_nYjseCWsbjT0KxjZDNWyAQ,882
1215
1215
  DIRAC/WorkloadManagementSystem/JobWrapper/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1294,9 +1294,9 @@ DIRAC/tests/Workflow/Integration/exe-script.py,sha256=B_slYdTocEzqfQLRhwuPiLyYUn
1294
1294
  DIRAC/tests/Workflow/Integration/helloWorld.py,sha256=tBgEHH3ZF7ZiTS57gtmm3DW-Qxgm_57HWHpM-Y8XSws,205
1295
1295
  DIRAC/tests/Workflow/Regression/helloWorld.py,sha256=69eCgFuVSYo-mK3Dj2dw1c6g86sF5FksKCf8V2aGVoM,509
1296
1296
  DIRAC/tests/Workflow/Regression/helloWorld.xml,sha256=xwydIcFTAHIX-YPfQfyxuQ7hzvIO3IhR3UAF7ORgkGg,5310
1297
- dirac-9.0.0a69.dist-info/licenses/LICENSE,sha256=uyr4oV6jmjUeepXZPPjkJRwa5q5MrI7jqJz5sVXNblQ,32452
1298
- dirac-9.0.0a69.dist-info/METADATA,sha256=lwVvrzXbmTIFjg9IJOC_gG9_f6QU_z7yEG8NGsedvus,10020
1299
- dirac-9.0.0a69.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1300
- dirac-9.0.0a69.dist-info/entry_points.txt,sha256=hupzIL8aVmjK3nn7RLKdhcaiPmLOiD3Kulh3CSDHKmw,16492
1301
- dirac-9.0.0a69.dist-info/top_level.txt,sha256=RISrnN9kb_mPqmVu8_o4jF-DSX8-h6AcgfkO9cgfkHA,6
1302
- dirac-9.0.0a69.dist-info/RECORD,,
1297
+ dirac-9.0.1.dist-info/licenses/LICENSE,sha256=uyr4oV6jmjUeepXZPPjkJRwa5q5MrI7jqJz5sVXNblQ,32452
1298
+ dirac-9.0.1.dist-info/METADATA,sha256=jj1SEb6Qm_Yz6vA9Xqbcvvq4s90Pm0TcOUJvlSsJJfc,10014
1299
+ dirac-9.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1300
+ dirac-9.0.1.dist-info/entry_points.txt,sha256=hupzIL8aVmjK3nn7RLKdhcaiPmLOiD3Kulh3CSDHKmw,16492
1301
+ dirac-9.0.1.dist-info/top_level.txt,sha256=RISrnN9kb_mPqmVu8_o4jF-DSX8-h6AcgfkO9cgfkHA,6
1302
+ dirac-9.0.1.dist-info/RECORD,,