DIRAC 9.0.0a69__py3-none-any.whl → 9.0.0a70__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.
- DIRAC/AccountingSystem/Client/Types/Network.py +8 -8
- DIRAC/AccountingSystem/Client/Types/PilotSubmission.py +3 -3
- DIRAC/ConfigurationSystem/Client/CSAPI.py +11 -1
- DIRAC/ConfigurationSystem/Client/Helpers/CSGlobals.py +0 -9
- DIRAC/ConfigurationSystem/Client/Helpers/Registry.py +3 -29
- DIRAC/ConfigurationSystem/Client/SyncPlugins/CERNLDAPSyncPlugin.py +4 -1
- DIRAC/ConfigurationSystem/ConfigTemplate.cfg +3 -0
- DIRAC/ConfigurationSystem/private/Modificator.py +11 -3
- DIRAC/ConfigurationSystem/private/RefresherBase.py +4 -2
- DIRAC/Core/DISET/ServiceReactor.py +11 -3
- DIRAC/Core/DISET/private/Transports/M2SSLTransport.py +9 -7
- DIRAC/Core/Security/DiracX.py +11 -6
- DIRAC/Core/Security/test/test_diracx_token_from_pem.py +161 -0
- DIRAC/Core/Tornado/Server/TornadoService.py +1 -1
- DIRAC/Core/Utilities/ElasticSearchDB.py +1 -2
- DIRAC/Core/Utilities/Subprocess.py +66 -57
- DIRAC/Core/Utilities/test/Test_Profiler.py +20 -20
- DIRAC/Core/Utilities/test/Test_Subprocess.py +58 -8
- DIRAC/Core/scripts/dirac_apptainer_exec.py +8 -8
- DIRAC/DataManagementSystem/Agent/FTS3Agent.py +8 -7
- DIRAC/DataManagementSystem/Client/DataManager.py +6 -7
- DIRAC/DataManagementSystem/Client/FTS3Job.py +125 -34
- DIRAC/DataManagementSystem/Client/test/Test_FTS3Objects.py +1 -0
- DIRAC/DataManagementSystem/Client/test/Test_scitag.py +69 -0
- DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/DatasetManager.py +1 -1
- DIRAC/DataManagementSystem/scripts/dirac_dms_create_moving_request.py +2 -0
- DIRAC/FrameworkSystem/DB/InstalledComponentsDB.py +3 -2
- DIRAC/FrameworkSystem/DB/ProxyDB.py +9 -5
- DIRAC/FrameworkSystem/Utilities/MonitoringUtilities.py +1 -0
- DIRAC/FrameworkSystem/Utilities/TokenManagementUtilities.py +3 -2
- DIRAC/FrameworkSystem/Utilities/diracx.py +41 -10
- DIRAC/FrameworkSystem/scripts/dirac_login.py +2 -2
- DIRAC/FrameworkSystem/scripts/dirac_proxy_init.py +1 -1
- DIRAC/FrameworkSystem/scripts/dirac_uninstall_component.py +1 -0
- DIRAC/Interfaces/API/Dirac.py +3 -6
- DIRAC/Interfaces/Utilities/DConfigCache.py +2 -0
- DIRAC/MonitoringSystem/DB/MonitoringDB.py +6 -5
- DIRAC/MonitoringSystem/Service/WebAppHandler.py +25 -6
- DIRAC/MonitoringSystem/private/MainReporter.py +0 -3
- DIRAC/RequestManagementSystem/Agent/RequestExecutingAgent.py +8 -6
- DIRAC/RequestManagementSystem/ConfigTemplate.cfg +6 -6
- DIRAC/ResourceStatusSystem/Command/FreeDiskSpaceCommand.py +3 -1
- DIRAC/Resources/Computing/AREXComputingElement.py +18 -2
- DIRAC/Resources/Computing/BatchSystems/Condor.py +0 -3
- DIRAC/Resources/Computing/BatchSystems/executeBatch.py +15 -7
- DIRAC/Resources/Computing/LocalComputingElement.py +0 -2
- DIRAC/Resources/Computing/SSHComputingElement.py +61 -38
- DIRAC/Resources/IdProvider/CheckInIdProvider.py +13 -0
- DIRAC/Resources/IdProvider/IdProviderFactory.py +13 -3
- DIRAC/Resources/IdProvider/tests/Test_IdProviderFactory.py +7 -0
- DIRAC/Resources/Storage/FileStorage.py +121 -2
- DIRAC/TransformationSystem/Agent/InputDataAgent.py +4 -1
- DIRAC/TransformationSystem/Agent/MCExtensionAgent.py +5 -2
- DIRAC/TransformationSystem/Agent/TaskManagerAgentBase.py +3 -4
- DIRAC/TransformationSystem/Agent/TransformationCleaningAgent.py +44 -9
- DIRAC/TransformationSystem/Agent/ValidateOutputDataAgent.py +4 -2
- DIRAC/TransformationSystem/Client/TransformationClient.py +9 -1
- DIRAC/TransformationSystem/Client/Utilities.py +6 -3
- DIRAC/TransformationSystem/DB/TransformationDB.py +105 -43
- DIRAC/TransformationSystem/Utilities/ReplicationCLIParameters.py +3 -3
- DIRAC/TransformationSystem/scripts/dirac_production_runjoblocal.py +2 -4
- DIRAC/TransformationSystem/test/Test_replicationTransformation.py +5 -6
- DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py +8 -11
- DIRAC/WorkloadManagementSystem/Agent/StalledJobAgent.py +39 -7
- DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_SiteDirector.py +8 -2
- DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_StalledJobAgent.py +24 -4
- DIRAC/WorkloadManagementSystem/Client/DownloadInputData.py +4 -3
- DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg +3 -3
- DIRAC/WorkloadManagementSystem/DB/JobParametersDB.py +8 -8
- DIRAC/WorkloadManagementSystem/DB/SandboxMetadataDB.py +1 -1
- DIRAC/WorkloadManagementSystem/DB/StatusUtils.py +48 -21
- DIRAC/WorkloadManagementSystem/DB/tests/Test_StatusUtils.py +19 -4
- DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py +3 -4
- DIRAC/WorkloadManagementSystem/JobWrapper/Watchdog.py +16 -45
- DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py +18 -9
- DIRAC/WorkloadManagementSystem/Service/JobManagerHandler.py +25 -2
- DIRAC/WorkloadManagementSystem/Service/WMSAdministratorHandler.py +18 -31
- DIRAC/WorkloadManagementSystem/Utilities/PilotCStoJSONSynchronizer.py +4 -1
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/METADATA +6 -5
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/RECORD +84 -82
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/WHEEL +0 -0
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/entry_points.txt +0 -0
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/licenses/LICENSE +0 -0
- {dirac-9.0.0a69.dist-info → dirac-9.0.0a70.dist-info}/top_level.txt +0 -0
|
@@ -150,37 +150,24 @@ class WMSAdministratorHandlerMixin:
|
|
|
150
150
|
:param str jobID: job ID
|
|
151
151
|
:return: S_OK(dict)/S_ERROR()
|
|
152
152
|
"""
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
# Failed to get the pilot reference, try to look in the attic parameters
|
|
172
|
-
res = self.jobDB.getAtticJobParameters(int(jobID), ["Pilot_Reference"])
|
|
173
|
-
if res["OK"]:
|
|
174
|
-
c = -1
|
|
175
|
-
# Get the pilot reference for the last rescheduling cycle
|
|
176
|
-
for cycle in res["Value"]:
|
|
177
|
-
if cycle > c:
|
|
178
|
-
pilotReference = res["Value"][cycle]["Pilot_Reference"]
|
|
179
|
-
c = cycle
|
|
180
|
-
|
|
181
|
-
if pilotReference:
|
|
182
|
-
return self.pilotManager.getPilotOutput(pilotReference)
|
|
183
|
-
return S_ERROR("No pilot job reference found")
|
|
153
|
+
result = self.pilotManager.getPilots(jobID)
|
|
154
|
+
|
|
155
|
+
if not result["OK"]:
|
|
156
|
+
return result
|
|
157
|
+
pilotJobReferences = result["Value"].keys()
|
|
158
|
+
|
|
159
|
+
outputs = {"StdOut": "", "StdErr": ""}
|
|
160
|
+
for pilotRef in pilotJobReferences:
|
|
161
|
+
result = self.pilotManager.getPilotOutput(pilotRef)
|
|
162
|
+
if not result["OK"]:
|
|
163
|
+
stdout = f"Could not retrieve output: {result['Message']}"
|
|
164
|
+
error = f"Could not retrieve error: {result['Message']}"
|
|
165
|
+
else:
|
|
166
|
+
stdout, error = result["Value"]["StdOut"], result["Value"]["StdErr"]
|
|
167
|
+
outputs["StdOut"] += f"# PilotJobReference: {pilotRef}\n\n{stdout}\n"
|
|
168
|
+
outputs["StdErr"] += f"# PilotJobReference: {pilotRef}\n\n{error}\n"
|
|
169
|
+
|
|
170
|
+
return S_OK(outputs)
|
|
184
171
|
|
|
185
172
|
|
|
186
173
|
class WMSAdministratorHandler(WMSAdministratorHandlerMixin, RequestHandler):
|
|
@@ -11,7 +11,6 @@ import os
|
|
|
11
11
|
import shutil
|
|
12
12
|
import tarfile
|
|
13
13
|
from typing import Any
|
|
14
|
-
|
|
15
14
|
from git import Repo
|
|
16
15
|
|
|
17
16
|
from DIRAC import S_OK, gConfig, gLogger
|
|
@@ -217,6 +216,10 @@ class PilotCStoJSONSynchronizer:
|
|
|
217
216
|
|
|
218
217
|
pilotDict["ConfigurationServers"] = configurationServers
|
|
219
218
|
|
|
219
|
+
preferredURLPatterns = gConfigurationData.extractOptionFromCFG("/DIRAC/PreferredURLPatterns")
|
|
220
|
+
if preferredURLPatterns:
|
|
221
|
+
pilotDict["PreferredURLPatterns"] = preferredURLPatterns.replace(" ", "").split(",")
|
|
222
|
+
|
|
220
223
|
self.log.debug("Got pilotDict", str(pilotDict))
|
|
221
224
|
|
|
222
225
|
return S_OK(pilotDict)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: DIRAC
|
|
3
|
-
Version: 9.0.
|
|
3
|
+
Version: 9.0.0a70
|
|
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,9 +19,10 @@ Requires-Dist: cachetools
|
|
|
19
19
|
Requires-Dist: certifi
|
|
20
20
|
Requires-Dist: cwltool
|
|
21
21
|
Requires-Dist: diraccfg
|
|
22
|
-
Requires-Dist: DIRACCommon==v9.0.
|
|
23
|
-
Requires-Dist: diracx-client>=v0.0.
|
|
24
|
-
Requires-Dist: diracx-core>=v0.0.
|
|
22
|
+
Requires-Dist: DIRACCommon==v9.0.0a70
|
|
23
|
+
Requires-Dist: diracx-client>=v0.0.1
|
|
24
|
+
Requires-Dist: diracx-core>=v0.0.1
|
|
25
|
+
Requires-Dist: diracx-cli>=v0.0.1
|
|
25
26
|
Requires-Dist: db12
|
|
26
27
|
Requires-Dist: fts3
|
|
27
28
|
Requires-Dist: gfal2-python
|
|
@@ -40,13 +41,13 @@ Requires-Dist: python-dateutil
|
|
|
40
41
|
Requires-Dist: pytz
|
|
41
42
|
Requires-Dist: requests
|
|
42
43
|
Requires-Dist: rucio-clients>=34.4.2
|
|
43
|
-
Requires-Dist: setuptools
|
|
44
44
|
Requires-Dist: sqlalchemy
|
|
45
45
|
Requires-Dist: typing_extensions>=4.3.0
|
|
46
46
|
Requires-Dist: Authlib>=1.0.0.a2
|
|
47
47
|
Requires-Dist: pyjwt
|
|
48
48
|
Requires-Dist: dominate
|
|
49
49
|
Requires-Dist: zstandard
|
|
50
|
+
Requires-Dist: xattr
|
|
50
51
|
Provides-Extra: server
|
|
51
52
|
Requires-Dist: CMRESHandler; extra == "server"
|
|
52
53
|
Requires-Dist: opensearch-py; extra == "server"
|