DIRAC 9.0.14__tar.gz → 9.0.16__tar.gz

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.
Files changed (1323) hide show
  1. dirac-9.0.16/AGENTS.md +17 -0
  2. {dirac-9.0.14/src/DIRAC.egg-info → dirac-9.0.16}/PKG-INFO +2 -2
  3. {dirac-9.0.14 → dirac-9.0.16}/dirac.cfg +1 -1
  4. {dirac-9.0.14 → dirac-9.0.16}/release.notes +76 -0
  5. {dirac-9.0.14 → dirac-9.0.16}/setup.cfg +1 -1
  6. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/CSAPI.py +11 -0
  7. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Client/private/TornadoBaseClient.py +1 -1
  8. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/CGroups2.py +1 -0
  9. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ElasticSearchDB.py +1 -1
  10. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/MySQL.py +51 -25
  11. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/DataManager.py +7 -10
  12. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FTS3Job.py +12 -3
  13. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/SystemAdministratorHandler.py +41 -11
  14. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/Dirac.py +12 -4
  15. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/Job.py +62 -17
  16. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/RequestTask.py +2 -1
  17. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/FileCatalogClient.py +18 -7
  18. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/Utilities.py +3 -3
  19. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/SLURM.py +1 -1
  20. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/TimeLeft.py +3 -1
  21. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/ComputingElement.py +39 -34
  22. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/InProcessComputingElement.py +20 -7
  23. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/PoolComputingElement.py +76 -37
  24. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/SingularityComputingElement.py +19 -9
  25. dirac-9.0.16/src/DIRAC/Resources/Computing/test/Test_InProcessComputingElement.py +131 -0
  26. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/Test_PoolComputingElement.py +102 -35
  27. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/GFAL2_StorageBase.py +9 -0
  28. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/TransformationAgent.py +12 -13
  29. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobReport.py +10 -6
  30. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobState/JobState.py +12 -3
  31. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/Matcher.py +18 -24
  32. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/TaskQueueDB.py +137 -7
  33. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/JobScheduling.py +8 -14
  34. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/test/Test_Executor.py +3 -5
  35. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py +2 -2
  36. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py +1 -1
  37. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/JobManagerHandler.py +7 -1
  38. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/JobParameters.py +81 -2
  39. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/PilotCStoJSONSynchronizer.py +7 -6
  40. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/QueueUtilities.py +5 -5
  41. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/RemoteRunner.py +2 -1
  42. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/Utils.py +21 -4
  43. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_RemoteRunner.py +7 -3
  44. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_get_wn_parameters.py +3 -3
  45. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/__init__.py +1 -1
  46. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/testJobDefinitions.py +57 -20
  47. {dirac-9.0.14 → dirac-9.0.16/src/DIRAC.egg-info}/PKG-INFO +2 -2
  48. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/SOURCES.txt +1 -0
  49. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/requires.txt +1 -1
  50. dirac-9.0.14/src/DIRAC/Resources/Computing/test/Test_InProcessComputingElement.py +0 -70
  51. {dirac-9.0.14 → dirac-9.0.16}/AUTHORS.rst +0 -0
  52. {dirac-9.0.14 → dirac-9.0.16}/LICENSE +0 -0
  53. {dirac-9.0.14 → dirac-9.0.16}/MANIFEST.in +0 -0
  54. {dirac-9.0.14 → dirac-9.0.16}/README.rst +0 -0
  55. {dirac-9.0.14 → dirac-9.0.16}/SECURITY.md +0 -0
  56. {dirac-9.0.14 → dirac-9.0.16}/codecov.yml +0 -0
  57. {dirac-9.0.14 → dirac-9.0.16}/environment.yml +0 -0
  58. {dirac-9.0.14 → dirac-9.0.16}/integration_tests.py +0 -0
  59. {dirac-9.0.14 → dirac-9.0.16}/pyproject.toml +0 -0
  60. {dirac-9.0.14 → dirac-9.0.16}/pytest.ini +0 -0
  61. {dirac-9.0.14 → dirac-9.0.16}/releases.cfg +0 -0
  62. {dirac-9.0.14 → dirac-9.0.16}/setup.py +0 -0
  63. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Agent/NetworkAgent.py +0 -0
  64. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Agent/__init__.py +0 -0
  65. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Agent/test/Test_NetworkAgent.py +0 -0
  66. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/AccountingCLI.py +0 -0
  67. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/DataStoreClient.py +0 -0
  68. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/ReportCLI.py +0 -0
  69. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/ReportsClient.py +0 -0
  70. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/BaseAccountingType.py +0 -0
  71. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/DataOperation.py +0 -0
  72. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/Job.py +0 -0
  73. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/Network.py +0 -0
  74. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/Pilot.py +0 -0
  75. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/PilotSubmission.py +0 -0
  76. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/StorageOccupancy.py +0 -0
  77. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/WMSHistory.py +0 -0
  78. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/Types/__init__.py +0 -0
  79. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Client/__init__.py +0 -0
  80. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/ConfigTemplate.cfg +0 -0
  81. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/DB/AccountingDB.py +0 -0
  82. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/DB/AccountingDB.sql +0 -0
  83. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/DB/MultiAccountingDB.py +0 -0
  84. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/DB/__init__.py +0 -0
  85. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/DB/test/Test_AccountingDB.py +0 -0
  86. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Service/DataStoreHandler.py +0 -0
  87. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Service/ReportGeneratorHandler.py +0 -0
  88. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/Service/__init__.py +0 -0
  89. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/__init__.py +0 -0
  90. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/DBUtils.py +0 -0
  91. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/MainReporter.py +0 -0
  92. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/BaseReporter.py +0 -0
  93. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/DataOperationPlotter.py +0 -0
  94. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/JobPlotter.py +0 -0
  95. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/NetworkPlotter.py +0 -0
  96. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/PilotPlotter.py +0 -0
  97. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/PilotSubmissionPlotter.py +0 -0
  98. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/StorageOccupancyPlotter.py +0 -0
  99. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/WMSHistoryPlotter.py +0 -0
  100. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Plotters/__init__.py +0 -0
  101. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Policies/FilterExecutor.py +0 -0
  102. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Policies/JobPolicy.py +0 -0
  103. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/Policies/__init__.py +0 -0
  104. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/private/__init__.py +0 -0
  105. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/scripts/__init__.py +0 -0
  106. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/scripts/dirac_accounting_decode_fileid.py +0 -0
  107. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/AccountingSystem/scripts/dirac_admin_accounting_cli.py +0 -0
  108. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/Bdii2CSAgent.py +0 -0
  109. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/GOCDB2CSAgent.py +0 -0
  110. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/RucioSynchronizerAgent.py +0 -0
  111. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/VOMS2CSAgent.py +0 -0
  112. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/__init__.py +0 -0
  113. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Agent/test/Test_Bdii2CS.py +0 -0
  114. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/CSCLI.py +0 -0
  115. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/CSShellCLI.py +0 -0
  116. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Config.py +0 -0
  117. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/ConfigurationClient.py +0 -0
  118. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/ConfigurationData.py +0 -0
  119. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/CSGlobals.py +0 -0
  120. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/Operations.py +0 -0
  121. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/Path.py +0 -0
  122. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/Registry.py +0 -0
  123. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/Resources.py +0 -0
  124. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/ResourcesDefaults.py +0 -0
  125. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/__init__.py +0 -0
  126. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Helpers/test/Test_Helpers.py +0 -0
  127. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/LocalConfiguration.py +0 -0
  128. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/PathFinder.py +0 -0
  129. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/SyncPlugins/CERNLDAPSyncPlugin.py +0 -0
  130. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/SyncPlugins/DummySyncPlugin.py +0 -0
  131. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/SyncPlugins/__init__.py +0 -0
  132. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/Utilities.py +0 -0
  133. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/VOMS2CSSynchronizer.py +0 -0
  134. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/__init__.py +0 -0
  135. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/test/Test_LocalConfiguration.py +0 -0
  136. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Client/test/Test_PathFinder.py +0 -0
  137. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/ConfigTemplate.cfg +0 -0
  138. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Service/ConfigurationHandler.py +0 -0
  139. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Service/TornadoConfigurationHandler.py +0 -0
  140. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/Service/__init__.py +0 -0
  141. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/__init__.py +0 -0
  142. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/ConfigurationClient.py +0 -0
  143. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/ConfigurationData.py +0 -0
  144. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/Modificator.py +0 -0
  145. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/Refresher.py +0 -0
  146. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/RefresherBase.py +0 -0
  147. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/ServiceInterface.py +0 -0
  148. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/ServiceInterfaceBase.py +0 -0
  149. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/ServiceInterfaceTornado.py +0 -0
  150. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/TornadoRefresher.py +0 -0
  151. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/private/__init__.py +0 -0
  152. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/__init__.py +0 -0
  153. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_add_resources.py +0 -0
  154. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_add_shifter.py +0 -0
  155. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_add_site.py +0 -0
  156. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_check_config_options.py +0 -0
  157. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_sort_cs_sites.py +0 -0
  158. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_admin_voms_sync.py +0 -0
  159. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_configuration_cli.py +0 -0
  160. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_configuration_dump_local_cache.py +0 -0
  161. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/scripts/dirac_configuration_shell.py +0 -0
  162. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ConfigurationSystem/test/Test_agentOptions.py +0 -0
  163. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/API.py +0 -0
  164. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/AgentModule.py +0 -0
  165. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/AgentReactor.py +0 -0
  166. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/CLI.py +0 -0
  167. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/Client.py +0 -0
  168. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/DB.py +0 -0
  169. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/DIRACDB.py +0 -0
  170. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/ElasticDB.py +0 -0
  171. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/ExecutorMindHandler.py +0 -0
  172. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/ExecutorModule.py +0 -0
  173. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/ExecutorReactor.py +0 -0
  174. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/SQLAlchemyDB.py +0 -0
  175. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/Script.py +0 -0
  176. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/__init__.py +0 -0
  177. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/private/ModuleLoader.py +0 -0
  178. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Base/private/__init__.py +0 -0
  179. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/AuthManager.py +0 -0
  180. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/MessageClient.py +0 -0
  181. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/RPCClient.py +0 -0
  182. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/RequestHandler.py +0 -0
  183. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/ServiceReactor.py +0 -0
  184. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/ThreadConfig.py +0 -0
  185. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/TransferClient.py +0 -0
  186. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/__init__.py +0 -0
  187. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/BaseClient.py +0 -0
  188. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/FileHelper.py +0 -0
  189. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/GatewayService.py +0 -0
  190. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/InnerRPCClient.py +0 -0
  191. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/LockManager.py +0 -0
  192. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/MessageBroker.py +0 -0
  193. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/MessageFactory.py +0 -0
  194. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Protocols.py +0 -0
  195. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Service.py +0 -0
  196. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/ServiceConfiguration.py +0 -0
  197. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/TransportPool.py +0 -0
  198. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/BaseTransport.py +0 -0
  199. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/M2SSLTransport.py +0 -0
  200. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/PlainTransport.py +0 -0
  201. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/SSL/FakeSocket.py +0 -0
  202. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/SSL/M2Utils.py +0 -0
  203. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/SSL/__init__.py +0 -0
  204. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/SSLTransport.py +0 -0
  205. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/__init__.py +0 -0
  206. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/test/README.md +0 -0
  207. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/test/Test_SSLTransport.py +0 -0
  208. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/test/__init__.py +0 -0
  209. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/Transports/test/proxy.pem +0 -0
  210. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/private/__init__.py +0 -0
  211. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/DISET/test/Test_AuthManager.py +0 -0
  212. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/LCG/GGUSTicketsClient.py +0 -0
  213. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/LCG/GOCDBClient.py +0 -0
  214. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/LCG/__init__.py +0 -0
  215. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/LCG/test/Test_LCG.py +0 -0
  216. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/DiracX.py +0 -0
  217. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/IAMService.py +0 -0
  218. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/Locations.py +0 -0
  219. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/Properties.py +0 -0
  220. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/ProxyFile.py +0 -0
  221. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/ProxyInfo.py +0 -0
  222. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/Utilities.py +0 -0
  223. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/VOMS.py +0 -0
  224. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/VOMSService.py +0 -0
  225. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/__init__.py +0 -0
  226. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/X509CRL.py +0 -0
  227. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/X509Certificate.py +0 -0
  228. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/X509Chain.py +0 -0
  229. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/X509Request.py +0 -0
  230. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/__init__.py +0 -0
  231. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/m2crypto/asn1_utils.py +0 -0
  232. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/Test_DiracX.py +0 -0
  233. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/Test_X509Certificate.py +0 -0
  234. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/Test_X509Chain.py +0 -0
  235. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/Test_X509Request.py +0 -0
  236. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/__init__.py +0 -0
  237. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/b236481c.0 +0 -0
  238. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/ca.cert.pem +0 -0
  239. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/ca.key.pem +0 -0
  240. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/crlnumber +0 -0
  241. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/index.txt +0 -0
  242. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/index.txt.attr +0 -0
  243. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/index.txt.attr.old +0 -0
  244. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/index.txt.old +0 -0
  245. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/newcerts/1000.pem +0 -0
  246. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/newcerts/1001.pem +0 -0
  247. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/newcerts/1002.pem +0 -0
  248. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/openssl_config_ca.cnf +0 -0
  249. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/serial +0 -0
  250. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/ca/serial.old +0 -0
  251. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/host/hostcert.pem +0 -0
  252. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/host/hostkey.pem +0 -0
  253. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/host/hostkey.pem.bak +0 -0
  254. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/host/openssl_config_host.cnf +0 -0
  255. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/host/request.csr.pem +0 -0
  256. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/key/encrypted_key_pass_0000.pem +0 -0
  257. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/user/openssl_config_user.cnf +0 -0
  258. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/user/request.csr.pem +0 -0
  259. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/user/usercert.pem +0 -0
  260. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/user/userkey.pem +0 -0
  261. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/voms/README +0 -0
  262. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/certs/voms/proxy.pem +0 -0
  263. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/test_diracx_token_from_pem.py +0 -0
  264. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Security/test/x509TestUtilities.py +0 -0
  265. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Client/ClientSelector.py +0 -0
  266. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Client/TornadoClient.py +0 -0
  267. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Client/__init__.py +0 -0
  268. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Client/private/__init__.py +0 -0
  269. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/HandlerManager.py +0 -0
  270. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/TornadoREST.py +0 -0
  271. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/TornadoServer.py +0 -0
  272. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/TornadoService.py +0 -0
  273. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/__init__.py +0 -0
  274. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/private/BaseRequestHandler.py +0 -0
  275. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/Server/private/__init__.py +0 -0
  276. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/__init__.py +0 -0
  277. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/scripts/__init__.py +0 -0
  278. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/scripts/tornado_start_CS.py +0 -0
  279. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Tornado/scripts/tornado_start_all.py +0 -0
  280. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Adler.py +0 -0
  281. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ClassAd/ClassAdLight.py +0 -0
  282. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ClassAd/__init__.py +0 -0
  283. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/CountryMapping.py +0 -0
  284. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DAG.py +0 -0
  285. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DEncode.py +0 -0
  286. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DErrno.py +0 -0
  287. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DIRACSingleton.py +0 -0
  288. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Decorators.py +0 -0
  289. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Devloader.py +0 -0
  290. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DictCache.py +0 -0
  291. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Dictionaries.py +0 -0
  292. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/DirectoryExplorer.py +0 -0
  293. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/EventDispatcher.py +0 -0
  294. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ExecutorDispatcher.py +0 -0
  295. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Extensions.py +0 -0
  296. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/File.py +0 -0
  297. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Glue2.py +0 -0
  298. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/BarGraph.py +0 -0
  299. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/CurveGraph.py +0 -0
  300. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/Dwatermark.png +0 -0
  301. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/Graph.py +0 -0
  302. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/GraphData.py +0 -0
  303. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py +0 -0
  304. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/Legend.py +0 -0
  305. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/LineGraph.py +0 -0
  306. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/Palette.py +0 -0
  307. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/PieGraph.py +0 -0
  308. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/PlotBase.py +0 -0
  309. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py +0 -0
  310. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Graphs/__init__.py +0 -0
  311. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Grid.py +0 -0
  312. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/JDL.py +0 -0
  313. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/JEncode.py +0 -0
  314. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/List.py +0 -0
  315. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/LockRing.py +0 -0
  316. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Mail.py +0 -0
  317. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/MixedEncode.py +0 -0
  318. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Network.py +0 -0
  319. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ObjectLoader.py +0 -0
  320. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Os.py +0 -0
  321. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Pfn.py +0 -0
  322. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Platform.py +0 -0
  323. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Plotting/DataCache.py +0 -0
  324. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Plotting/FileCoding.py +0 -0
  325. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Plotting/Plots.py +0 -0
  326. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Plotting/TypeLoader.py +0 -0
  327. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Plotting/__init__.py +0 -0
  328. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/PrettyPrint.py +0 -0
  329. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ProcessPool.py +0 -0
  330. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Profiler.py +0 -0
  331. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/PromptUser.py +0 -0
  332. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Proxy.py +0 -0
  333. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ReturnValues.py +0 -0
  334. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Shifter.py +0 -0
  335. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/SiteSEMapping.py +0 -0
  336. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/StateMachine.py +0 -0
  337. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Subprocess.py +0 -0
  338. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ThreadPool.py +0 -0
  339. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ThreadSafe.py +0 -0
  340. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/ThreadScheduler.py +0 -0
  341. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/TimeUtilities.py +0 -0
  342. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/Version.py +0 -0
  343. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/__init__.py +0 -0
  344. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/exceptions.py +0 -0
  345. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/ProcessesCreator.py +0 -0
  346. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Adler.py +0 -0
  347. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_DAG.py +0 -0
  348. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Decorator.py +0 -0
  349. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Dictionaries.py +0 -0
  350. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Encode.py +0 -0
  351. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_ExecutorDispatcher.py +0 -0
  352. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Extensions.py +0 -0
  353. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_File.py +0 -0
  354. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_JDL.py +0 -0
  355. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Mail.py +0 -0
  356. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Network.py +0 -0
  357. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_ObjectLoader.py +0 -0
  358. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Pfn.py +0 -0
  359. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_ProcessPool.py +0 -0
  360. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Profiler.py +0 -0
  361. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_ReturnValues.py +0 -0
  362. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_Subprocess.py +0 -0
  363. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/Test_entrypoints.py +0 -0
  364. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Utilities/test/__init__.py +0 -0
  365. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/Module.py +0 -0
  366. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/Parameter.py +0 -0
  367. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/Step.py +0 -0
  368. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/Utility.py +0 -0
  369. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/WFEditor/__init__.py +0 -0
  370. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/Workflow.py +0 -0
  371. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/WorkflowReader.py +0 -0
  372. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/__init__.py +0 -0
  373. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/test/JobSamples.py +0 -0
  374. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/test/ModulesSamples.py +0 -0
  375. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/test/WFSamples.py +0 -0
  376. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/test/__init__.py +0 -0
  377. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/Workflow/test/step_g.py +0 -0
  378. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/__init__.py +0 -0
  379. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/__init__.py +0 -0
  380. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_agent.py +0 -0
  381. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_apptainer_exec.py +0 -0
  382. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_cert_convert.py +0 -0
  383. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_configure.py +0 -0
  384. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_executor.py +0 -0
  385. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_generate_cas.py +0 -0
  386. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_generate_crls.py +0 -0
  387. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_info.py +0 -0
  388. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_install_db.py +0 -0
  389. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_install_web_portal.py +0 -0
  390. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_platform.py +0 -0
  391. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_service.py +0 -0
  392. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_setup_site.py +0 -0
  393. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/dirac_version.py +0 -0
  394. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/scripts/install_full.cfg +0 -0
  395. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Core/test/Test_API.py +0 -0
  396. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/FTS3Agent.py +0 -0
  397. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/ArchiveFiles.py +0 -0
  398. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/CheckMigration.py +0 -0
  399. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/DMSRequestOperationsBase.py +0 -0
  400. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/MoveReplica.py +0 -0
  401. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/PhysicalRemoval.py +0 -0
  402. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/PutAndRegister.py +0 -0
  403. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/ReTransfer.py +0 -0
  404. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/RegisterFile.py +0 -0
  405. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/RegisterReplica.py +0 -0
  406. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/RemoveFile.py +0 -0
  407. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/RemoveReplica.py +0 -0
  408. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/ReplicateAndRegister.py +0 -0
  409. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/StagingCallback.py +0 -0
  410. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/__init__.py +0 -0
  411. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/test/Test_ArchiveFiles.py +0 -0
  412. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/test/Test_CheckMigration.py +0 -0
  413. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/test/Test_ReplicateAndRegister.py +0 -0
  414. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/RequestOperations/test/Test_RequestOperations.py +0 -0
  415. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Agent/__init__.py +0 -0
  416. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/CmdDirCompletion/AbstractFileSystem.py +0 -0
  417. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/CmdDirCompletion/DirectoryCompletion.py +0 -0
  418. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/CmdDirCompletion/__init__.py +0 -0
  419. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/ConsistencyInspector.py +0 -0
  420. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/DataIntegrityClient.py +0 -0
  421. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/DirectoryListing.py +0 -0
  422. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FTS3Client.py +0 -0
  423. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FTS3File.py +0 -0
  424. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FTS3Operation.py +0 -0
  425. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FailoverTransfer.py +0 -0
  426. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/FileCatalogClientCLI.py +0 -0
  427. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/MetaQuery.py +0 -0
  428. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/S3GatewayClient.py +0 -0
  429. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/__init__.py +0 -0
  430. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/Test_Client_DataManagementSystem.py +0 -0
  431. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/Test_FTS3Objects.py +0 -0
  432. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/Test_scitag.py +0 -0
  433. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/__init__.py +0 -0
  434. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/mock_DM.py +0 -0
  435. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Client/test/new_dir_completion.py +0 -0
  436. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/ConfigTemplate.cfg +0 -0
  437. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/DataIntegrityDB.py +0 -0
  438. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/DataIntegrityDB.sql +0 -0
  439. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FTS3DB.py +0 -0
  440. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FTS3DB.sql +0 -0
  441. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/DatasetManager.py +0 -0
  442. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DatasetManager/__init__.py +0 -0
  443. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryClosure.py +0 -0
  444. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryFlatTree.py +0 -0
  445. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryLevelTree.py +0 -0
  446. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryNodeTree.py +0 -0
  447. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectorySimpleTree.py +0 -0
  448. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/DirectoryTreeBase.py +0 -0
  449. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryManager/__init__.py +0 -0
  450. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryMetadata/DirectoryMetadata.py +0 -0
  451. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryMetadata/MultiVODirectoryMetadata.py +0 -0
  452. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/DirectoryMetadata/__init__.py +0 -0
  453. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileManager/FileManager.py +0 -0
  454. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileManager/FileManagerBase.py +0 -0
  455. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileManager/FileManagerFlat.py +0 -0
  456. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileManager/FileManagerPs.py +0 -0
  457. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileManager/__init__.py +0 -0
  458. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileMetadata/FileMetadata.py +0 -0
  459. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileMetadata/MultiVOFileMetadata.py +0 -0
  460. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/FileMetadata/__init__.py +0 -0
  461. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SEManager/SEManagerBase.py +0 -0
  462. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SEManager/SEManagerDB.py +0 -0
  463. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SEManager/__init__.py +0 -0
  464. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/DirectorySecurityManager.py +0 -0
  465. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/DirectorySecurityManagerWithDelete.py +0 -0
  466. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/FullSecurityManager.py +0 -0
  467. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/NoSecurityManager.py +0 -0
  468. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/SecurityManagerBase.py +0 -0
  469. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/VOMSSecurityManager.py +0 -0
  470. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/__init__.py +0 -0
  471. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/SecurityManager/test/Test_VOMSSecurityManager.py +0 -0
  472. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/UserGroupManager/UserAndGroupManagerBase.py +0 -0
  473. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/UserGroupManager/UserAndGroupManagerCS.py +0 -0
  474. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/UserGroupManager/UserAndGroupManagerDB.py +0 -0
  475. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/UserGroupManager/__init__.py +0 -0
  476. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/Utilities.py +0 -0
  477. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/__init__.py +0 -0
  478. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogComponents/test/Test_DataManagement_FileCatalogComponents.py +0 -0
  479. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogDB.py +0 -0
  480. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogDB.sql +0 -0
  481. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/FileCatalogWithFkAndPsDB.sql +0 -0
  482. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/__init__.py +0 -0
  483. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/test/FTS3TestUtils.py +0 -0
  484. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/DB/test/Test_FTS3DB.py +0 -0
  485. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/DataIntegrityHandler.py +0 -0
  486. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/FTS3ManagerHandler.py +0 -0
  487. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/FileCatalogHandler.py +0 -0
  488. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/S3GatewayHandler.py +0 -0
  489. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/StorageElementHandler.py +0 -0
  490. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/TornadoDataIntegrityHandler.py +0 -0
  491. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/TornadoFTS3ManagerHandler.py +0 -0
  492. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/TornadoFileCatalogHandler.py +0 -0
  493. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/TornadoS3GatewayHandler.py +0 -0
  494. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/__init__.py +0 -0
  495. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Service/test/Test_Service.py +0 -0
  496. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Utilities/DMSHelpers.py +0 -0
  497. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Utilities/ResolveSE.py +0 -0
  498. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Utilities/__init__.py +0 -0
  499. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Utilities/test/Test_resolveSE.py +0 -0
  500. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/Utilities/test/__init__.py +0 -0
  501. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/__init__.py +0 -0
  502. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/FTS3Plugins/DefaultFTS3Plugin.py +0 -0
  503. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/FTS3Plugins/__init__.py +0 -0
  504. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/FTS3Plugins/test/Test_DefaultFTS3Plugin.py +0 -0
  505. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/FTS3Utilities.py +0 -0
  506. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/HttpStorageAccessHandler.py +0 -0
  507. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/__init__.py +0 -0
  508. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/test/Test_FTS3Utilities.py +0 -0
  509. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/private/test/__init__.py +0 -0
  510. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/__init__.py +0 -0
  511. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_admin_allow_se.py +0 -0
  512. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_admin_ban_se.py +0 -0
  513. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_admin_user_quota.py +0 -0
  514. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_add_file.py +0 -0
  515. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_catalog_metadata.py +0 -0
  516. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_change_replica_status.py +0 -0
  517. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_clean_directory.py +0 -0
  518. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_create_archive_request.py +0 -0
  519. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_create_moving_request.py +0 -0
  520. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_create_removal_request.py +0 -0
  521. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_data_size.py +0 -0
  522. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_directory_sync.py +0 -0
  523. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_filecatalog_cli.py +0 -0
  524. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_find_lfns.py +0 -0
  525. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_move_replica_request.py +0 -0
  526. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_protocol_matrix.py +0 -0
  527. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_put_and_register_request.py +0 -0
  528. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_remove_catalog_files.py +0 -0
  529. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_remove_catalog_replicas.py +0 -0
  530. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_remove_files.py +0 -0
  531. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_remove_replicas.py +0 -0
  532. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_replica_metadata.py +0 -0
  533. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_replicate_and_register_request.py +0 -0
  534. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_resolve_guid.py +0 -0
  535. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_set_replica_status.py +0 -0
  536. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_show_se_status.py +0 -0
  537. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_user_lfns.py +0 -0
  538. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/DataManagementSystem/scripts/dirac_dms_user_quota.py +0 -0
  539. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/API/AuthHandler.py +0 -0
  540. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/API/__init__.py +0 -0
  541. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Agent/ComponentSupervisionAgent.py +0 -0
  542. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Agent/ProxyRenewalAgent.py +0 -0
  543. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Agent/__init__.py +0 -0
  544. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Agent/test/Test_ComponentSupervisionAgent.py +0 -0
  545. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/BundleDeliveryClient.py +0 -0
  546. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/ComponentInstaller.py +0 -0
  547. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/ComponentMonitoringClient.py +0 -0
  548. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/Logger.py +0 -0
  549. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/NotificationClient.py +0 -0
  550. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/ProxyGeneration.py +0 -0
  551. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/ProxyManagerClient.py +0 -0
  552. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/ProxyUpload.py +0 -0
  553. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/SecurityLogClient.py +0 -0
  554. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/SystemAdministratorClient.py +0 -0
  555. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/SystemAdministratorClientCLI.py +0 -0
  556. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/SystemAdministratorIntegrator.py +0 -0
  557. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/TokenManagerClient.py +0 -0
  558. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/UserProfileClient.py +0 -0
  559. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/__init__.py +0 -0
  560. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Client/test/Test_ComponentInstaller.py +0 -0
  561. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/ConfigTemplate.cfg +0 -0
  562. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/AuthDB.py +0 -0
  563. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/AuthDB.sql +0 -0
  564. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/InstalledComponentsDB.py +0 -0
  565. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/InstalledComponentsDB.sql +0 -0
  566. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/ProxyDB.py +0 -0
  567. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/ProxyDB.sql +0 -0
  568. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/TokenDB.py +0 -0
  569. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/TokenDB.sql +0 -0
  570. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/UserProfileDB.py +0 -0
  571. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/UserProfileDB.sql +0 -0
  572. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/DB/__init__.py +0 -0
  573. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/BundleDeliveryHandler.py +0 -0
  574. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/ComponentMonitoringHandler.py +0 -0
  575. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/NotificationHandler.py +0 -0
  576. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/ProxyManagerHandler.py +0 -0
  577. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/SecurityLoggingHandler.py +0 -0
  578. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TokenManagerHandler.py +0 -0
  579. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TornadoComponentMonitoringHandler.py +0 -0
  580. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TornadoNotificationHandler.py +0 -0
  581. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TornadoProxyManagerHandler.py +0 -0
  582. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TornadoTokenManagerHandler.py +0 -0
  583. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/TornadoUserProfileManagerHandler.py +0 -0
  584. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/UserProfileManagerHandler.py +0 -0
  585. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Service/__init__.py +0 -0
  586. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Utilities/MonitoringUtilities.py +0 -0
  587. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Utilities/TokenManagementUtilities.py +0 -0
  588. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Utilities/__init__.py +0 -0
  589. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Utilities/diracx.py +0 -0
  590. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/Utilities/test/Test_TokenManagementUtilities.py +0 -0
  591. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/__init__.py +0 -0
  592. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/SecurityFileLog.py +0 -0
  593. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/__init__.py +0 -0
  594. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/AuthServer.py +0 -0
  595. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/__init__.py +0 -0
  596. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/grants/AuthorizationCode.py +0 -0
  597. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/grants/DeviceFlow.py +0 -0
  598. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/grants/RefreshToken.py +0 -0
  599. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/grants/RevokeToken.py +0 -0
  600. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/grants/__init__.py +0 -0
  601. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/utils/Clients.py +0 -0
  602. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/utils/Requests.py +0 -0
  603. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/utils/Tokens.py +0 -0
  604. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/utils/Utilities.py +0 -0
  605. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/authorization/utils/__init__.py +0 -0
  606. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Formatter/BaseFormatter.py +0 -0
  607. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Formatter/ColoredBaseFormatter.py +0 -0
  608. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Formatter/MicrosecondJsonFormatter.py +0 -0
  609. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Formatter/__init__.py +0 -0
  610. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Handler/MessageQueueHandler.py +0 -0
  611. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Handler/__init__.py +0 -0
  612. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/LogLevels.py +0 -0
  613. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/Logging.py +0 -0
  614. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/LoggingContext.py +0 -0
  615. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/LoggingRoot.py +0 -0
  616. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/__init__.py +0 -0
  617. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/TestLogUtilities.py +0 -0
  618. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_LogLevels.py +0 -0
  619. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_LoggingRoot_ConfigForExternalLibs.py +0 -0
  620. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_Backends.py +0 -0
  621. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_ContextVars.py +0 -0
  622. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_CreationLogRecord.py +0 -0
  623. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_FormatOptions.py +0 -0
  624. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_GetSubLogger.py +0 -0
  625. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/Test_Logging_Levels.py +0 -0
  626. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/private/standardLogging/test/__init__.py +0 -0
  627. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/__init__.py +0 -0
  628. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_get_CAs.py +0 -0
  629. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_get_proxy.py +0 -0
  630. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_proxy_upload.py +0 -0
  631. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_sysadmin_cli.py +0 -0
  632. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_update_instance.py +0 -0
  633. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_update_pilot.py +0 -0
  634. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_admin_users_with_proxy.py +0 -0
  635. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_diracx_whoami.py +0 -0
  636. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_install_component.py +0 -0
  637. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_login.py +0 -0
  638. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_logout.py +0 -0
  639. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_proxy_destroy.py +0 -0
  640. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_proxy_get_uploaded_info.py +0 -0
  641. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_proxy_info.py +0 -0
  642. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_proxy_init.py +0 -0
  643. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_restart_component.py +0 -0
  644. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_start_component.py +0 -0
  645. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_status_component.py +0 -0
  646. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_stop_component.py +0 -0
  647. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_sys_sendmail.py +0 -0
  648. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/FrameworkSystem/scripts/dirac_uninstall_component.py +0 -0
  649. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/DiracAdmin.py +0 -0
  650. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/__init__.py +0 -0
  651. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/test/Test_DIRAC.py +0 -0
  652. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/test/Test_JobAPI.py +0 -0
  653. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/test/testWF.jdl +0 -0
  654. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/test/testWF.xml +0 -0
  655. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/API/test/testWFSIO.jdl +0 -0
  656. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/Utilities/DCommands.py +0 -0
  657. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/Utilities/DConfigCache.py +0 -0
  658. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/__init__.py +0 -0
  659. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/__init__.py +0 -0
  660. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dcd.py +0 -0
  661. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dchgrp.py +0 -0
  662. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dchmod.py +0 -0
  663. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dchown.py +0 -0
  664. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dconfig.py +0 -0
  665. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dfind.py +0 -0
  666. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dget.py +0 -0
  667. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dgetenv.py +0 -0
  668. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_add_group.py +0 -0
  669. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_add_host.py +0 -0
  670. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_add_user.py +0 -0
  671. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_allow_site.py +0 -0
  672. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_ban_site.py +0 -0
  673. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_ce_info.py +0 -0
  674. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_delete_user.py +0 -0
  675. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_banned_sites.py +0 -0
  676. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_job_pilot_output.py +0 -0
  677. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_job_pilots.py +0 -0
  678. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_pilot_info.py +0 -0
  679. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_pilot_logging_info.py +0 -0
  680. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_pilot_output.py +0 -0
  681. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_get_site_mask.py +0 -0
  682. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_list_hosts.py +0 -0
  683. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_list_users.py +0 -0
  684. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_modify_user.py +0 -0
  685. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_pilot_summary.py +0 -0
  686. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_reset_job.py +0 -0
  687. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_set_site_protocols.py +0 -0
  688. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_site_info.py +0 -0
  689. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_site_mask_logging.py +0 -0
  690. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_admin_sync_users_from_file.py +0 -0
  691. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_get_file.py +0 -0
  692. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_lfn_accessURL.py +0 -0
  693. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_lfn_metadata.py +0 -0
  694. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_lfn_replicas.py +0 -0
  695. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_pfn_accessURL.py +0 -0
  696. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_pfn_metadata.py +0 -0
  697. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_dms_replicate_lfn.py +0 -0
  698. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_framework_ping_service.py +0 -0
  699. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_framework_self_ping.py +0 -0
  700. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_utils_file_adler.py +0 -0
  701. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_utils_file_md5.py +0 -0
  702. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_attributes.py +0 -0
  703. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_delete.py +0 -0
  704. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_get_input.py +0 -0
  705. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_get_jdl.py +0 -0
  706. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_get_output.py +0 -0
  707. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_get_output_data.py +0 -0
  708. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_kill.py +0 -0
  709. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_logging_info.py +0 -0
  710. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_parameters.py +0 -0
  711. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_peek.py +0 -0
  712. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_reschedule.py +0 -0
  713. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_status.py +0 -0
  714. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_job_submit.py +0 -0
  715. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_jobs_select_output_search.py +0 -0
  716. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dirac_wms_select_jobs.py +0 -0
  717. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dkill.py +0 -0
  718. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dlogging.py +0 -0
  719. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dls.py +0 -0
  720. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dmeta.py +0 -0
  721. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dmkdir.py +0 -0
  722. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/doutput.py +0 -0
  723. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dput.py +0 -0
  724. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dpwd.py +0 -0
  725. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/drepl.py +0 -0
  726. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dreplicas.py +0 -0
  727. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/drm.py +0 -0
  728. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/drmdir.py +0 -0
  729. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dsize.py +0 -0
  730. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dstat.py +0 -0
  731. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Interfaces/scripts/dsub.py +0 -0
  732. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/DataOperationSender.py +0 -0
  733. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/MonitoringClient.py +0 -0
  734. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/MonitoringReporter.py +0 -0
  735. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/ServerUtils.py +0 -0
  736. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/AgentMonitoring.py +0 -0
  737. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/BaseType.py +0 -0
  738. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/DataOperation.py +0 -0
  739. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/FailedDataOperation.py +0 -0
  740. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/PilotSubmissionMonitoring.py +0 -0
  741. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/PilotsHistory.py +0 -0
  742. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/RMSMonitoring.py +0 -0
  743. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/ServiceMonitoring.py +0 -0
  744. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/WMSHistory.py +0 -0
  745. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/Types/__init__.py +0 -0
  746. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/WebAppClient.py +0 -0
  747. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Client/__init__.py +0 -0
  748. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/ConfigTemplate.cfg +0 -0
  749. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/DB/MonitoringDB.py +0 -0
  750. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/DB/__init__.py +0 -0
  751. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/DB/test/Test_monitoringdb.py +0 -0
  752. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Service/MonitoringHandler.py +0 -0
  753. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Service/TornadoMonitoringHandler.py +0 -0
  754. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Service/WebAppHandler.py +0 -0
  755. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/Service/__init__.py +0 -0
  756. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/__init__.py +0 -0
  757. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/DBUtils.py +0 -0
  758. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/MainReporter.py +0 -0
  759. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/Plotters/BasePlotter.py +0 -0
  760. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/Plotters/RMSMonitoringPlotter.py +0 -0
  761. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/Plotters/WMSHistoryPlotter.py +0 -0
  762. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/Plotters/__init__.py +0 -0
  763. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/MonitoringSystem/private/__init__.py +0 -0
  764. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Client/ProductionClient.py +0 -0
  765. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Client/ProductionStep.py +0 -0
  766. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Client/__init__.py +0 -0
  767. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/ConfigTemplate.cfg +0 -0
  768. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/DB/ProductionDB.py +0 -0
  769. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/DB/ProductionDB.sql +0 -0
  770. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/DB/__init__.py +0 -0
  771. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Service/ProductionManagerHandler.py +0 -0
  772. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Service/TornadoProductionManagerHandler.py +0 -0
  773. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Service/__init__.py +0 -0
  774. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Utilities/ProdTransManager.py +0 -0
  775. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Utilities/ProdValidator.py +0 -0
  776. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Utilities/StateMachine.py +0 -0
  777. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/Utilities/__init__.py +0 -0
  778. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/__init__.py +0 -0
  779. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/__init__.py +0 -0
  780. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_add_trans.py +0 -0
  781. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_clean.py +0 -0
  782. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_complete.py +0 -0
  783. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_delete.py +0 -0
  784. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_get.py +0 -0
  785. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_get_all.py +0 -0
  786. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_get_description.py +0 -0
  787. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_get_trans.py +0 -0
  788. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_start.py +0 -0
  789. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ProductionSystem/scripts/dirac_prod_stop.py +0 -0
  790. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/CleanReqDBAgent.py +0 -0
  791. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/RequestExecutingAgent.py +0 -0
  792. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/RequestOperations/ForwardDISET.py +0 -0
  793. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/RequestOperations/__init__.py +0 -0
  794. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/RequestOperations/test/ForwardDISETTests.py +0 -0
  795. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Agent/__init__.py +0 -0
  796. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/File.py +0 -0
  797. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/Operation.py +0 -0
  798. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/ReqClient.py +0 -0
  799. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/Request.py +0 -0
  800. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/__init__.py +0 -0
  801. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/test/Test_File.py +0 -0
  802. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/test/Test_Operation.py +0 -0
  803. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Client/test/Test_Request.py +0 -0
  804. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/ConfigTemplate.cfg +0 -0
  805. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/ReqDB.sql +0 -0
  806. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/RequestDB.py +0 -0
  807. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/__init__.py +0 -0
  808. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/test/RMSTestScenari.py +0 -0
  809. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/test/Test_RequestDB.py +0 -0
  810. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/DB/test/__init__.py +0 -0
  811. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Service/ReqManagerHandler.py +0 -0
  812. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Service/ReqProxyHandler.py +0 -0
  813. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Service/TornadoReqManagerHandler.py +0 -0
  814. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Service/__init__.py +0 -0
  815. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/Service/test/OperationHandlerBaseTests.py +0 -0
  816. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/__init__.py +0 -0
  817. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/JSONUtils.py +0 -0
  818. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/OperationHandlerBase.py +0 -0
  819. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/RequestValidator.py +0 -0
  820. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/__init__.py +0 -0
  821. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/test/Test_OperationHandlerBase.py +0 -0
  822. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/test/Test_RequestTask.py +0 -0
  823. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/private/test/Test_RequestValidator.py +0 -0
  824. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/scripts/__init__.py +0 -0
  825. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/scripts/dirac_rms_list_req_cache.py +0 -0
  826. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/scripts/dirac_rms_reqdb_summary.py +0 -0
  827. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/RequestManagementSystem/scripts/dirac_rms_request.py +0 -0
  828. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/CacheFeederAgent.py +0 -0
  829. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/ElementInspectorAgent.py +0 -0
  830. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/EmailAgent.py +0 -0
  831. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/RucioRSSAgent.py +0 -0
  832. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/SiteInspectorAgent.py +0 -0
  833. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/SummarizeLogsAgent.py +0 -0
  834. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/TokenAgent.py +0 -0
  835. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/__init__.py +0 -0
  836. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/test/Test_Agent_ElementInspectorAgent.py +0 -0
  837. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/test/Test_Agent_ResourceStatusSystem.py +0 -0
  838. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Agent/test/Test_Agent_SiteInspectorAgent.py +0 -0
  839. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/PublisherClient.py +0 -0
  840. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/ResourceManagementClient.py +0 -0
  841. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/ResourceStatus.py +0 -0
  842. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/ResourceStatusClient.py +0 -0
  843. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/SiteStatus.py +0 -0
  844. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Client/__init__.py +0 -0
  845. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/Command.py +0 -0
  846. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/CommandCaller.py +0 -0
  847. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/DowntimeCommand.py +0 -0
  848. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/FreeDiskSpaceCommand.py +0 -0
  849. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/GGUSTicketsCommand.py +0 -0
  850. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/GOCDBSyncCommand.py +0 -0
  851. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/JobCommand.py +0 -0
  852. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/MacroCommand.py +0 -0
  853. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/PilotCommand.py +0 -0
  854. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/PropagationCommand.py +0 -0
  855. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/TransferCommand.py +0 -0
  856. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/__init__.py +0 -0
  857. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/test/Test_RSS_Command_GOCDBStatusCommand.py +0 -0
  858. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Command/test/Test_RSS_Command_GOCDBSyncCommand.py +0 -0
  859. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/ConfigTemplate.cfg +0 -0
  860. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/DB/ResourceManagementDB.py +0 -0
  861. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/DB/ResourceManagementDB.sql +0 -0
  862. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/DB/ResourceStatusDB.py +0 -0
  863. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/DB/ResourceStatusDB.sql +0 -0
  864. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/DB/__init__.py +0 -0
  865. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/AlwaysActivePolicy.py +0 -0
  866. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/AlwaysBannedPolicy.py +0 -0
  867. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/AlwaysDegradedPolicy.py +0 -0
  868. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/AlwaysProbingPolicy.py +0 -0
  869. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/CEAvailabilityPolicy.py +0 -0
  870. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/Configurations.py +0 -0
  871. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/DowntimePolicy.py +0 -0
  872. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/FreeDiskSpacePolicy.py +0 -0
  873. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/GGUSTicketsPolicy.py +0 -0
  874. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/JobDoneRatioPolicy.py +0 -0
  875. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/JobEfficiencyPolicy.py +0 -0
  876. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/JobRunningMatchedRatioPolicy.py +0 -0
  877. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/JobRunningWaitingRatioPolicy.py +0 -0
  878. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/PilotEfficiencyPolicy.py +0 -0
  879. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/PropagationPolicy.py +0 -0
  880. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/__init__.py +0 -0
  881. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_AlwaysActivePolicy.py +0 -0
  882. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_CEAvailabilityPolicy.py +0 -0
  883. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_Configurations.py +0 -0
  884. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_DTPolicy.py +0 -0
  885. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_FreeDiskSpacePolicy.py +0 -0
  886. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_GGUSTicketsPolicy.py +0 -0
  887. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_JobDoneRatioPolicy.py +0 -0
  888. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_JobEfficiencyPolicy.py +0 -0
  889. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_JobRunningMatchedRatioPolicy.py +0 -0
  890. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_JobRunningWaitingRatioPolicy.py +0 -0
  891. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Policy/test/Test_RSS_Policy_PilotEfficiencyPolicy.py +0 -0
  892. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/BaseAction.py +0 -0
  893. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/EmailAction.py +0 -0
  894. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/LogPolicyResultAction.py +0 -0
  895. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/LogStatusAction.py +0 -0
  896. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/SlackAction.py +0 -0
  897. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/Actions/__init__.py +0 -0
  898. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/PDP.py +0 -0
  899. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/PEP.py +0 -0
  900. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/PolicyBase.py +0 -0
  901. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/PolicyCaller.py +0 -0
  902. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/StateMachine.py +0 -0
  903. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/__init__.py +0 -0
  904. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/PolicySystem/test/Test_PolicySystem.py +0 -0
  905. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/PublisherHandler.py +0 -0
  906. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/ResourceManagementHandler.py +0 -0
  907. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/ResourceStatusHandler.py +0 -0
  908. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/TornadoPublisherHandler.py +0 -0
  909. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/TornadoResourceManagementHandler.py +0 -0
  910. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/TornadoResourceStatusHandler.py +0 -0
  911. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Service/__init__.py +0 -0
  912. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/CSHelpers.py +0 -0
  913. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/InfoGetter.py +0 -0
  914. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/RSSCache.py +0 -0
  915. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/RSSCacheNoThread.py +0 -0
  916. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/RssConfiguration.py +0 -0
  917. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/Synchronizer.py +0 -0
  918. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/Utils.py +0 -0
  919. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/Utilities/__init__.py +0 -0
  920. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/__init__.py +0 -0
  921. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/__init__.py +0 -0
  922. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_list_status.py +0 -0
  923. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_query_db.py +0 -0
  924. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_query_dtcache.py +0 -0
  925. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_set_status.py +0 -0
  926. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_set_token.py +0 -0
  927. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/ResourceStatusSystem/scripts/dirac_rss_sync.py +0 -0
  928. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/DummyPlugin.py +0 -0
  929. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/FCConditionBasePlugin.py +0 -0
  930. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/FilenamePlugin.py +0 -0
  931. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/ProxyPlugin.py +0 -0
  932. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/__init__.py +0 -0
  933. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/test/Test_FilenamePlugin.py +0 -0
  934. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/test/Test_ProxyPlugin.py +0 -0
  935. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/ConditionPlugins/test/__init__.py +0 -0
  936. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/FCConditionParser.py +0 -0
  937. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/FileCatalog.py +0 -0
  938. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/FileCatalogClientBase.py +0 -0
  939. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/FileCatalogFactory.py +0 -0
  940. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/PoolXMLCatalog.py +0 -0
  941. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/PoolXMLFile.py +0 -0
  942. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/RucioFileCatalogClient.py +0 -0
  943. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/TSCatalogClient.py +0 -0
  944. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/__init__.py +0 -0
  945. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/test/Test_FCConditionParser.py +0 -0
  946. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/test/Test_FileCatalog.py +0 -0
  947. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/test/Test_RucioFileCatalogClient.py +0 -0
  948. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/test/__init__.py +0 -0
  949. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Catalog/test/mock_FC.py +0 -0
  950. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/AREXComputingElement.py +0 -0
  951. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/Condor.py +0 -0
  952. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/GE.py +0 -0
  953. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/Host.py +0 -0
  954. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/LSF.py +0 -0
  955. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/OAR.py +0 -0
  956. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/HTCondorResourceUsage.py +0 -0
  957. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/LSFResourceUsage.py +0 -0
  958. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/PBSResourceUsage.py +0 -0
  959. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/ResourceUsage.py +0 -0
  960. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/SGEResourceUsage.py +0 -0
  961. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/SLURMResourceUsage.py +0 -0
  962. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/__init__.py +0 -0
  963. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_HTCondorResourceUsage.py +0 -0
  964. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_LSFResourceUsage.py +0 -0
  965. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_PBSResourceUsage.py +0 -0
  966. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_SGEResourceUsage.py +0 -0
  967. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_SLURMResourceUsage.py +0 -0
  968. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/Test_TimeLeft.py +0 -0
  969. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/TimeLeft/test/__init__.py +0 -0
  970. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/Torque.py +0 -0
  971. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/__init__.py +0 -0
  972. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/executeBatch.py +0 -0
  973. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/test/Test_SLURM.py +0 -0
  974. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/BatchSystems/test/__init__.py +0 -0
  975. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/CloudComputingElement.py +0 -0
  976. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/CloudProviders/OpenNebula.py +0 -0
  977. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/ComputingElementFactory.py +0 -0
  978. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/HTCondorCEComputingElement.py +0 -0
  979. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/LocalComputingElement.py +0 -0
  980. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/SSHBatchComputingElement.py +0 -0
  981. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/SSHComputingElement.py +0 -0
  982. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/__init__.py +0 -0
  983. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/cloudinit.template +0 -0
  984. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/Test_AREXComputingElement.py +0 -0
  985. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/Test_ComputingElement.py +0 -0
  986. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/Test_HTCondorCEComputingElement.py +0 -0
  987. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/Test_SSHComputingElement.py +0 -0
  988. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Computing/test/__init__.py +0 -0
  989. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/CheckInIdProvider.py +0 -0
  990. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/IAMIdProvider.py +0 -0
  991. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/IdProviderFactory.py +0 -0
  992. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/OAuth2IdProvider.py +0 -0
  993. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/Utilities.py +0 -0
  994. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/__init__.py +0 -0
  995. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/tests/IdProviderTestUtilities.py +0 -0
  996. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/tests/Test_IdProvider.py +0 -0
  997. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/tests/Test_IdProviderFactory.py +0 -0
  998. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/IdProvider/tests/Test_IdProviderUtilities.py +0 -0
  999. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/AbstractBackend.py +0 -0
  1000. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/ElasticSearchBackend.py +0 -0
  1001. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/FileBackend.py +0 -0
  1002. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/MessageQueueBackend.py +0 -0
  1003. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/StderrBackend.py +0 -0
  1004. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/StdoutBackend.py +0 -0
  1005. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/StdoutJsonBackend.py +0 -0
  1006. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogBackends/__init__.py +0 -0
  1007. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogFilters/ModuleFilter.py +0 -0
  1008. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogFilters/PatternFilter.py +0 -0
  1009. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogFilters/SensitiveDataFilter.py +0 -0
  1010. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogFilters/__init__.py +0 -0
  1011. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/LogFilters/test/Test_LogFilter.py +0 -0
  1012. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/MQCommunication.py +0 -0
  1013. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/MQConnectionManager.py +0 -0
  1014. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/MQConnector.py +0 -0
  1015. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/MQConsumer.py +0 -0
  1016. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/MQProducer.py +0 -0
  1017. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/Simple/StompInterface.py +0 -0
  1018. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/Simple/__init__.py +0 -0
  1019. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/StompMQConnector.py +0 -0
  1020. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/Utilities.py +0 -0
  1021. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/__init__.py +0 -0
  1022. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/test/Test_MQConnectionManager.py +0 -0
  1023. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/test/Test_MQConsumer.py +0 -0
  1024. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/test/Test_MQProducer.py +0 -0
  1025. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/MessageQueue/test/Test_MQ_Utilities.py +0 -0
  1026. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/DIRACCAProxyProvider.py +0 -0
  1027. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/ProxyProvider.py +0 -0
  1028. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/ProxyProviderFactory.py +0 -0
  1029. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/__init__.py +0 -0
  1030. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/test/Test_DIRACCAProxyProvider.py +0 -0
  1031. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/test/Test_ProxyProviderFactory.py +0 -0
  1032. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/ProxyProvider/test/__init__.py +0 -0
  1033. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/CTAStorage.py +0 -0
  1034. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/DIPStorage.py +0 -0
  1035. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/EchoStorage.py +0 -0
  1036. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/FCOnlyStorage.py +0 -0
  1037. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/FileStorage.py +0 -0
  1038. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/GFAL2_GSIFTPStorage.py +0 -0
  1039. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/GFAL2_HTTPSStorage.py +0 -0
  1040. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/GFAL2_SRM2Storage.py +0 -0
  1041. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/GFAL2_XROOTStorage.py +0 -0
  1042. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/OccupancyPlugins/BDIIOccupancy.py +0 -0
  1043. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/OccupancyPlugins/WLCGAccountingHTTPJson.py +0 -0
  1044. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/OccupancyPlugins/WLCGAccountingJson.py +0 -0
  1045. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/OccupancyPlugins/__init__.py +0 -0
  1046. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/RFIOStorage.py +0 -0
  1047. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/S3Storage.py +0 -0
  1048. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/StorageBase.py +0 -0
  1049. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/StorageElement.py +0 -0
  1050. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/StorageFactory.py +0 -0
  1051. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/Utilities.py +0 -0
  1052. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/__init__.py +0 -0
  1053. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/Test_FilePlugin.py +0 -0
  1054. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/Test_GFAL2_XROOTStorage.py +0 -0
  1055. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/Test_StorageElement.py +0 -0
  1056. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/Test_StorageFactory.py +0 -0
  1057. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/__init__.py +0 -0
  1058. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/Storage/test/test_utilities.py +0 -0
  1059. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/__init__.py +0 -0
  1060. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/scripts/__init__.py +0 -0
  1061. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/scripts/dirac_resource_get_parameters.py +0 -0
  1062. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Resources/scripts/dirac_resource_info.py +0 -0
  1063. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Agent/RequestFinalizationAgent.py +0 -0
  1064. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Agent/RequestPreparationAgent.py +0 -0
  1065. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Agent/StageMonitorAgent.py +0 -0
  1066. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Agent/StageRequestAgent.py +0 -0
  1067. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Agent/__init__.py +0 -0
  1068. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Client/StorageManagerClient.py +0 -0
  1069. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Client/__init__.py +0 -0
  1070. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Client/test/Test_Client_StorageManagementSystem.py +0 -0
  1071. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/ConfigTemplate.cfg +0 -0
  1072. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/DB/StorageManagementDB.py +0 -0
  1073. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/DB/StorageManagementDB.sql +0 -0
  1074. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/DB/__init__.py +0 -0
  1075. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Service/StorageManagerHandler.py +0 -0
  1076. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Service/TornadoStorageManagerHandler.py +0 -0
  1077. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/Service/__init__.py +0 -0
  1078. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/__init__.py +0 -0
  1079. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/__init__.py +0 -0
  1080. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_monitor_file.py +0 -0
  1081. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_monitor_jobs.py +0 -0
  1082. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_monitor_request.py +0 -0
  1083. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_monitor_requests.py +0 -0
  1084. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_show_stats.py +0 -0
  1085. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/StorageManagementSystem/scripts/dirac_stager_stage_files.py +0 -0
  1086. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/DataRecoveryAgent.py +0 -0
  1087. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/InputDataAgent.py +0 -0
  1088. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/MCExtensionAgent.py +0 -0
  1089. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/RequestOperations/SetFileStatus.py +0 -0
  1090. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/RequestOperations/__init__.py +0 -0
  1091. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/RequestTaskAgent.py +0 -0
  1092. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/TaskManagerAgentBase.py +0 -0
  1093. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/TransformationAgentsUtilities.py +0 -0
  1094. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/TransformationCleaningAgent.py +0 -0
  1095. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/TransformationPlugin.py +0 -0
  1096. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/ValidateOutputDataAgent.py +0 -0
  1097. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/WorkflowTaskAgent.py +0 -0
  1098. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/__init__.py +0 -0
  1099. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/test/Test_Agent_TransformationSystem.py +0 -0
  1100. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Agent/test/Test_Plugins.py +0 -0
  1101. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/BodyPlugin/BaseBody.py +0 -0
  1102. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/BodyPlugin/DummyBody.py +0 -0
  1103. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/BodyPlugin/__init__.py +0 -0
  1104. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/FileReport.py +0 -0
  1105. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/PluginBase.py +0 -0
  1106. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/RequestTasks.py +0 -0
  1107. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TaskManager.py +0 -0
  1108. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TaskManagerPlugin.py +0 -0
  1109. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/Transformation.py +0 -0
  1110. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TransformationCLI.py +0 -0
  1111. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TransformationClient.py +0 -0
  1112. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TransformationFilesStatus.py +0 -0
  1113. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/TransformationStatus.py +0 -0
  1114. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/Utilities.py +0 -0
  1115. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/WorkflowTasks.py +0 -0
  1116. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/__init__.py +0 -0
  1117. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/test/Test_Client_RequestTasks.py +0 -0
  1118. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/test/Test_Client_TaskManagerPlugin.py +0 -0
  1119. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/test/Test_Client_TransformationClient.py +0 -0
  1120. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/test/Test_Client_TransformationSystem.py +0 -0
  1121. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Client/test/Test_Client_WorkflowTasks.py +0 -0
  1122. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/ConfigTemplate.cfg +0 -0
  1123. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/DB/TransformationDB.py +0 -0
  1124. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/DB/TransformationDB.sql +0 -0
  1125. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/DB/__init__.py +0 -0
  1126. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Service/TornadoTransformationManagerHandler.py +0 -0
  1127. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Service/TransformationManagerHandler.py +0 -0
  1128. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Service/__init__.py +0 -0
  1129. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/JobInfo.py +0 -0
  1130. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/ReplicationCLIParameters.py +0 -0
  1131. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/ReplicationTransformation.py +0 -0
  1132. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/ScriptUtilities.py +0 -0
  1133. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/TransformationInfo.py +0 -0
  1134. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/Utilities/__init__.py +0 -0
  1135. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/__init__.py +0 -0
  1136. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/__init__.py +0 -0
  1137. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_production_runjoblocal.py +0 -0
  1138. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_add_files.py +0 -0
  1139. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_cli.py +0 -0
  1140. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_get_files.py +0 -0
  1141. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_information.py +0 -0
  1142. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_recover_data.py +0 -0
  1143. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_replication.py +0 -0
  1144. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_update_derived.py +0 -0
  1145. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/scripts/dirac_transformation_verify_outputdata.py +0 -0
  1146. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/test/Test_DRA.py +0 -0
  1147. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/test/Test_JobInfo.py +0 -0
  1148. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/test/Test_TransformationInfo.py +0 -0
  1149. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/test/Test_replicationTransformation.py +0 -0
  1150. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/TransformationSystem/test/__init__.py +0 -0
  1151. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Modules/FailoverRequest.py +0 -0
  1152. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Modules/ModuleBase.py +0 -0
  1153. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Modules/Script.py +0 -0
  1154. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Modules/__init__.py +0 -0
  1155. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Modules/test/Test_Modules.py +0 -0
  1156. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Utilities/Utils.py +0 -0
  1157. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Utilities/__init__.py +0 -0
  1158. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/Utilities/test/Test_Utilities.py +0 -0
  1159. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/Workflow/__init__.py +0 -0
  1160. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/JobAgent.py +0 -0
  1161. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/JobCleaningAgent.py +0 -0
  1162. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/PilotLoggingAgent.py +0 -0
  1163. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/PilotStatusAgent.py +0 -0
  1164. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/PilotSyncAgent.py +0 -0
  1165. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/PushJobAgent.py +0 -0
  1166. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py +0 -0
  1167. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/StalledJobAgent.py +0 -0
  1168. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/StatesAccountingAgent.py +0 -0
  1169. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/TaskQueuesAgent.py +0 -0
  1170. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/__init__.py +0 -0
  1171. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py +0 -0
  1172. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobCleaningAgent.py +0 -0
  1173. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PilotLoggingAgent.py +0 -0
  1174. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PilotStatusAgent.py +0 -0
  1175. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PushJobAgent.py +0 -0
  1176. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_SiteDirector.py +0 -0
  1177. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_StalledJobAgent.py +0 -0
  1178. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/CPUNormalization.py +0 -0
  1179. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/DownloadInputData.py +0 -0
  1180. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/InputDataByProtocol.py +0 -0
  1181. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/InputDataResolution.py +0 -0
  1182. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobManagerClient.py +0 -0
  1183. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobMinorStatus.py +0 -0
  1184. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobMonitoringClient.py +0 -0
  1185. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobState/CachedJobState.py +0 -0
  1186. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobState/JobManifest.py +0 -0
  1187. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobState/__init__.py +0 -0
  1188. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobStateUpdateClient.py +0 -0
  1189. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/JobStatus.py +0 -0
  1190. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/Limiter.py +0 -0
  1191. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/MatcherClient.py +0 -0
  1192. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/DownloadPlugin.py +0 -0
  1193. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/FileCacheDownloadPlugin.py +0 -0
  1194. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/FileCacheLoggingPlugin.py +0 -0
  1195. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/MQPilotLoggingPlugin.py +0 -0
  1196. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/PilotLoggingPlugin.py +0 -0
  1197. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/__init__.py +0 -0
  1198. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotManagerClient.py +0 -0
  1199. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotScopes.py +0 -0
  1200. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PilotStatus.py +0 -0
  1201. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/PoolXMLSlice.py +0 -0
  1202. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/SandboxStoreClient.py +0 -0
  1203. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/ServerUtils.py +0 -0
  1204. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/TornadoPilotLoggingClient.py +0 -0
  1205. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/WMSAdministratorClient.py +0 -0
  1206. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/WMSClient.py +0 -0
  1207. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/__init__.py +0 -0
  1208. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/test/Test_Client_DownloadInputData.py +0 -0
  1209. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/test/Test_Client_WorkloadManagementSystem.py +0 -0
  1210. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/test/Test_JobReport.py +0 -0
  1211. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Client/test/Test_TornadoPilotLoggingClient.py +0 -0
  1212. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg +0 -0
  1213. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobDB.py +0 -0
  1214. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobDB.sql +0 -0
  1215. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobDBUtils.py +0 -0
  1216. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py +0 -0
  1217. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.sql +0 -0
  1218. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/JobParametersDB.py +0 -0
  1219. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.py +0 -0
  1220. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.sql +0 -0
  1221. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/SandboxMetadataDB.py +0 -0
  1222. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/SandboxMetadataDB.sql +0 -0
  1223. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/StatusUtils.py +0 -0
  1224. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/TaskQueueDB.sql +0 -0
  1225. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/__init__.py +0 -0
  1226. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/tests/Test_JobDB.py +0 -0
  1227. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/tests/Test_StatusUtils.py +0 -0
  1228. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/DB/tests/Test_TaskQueueDB.py +0 -0
  1229. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/Base/OptimizerExecutor.py +0 -0
  1230. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/Base/__init__.py +0 -0
  1231. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/InputData.py +0 -0
  1232. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/JobPath.py +0 -0
  1233. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/JobSanity.py +0 -0
  1234. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Executor/__init__.py +0 -0
  1235. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/FutureClient/JobMonitoringClient.py +0 -0
  1236. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/FutureClient/JobStateUpdateClient.py +0 -0
  1237. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/FutureClient/__init__.py +0 -0
  1238. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/JobExecutionCoordinator.py +0 -0
  1239. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperOfflineTemplate.py +0 -0
  1240. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperTemplate.py +0 -0
  1241. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperUtilities.py +0 -0
  1242. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/Watchdog.py +0 -0
  1243. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/__init__.py +0 -0
  1244. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapperTemplate.py +0 -0
  1245. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_Watchdog.py +0 -0
  1246. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/__init__.py +0 -0
  1247. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/jobDescription.xml +0 -0
  1248. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/script-OK.sh +0 -0
  1249. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/script-RESC.sh +0 -0
  1250. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/script-fail.sh +0 -0
  1251. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/script-long.sh +0 -0
  1252. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/JobWrapper/test/script.sh +0 -0
  1253. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/JobMonitoringHandler.py +0 -0
  1254. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/JobPolicy.py +0 -0
  1255. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/JobStateUpdateHandler.py +0 -0
  1256. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/MatcherHandler.py +0 -0
  1257. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/OptimizationMindHandler.py +0 -0
  1258. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/PilotManagerHandler.py +0 -0
  1259. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/SandboxStoreHandler.py +0 -0
  1260. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoJobManagerHandler.py +0 -0
  1261. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoJobMonitoringHandler.py +0 -0
  1262. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoJobStateUpdateHandler.py +0 -0
  1263. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoPilotLoggingHandler.py +0 -0
  1264. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoSandboxStoreHandler.py +0 -0
  1265. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/TornadoWMSAdministratorHandler.py +0 -0
  1266. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/WMSAdministratorHandler.py +0 -0
  1267. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/WMSUtilities.py +0 -0
  1268. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Service/__init__.py +0 -0
  1269. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/JobModel.py +0 -0
  1270. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/JobStatusUtility.py +0 -0
  1271. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/ParametricJob.py +0 -0
  1272. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/PilotWrapper.py +0 -0
  1273. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/__init__.py +0 -0
  1274. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/jobAdministration.py +0 -0
  1275. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobModel.py +0 -0
  1276. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobStatusUtility.py +0 -0
  1277. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_ParametricJob.py +0 -0
  1278. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_PilotCStoJSONSynchronizer.py +0 -0
  1279. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_PilotWrapper.py +0 -0
  1280. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_QueueUtilities.py +0 -0
  1281. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/Utilities/test/Test_TornadoPilotLoggingHandler.py +0 -0
  1282. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/__init__.py +0 -0
  1283. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/ConfigHelper.py +0 -0
  1284. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/SharesCorrector.py +0 -0
  1285. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/__init__.py +0 -0
  1286. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/correctors/BaseCorrector.py +0 -0
  1287. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/correctors/BaseHistoryCorrector.py +0 -0
  1288. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/correctors/MonitoringHistoryCorrector.py +0 -0
  1289. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/correctors/WMSHistoryCorrector.py +0 -0
  1290. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/private/correctors/__init__.py +0 -0
  1291. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/__init__.py +0 -0
  1292. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_admin_add_pilot.py +0 -0
  1293. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_admin_kill_pilot.py +0 -0
  1294. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_admin_show_task_queues.py +0 -0
  1295. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_admin_sync_pilot.py +0 -0
  1296. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_jobexec.py +0 -0
  1297. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_cpu_normalization.py +0 -0
  1298. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_get_queue_cpu_time.py +0 -0
  1299. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_get_wn.py +0 -0
  1300. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_match.py +0 -0
  1301. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/WorkloadManagementSystem/scripts/dirac_wms_pilot_job_info.py +0 -0
  1302. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Test_init.py +0 -0
  1303. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/Accounting.py +0 -0
  1304. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/IntegrationTest.py +0 -0
  1305. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/ProcessesCreator_withChildren.py +0 -0
  1306. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/WMS.py +0 -0
  1307. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/__init__.py +0 -0
  1308. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/assertingUtils.py +0 -0
  1309. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/mpTest-flexible.py +0 -0
  1310. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/mpTest.py +0 -0
  1311. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/plots.py +0 -0
  1312. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Utilities/utils.py +0 -0
  1313. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Integration/exe-script-with-input-single-location.py +0 -0
  1314. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Integration/exe-script-with-input.py +0 -0
  1315. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Integration/exe-script.py +0 -0
  1316. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Integration/helloWorld.py +0 -0
  1317. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Regression/helloWorld.py +0 -0
  1318. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/Workflow/Regression/helloWorld.xml +0 -0
  1319. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC/tests/__init__.py +0 -0
  1320. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/dependency_links.txt +0 -0
  1321. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/entry_points.txt +0 -0
  1322. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/not-zip-safe +0 -0
  1323. {dirac-9.0.14 → dirac-9.0.16}/src/DIRAC.egg-info/top_level.txt +0 -0
dirac-9.0.16/AGENTS.md ADDED
@@ -0,0 +1,17 @@
1
+ # DIRAC Agent Guidelines
2
+
3
+ ## Build/Lint/Test Commands
4
+ - **Build**: `pip install -e .`
5
+ - **Lint**: `ruff check src/ && pylint src/`
6
+ - **Test**: `pytest tests/`
7
+ - **Single test**: `pytest src/DIRAC/path/to/test.py::test_function`
8
+
9
+ ## Code Style Guidelines
10
+ - **Formatting**: Use `black` with line length 120 (configured in pyproject.toml)
11
+ - **Imports**: Absolute imports only; sort with `isort` (black profile)
12
+ - **Naming**: CamelCase for classes, snake_case for functions/variables
13
+ - **Types**: Use type hints; run `mypy` for strict checking
14
+ - **Error handling**: Return `S_OK(result)` or `S_ERROR(message)` from DIRAC.Core.Utilities.ReturnValues
15
+ - **Logging**: Use `gLogger.info/warn/error` (from DIRAC import gLogger)
16
+ - **Docstrings**: Follow Google/NumPy style where present
17
+ - **Security**: Never log secrets; validate inputs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DIRAC
3
- Version: 9.0.14
3
+ Version: 9.0.16
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.14
22
+ Requires-Dist: DIRACCommon==v9.0.16
23
23
  Requires-Dist: diracx-client>=v0.0.1
24
24
  Requires-Dist: diracx-core>=v0.0.1
25
25
  Requires-Dist: diracx-cli>=v0.0.1
@@ -1131,7 +1131,7 @@ Operations
1131
1131
  Remote = xroot, root
1132
1132
  }
1133
1133
  # Module used for InputData resolution if not specified in the JDL
1134
- InputDataModule = DIRAC.Core.Utilities.InputDataResolution
1134
+ InputDataModule = DIRAC.WorkloadManagementSystem.Client.InputDataResolution
1135
1135
  }
1136
1136
  Logging
1137
1137
  {
@@ -1,3 +1,79 @@
1
+ [v9.0.16]
2
+
3
+ *Tornado
4
+
5
+ FIX: (#8426) return when retrying another Tornado service
6
+
7
+ *Resources
8
+
9
+ FIX: (#8424) SingularityComputingElement: convert MemoryLimitMB to int before comparison with maxRAM
10
+
11
+ *WorkloadManagementSystem
12
+
13
+ CHANGE: (#8423) rescheduleJobs: allow reusing existing JobDB, TaskQueueDB, jobLoggingDB instances
14
+
15
+ *WorkloadManagement
16
+
17
+ NEW: (#8422) Support overriding configuration servers ins pilot JSON
18
+
19
+ [v9.0.15]
20
+
21
+ *DIRAC
22
+
23
+ FIX: (#8421) Fix default InputDataModule path in dirac.cfg
24
+
25
+ *Core
26
+
27
+ CHANGE: (#8419) the weekly index for OpenSearch uses also the year as a prefix
28
+ FIX: (#8405) rootPath for server installation can be a random string, followed by a timestamp
29
+
30
+ *RequestManagementSystem
31
+
32
+ CHANGE: (#8418) just ignore a shifter if we cannot get a matching proxy
33
+
34
+ *Resources
35
+
36
+ FIX: (#8417) SLURM getCEStatus last empty line
37
+ FIX: (#8412) add further details when time left cannot be obtained
38
+ FIX: (#8408) PoolComputingElement: fix: do not set a fictional ram limit, use 0 for no-limit
39
+ FIX: (#8406) adding basic RAM capabilities to InProcessCE
40
+ CHANGE: (#8404) improve getReplicas performances by sorting LFNs
41
+ CHANGE: (#8332) set default time for gfal operations
42
+
43
+ *WorkloadManagementSystem
44
+
45
+ NEW: (#8414) added a new table to TaskQueueDB for RAM requirements and matching
46
+ NEW: (#8366) InProcessComputingElement takes RAM requirements into consideration for jobs' matching
47
+ NEW: (#8366) PoolComputingElement takes RAM requirements into consideration when subdividing the pool
48
+ NEW: (#8366) SingularityComputingElement can enforce CG2 RAM limits
49
+
50
+ *DataManagementSystem
51
+
52
+ FIX: (#8413) check properly if an FTS error is recoverable
53
+ FIX: (#8410) Only submit FTS job with tokens if all hop support tokens
54
+ CHANGE: (#8402) batch getReplicas at the FileCatalogClient level instead of at the DM level for speedup
55
+
56
+ *Interfaces
57
+
58
+ FIX: (#8409) inputDataPolicy should not change the inputDataModule but set a parameter inside the arguments.
59
+ CHANGE: (#8407) Dirac().getInputDataCatalog - allow changing the inputDataPolicy
60
+
61
+ *TransformationSystem
62
+
63
+ CHANGE: (#8404) TransformationAgent does not bulk calls to dm.getReplicas
64
+
65
+ *FrameworkSystem
66
+
67
+ CHANGE: (#8403) (SystemAdministrator): add the possibility to install non-released software versions
68
+
69
+ *WorkloadManagement
70
+
71
+ NEW: (#8399) ability to adjust job wrapper log level
72
+
73
+ *CSAPI
74
+
75
+ FIX: (#8398) Have CSAPI return AffiliationEnds if existing
76
+
1
77
  [v9.0.14]
2
78
 
3
79
 
@@ -26,7 +26,7 @@ install_requires =
26
26
  certifi
27
27
  cwltool
28
28
  diraccfg
29
- DIRACCommon==v9.0.14
29
+ DIRACCommon==v9.0.16
30
30
  diracx-client >=v0.0.1
31
31
  diracx-core >=v0.0.1
32
32
  diracx-cli >=v0.0.1
@@ -299,8 +299,19 @@ class CSAPI:
299
299
  if "Users" in groupsDict[group] and entity in groupsDict[group]["Users"]:
300
300
  entitiesDict[entity]["Groups"].append(group)
301
301
  entitiesDict[entity]["Groups"].sort()
302
+ entitiesDict[entity]["AffiliationEnds"] = self.getUserAffiliationEnds(entity)
302
303
  return S_OK(entitiesDict)
303
304
 
305
+ def getUserAffiliationEnds(self, nick):
306
+ affiliation_ends_current = {}
307
+ csSection = f"{self.__baseSecurity}/Users/{nick}/"
308
+ user_sections = self.__csMod.getSections(csSection)
309
+ if "AffiliationEnds" in user_sections:
310
+ affiliation_ends_opts = self.__csMod.getOptions(f"{csSection}/AffiliationEnds")
311
+ for vo_ in affiliation_ends_opts:
312
+ affiliation_ends_current[vo_] = self.__csMod.getValue(f"{csSection}/AffiliationEnds/{vo_}")
313
+ return affiliation_ends_current
314
+
304
315
  def listGroups(self):
305
316
  """
306
317
  List all groups
@@ -599,7 +599,7 @@ class TornadoBaseClient:
599
599
  if url not in self.__bannedUrls:
600
600
  self.__bannedUrls += [url]
601
601
  if retry < self.__nbOfUrls - 1:
602
- self._request(retry=retry + 1, outputFile=outputFile, **kwargs)
602
+ return self._request(retry=retry + 1, outputFile=outputFile, **kwargs)
603
603
 
604
604
  errStr = f"{str(e)}: {rawText}"
605
605
  return S_ERROR(errStr)
@@ -300,6 +300,7 @@ class CG2Manager(metaclass=DIRACSingleton):
300
300
  if "ceParameters" in kwargs:
301
301
  if cpuLimit := kwargs["ceParameters"].get("CPULimit", None):
302
302
  cores = float(cpuLimit)
303
+ # MemoryLimitMB should be the job upper limit
303
304
  if memoryMB := int(kwargs["ceParameters"].get("MemoryLimitMB", 0)):
304
305
  memory = memoryMB * 1024 * 1024
305
306
  if kwargs["ceParameters"].get("MemoryNoSwap", "no").lower() in ("yes", "true"):
@@ -621,7 +621,7 @@ class ElasticSearchDB:
621
621
  if period.lower() == "day":
622
622
  suffix = todayUTC.strftime("%Y-%m-%d")
623
623
  elif period.lower() == "week":
624
- suffix = todayUTC.isocalendar()[1]
624
+ suffix = f"{todayUTC.strftime('%Y')}-{todayUTC.isocalendar()[1]}"
625
625
  elif period.lower() == "month":
626
626
  suffix = todayUTC.strftime("%Y-%m")
627
627
  elif period.lower() == "year":
@@ -903,6 +903,21 @@ class MySQL:
903
903
  return createView
904
904
  return S_OK()
905
905
 
906
+ def _parseForeignKeyReference(self, auxTable, defaultKey):
907
+ """
908
+ Parse foreign key reference in format 'Table' or 'Table.key'
909
+
910
+ :param str auxTable: Foreign key reference (e.g., 'MyTable' or 'MyTable.id')
911
+ :param str defaultKey: Default key name if not specified in auxTable
912
+ :return: tuple (table_name, key_name)
913
+ """
914
+ if "." in auxTable:
915
+ parts = auxTable.split(".", 1)
916
+ if len(parts) != 2:
917
+ raise ValueError(f"Invalid foreign key reference format: {auxTable}")
918
+ return parts[0], parts[1]
919
+ return auxTable, defaultKey
920
+
906
921
  def _createTables(self, tableDict, force=False):
907
922
  """
908
923
  tableDict:
@@ -957,30 +972,37 @@ class MySQL:
957
972
  if "Fields" not in thisTable:
958
973
  return S_ERROR(DErrno.EMYSQL, f"Missing `Fields` key in `{table}` table dictionary")
959
974
 
960
- tableCreationList = [[]]
961
-
975
+ # Build dependency-ordered list of tables to create
976
+ # Tables with foreign keys must be created after their referenced tables
977
+ tableCreationList = []
962
978
  auxiliaryTableList = []
963
979
 
964
- i = 0
980
+ # Get list of existing tables in the database to handle migrations
981
+ existingTablesResult = self._query("SHOW TABLES")
982
+ if not existingTablesResult["OK"]:
983
+ return existingTablesResult
984
+ existingTables = [t[0] for t in existingTablesResult["Value"]]
985
+
965
986
  extracted = True
966
987
  while tableList and extracted:
967
988
  # iterate extracting tables from list if they only depend on
968
989
  # already extracted tables.
969
990
  extracted = False
970
- auxiliaryTableList += tableCreationList[i]
971
- i += 1
972
- tableCreationList.append([])
991
+ currentLevelTables = []
992
+
973
993
  for table in list(tableList):
974
994
  toBeExtracted = True
975
995
  thisTable = tableDict[table]
976
996
  if "ForeignKeys" in thisTable:
977
997
  thisKeys = thisTable["ForeignKeys"]
978
998
  for key, auxTable in thisKeys.items():
979
- forTable = auxTable.split(".")[0]
980
- forKey = key
981
- if forTable != auxTable:
982
- forKey = auxTable.split(".")[1]
983
- if forTable not in auxiliaryTableList:
999
+ try:
1000
+ forTable, forKey = self._parseForeignKeyReference(auxTable, key)
1001
+ except ValueError as e:
1002
+ return S_ERROR(DErrno.EMYSQL, str(e))
1003
+
1004
+ # Check if the referenced table is either being created or already exists
1005
+ if forTable not in auxiliaryTableList and forTable not in existingTables:
984
1006
  toBeExtracted = False
985
1007
  break
986
1008
  if key not in thisTable["Fields"]:
@@ -988,24 +1010,29 @@ class MySQL:
988
1010
  DErrno.EMYSQL,
989
1011
  f"ForeignKey `{key}` -> `{forKey}` not defined in Primary table `{table}`.",
990
1012
  )
991
- if forKey not in tableDict[forTable]["Fields"]:
1013
+ # Only validate field existence if the referenced table is in tableDict
1014
+ if forTable in tableDict and forKey not in tableDict[forTable]["Fields"]:
992
1015
  return S_ERROR(
993
1016
  DErrno.EMYSQL,
994
- "ForeignKey `%s` -> `%s` not defined in Auxiliary table `%s`."
995
- % (key, forKey, forTable),
1017
+ f"ForeignKey `{key}` -> `{forKey}` not defined in Auxiliary table `{forTable}`.",
996
1018
  )
997
1019
 
998
1020
  if toBeExtracted:
999
1021
  # self.log.debug('Table %s ready to be created' % table)
1000
1022
  extracted = True
1001
1023
  tableList.remove(table)
1002
- tableCreationList[i].append(table)
1024
+ currentLevelTables.append(table)
1025
+
1026
+ if currentLevelTables:
1027
+ tableCreationList.append(currentLevelTables)
1028
+ auxiliaryTableList.extend(currentLevelTables)
1003
1029
 
1004
1030
  if tableList:
1005
1031
  return S_ERROR(DErrno.EMYSQL, f"Recursive Foreign Keys in {', '.join(tableList)}")
1006
1032
 
1007
- for tableList in tableCreationList:
1008
- for table in tableList:
1033
+ # Create tables level by level
1034
+ for levelTables in tableCreationList:
1035
+ for table in levelTables:
1009
1036
  # Check if Table exist
1010
1037
  retDict = self.__checkTable(table, force=force)
1011
1038
  if not retDict["OK"]:
@@ -1035,18 +1062,17 @@ class MySQL:
1035
1062
  for index in indexDict:
1036
1063
  indexedFields = "`, `".join(indexDict[index])
1037
1064
  cmdList.append(f"UNIQUE INDEX `{index}` ( `{indexedFields}` )")
1065
+
1038
1066
  if "ForeignKeys" in thisTable:
1039
1067
  thisKeys = thisTable["ForeignKeys"]
1040
1068
  for key, auxTable in thisKeys.items():
1041
- forTable = auxTable.split(".")[0]
1042
- forKey = key
1043
- if forTable != auxTable:
1044
- forKey = auxTable.split(".")[1]
1069
+ try:
1070
+ forTable, forKey = self._parseForeignKeyReference(auxTable, key)
1071
+ except ValueError as e:
1072
+ return S_ERROR(DErrno.EMYSQL, str(e))
1045
1073
 
1046
- # cmdList.append( '`%s` %s' % ( forTable, tableDict[forTable]['Fields'][forKey] )
1047
1074
  cmdList.append(
1048
- "FOREIGN KEY ( `%s` ) REFERENCES `%s` ( `%s` )"
1049
- " ON DELETE RESTRICT" % (key, forTable, forKey)
1075
+ f"FOREIGN KEY ( `{key}` ) REFERENCES `{forTable}` ( `{forKey}` ) ON DELETE RESTRICT"
1050
1076
  )
1051
1077
 
1052
1078
  engine = thisTable.get("Engine", "InnoDB")
@@ -1058,7 +1084,7 @@ class MySQL:
1058
1084
  engine,
1059
1085
  charset,
1060
1086
  )
1061
- retDict = self._transaction([cmd])
1087
+ retDict = self._update(cmd)
1062
1088
  if not retDict["OK"]:
1063
1089
  return retDict
1064
1090
  # self.log.debug('Table %s created' % table)
@@ -22,7 +22,7 @@ from DIRAC import S_OK, S_ERROR, gLogger, gConfig
22
22
  from DIRAC.Core.Utilities import DErrno
23
23
  from DIRAC.Core.Utilities.Adler import fileAdler, compareAdler
24
24
  from DIRAC.Core.Utilities.File import makeGuid, getSize
25
- from DIRAC.Core.Utilities.List import randomize, breakListIntoChunks
25
+ from DIRAC.Core.Utilities.List import randomize
26
26
  from DIRAC.Core.Utilities.ReturnValues import returnSingleResult
27
27
  from DIRAC.Core.Security.ProxyInfo import getProxyInfo
28
28
  from DIRAC.Core.Security.ProxyInfo import getVOfromProxyGroup
@@ -1677,18 +1677,15 @@ class DataManager:
1677
1677
  """get replicas from catalogue and filter if requested
1678
1678
  Warning: all filters are independent, hence active and preferDisk should be set if using forJobs
1679
1679
  """
1680
- catalogReplicas = {}
1681
- failed = {}
1680
+
1682
1681
  if not protocol:
1683
1682
  protocol = self.registrationProtocol
1684
1683
 
1685
- for lfnChunk in breakListIntoChunks(lfns, 1000):
1686
- res = self.fileCatalog.getReplicas(lfnChunk, allStatus=allStatus)
1687
- if res["OK"]:
1688
- catalogReplicas.update(res["Value"]["Successful"])
1689
- failed.update(res["Value"]["Failed"])
1690
- else:
1691
- return res
1684
+ res = self.fileCatalog.getReplicas(lfns, allStatus=allStatus)
1685
+ if not res["OK"]:
1686
+ return res
1687
+ catalogReplicas = res["Value"]["Successful"]
1688
+ failed = res["Value"]["Failed"]
1692
1689
  if not getUrl:
1693
1690
  for lfn in catalogReplicas:
1694
1691
  catalogReplicas[lfn] = dict.fromkeys(catalogReplicas[lfn], True)
@@ -272,7 +272,7 @@ class FTS3Job(JSerializable):
272
272
 
273
273
  # If the file is failed, check if it is recoverable
274
274
  if file_state in FTS3File.FTS_FAILED_STATES:
275
- if not fileDict.get("Recoverable", True):
275
+ if not fileDict.get("recoverable", True):
276
276
  filesStatus[file_id]["status"] = "Defunct"
277
277
 
278
278
  # If the file is not in a final state, but the job is, we return an error
@@ -400,7 +400,7 @@ class FTS3Job(JSerializable):
400
400
  :return: S_OK( (job object, list of ftsFileIDs in the job))
401
401
  """
402
402
 
403
- log = gLogger.getSubLogger(f"constructTransferJob/{self.operationID}/{self.sourceSE}_{self.targetSE}")
403
+ log = gLogger.getLocalSubLogger(f"constructTransferJob/{self.operationID}/{self.sourceSE}_{self.targetSE}")
404
404
 
405
405
  isMultiHop = False
406
406
  useTokens = False
@@ -411,6 +411,15 @@ class FTS3Job(JSerializable):
411
411
  log.debug(f"Multihop job has {len(allLFNs)} files while only 1 allowed")
412
412
  return S_ERROR(errno.E2BIG, "Trying multihop job with more than one file !")
413
413
  allHops = [(self.sourceSE, self.multiHopSE), (self.multiHopSE, self.targetSE)]
414
+ if tokensEnabled:
415
+ tokensEnabled = all(
416
+ [
417
+ self.__seTokenSupport(StorageElement(seName))
418
+ for seName in (self.sourceSE, self.multiHopSE, self.targetSE)
419
+ ]
420
+ )
421
+ if not tokensEnabled:
422
+ log.warn("Not using token because not all hop supports it")
414
423
  isMultiHop = True
415
424
  else:
416
425
  allHops = [(self.sourceSE, self.targetSE)]
@@ -736,7 +745,7 @@ class FTS3Job(JSerializable):
736
745
  :return: S_OK( (job object, list of ftsFileIDs in the job))
737
746
  """
738
747
 
739
- log = gLogger.getSubLogger(f"constructStagingJob/{self.operationID}/{self.targetSE}")
748
+ log = gLogger.getLocalSubLogger(f"constructStagingJob/{self.operationID}/{self.targetSE}")
740
749
 
741
750
  transfers = []
742
751
  fileIDsInTheJob = set()
@@ -1,5 +1,5 @@
1
- """ SystemAdministrator service is a tool to control and monitor the DIRAC services and agents
2
- """
1
+ """SystemAdministrator service is a tool to control and monitor the DIRAC services and agents"""
2
+
3
3
  import socket
4
4
  import os
5
5
  import re
@@ -254,17 +254,38 @@ class SystemAdministratorHandler(RequestHandler):
254
254
  types_updateSoftware = [str]
255
255
 
256
256
  def export_updateSoftware(self, version):
257
+ """Update DIRAC, or its extension, to a version. Use extension_name==version for the DIRAC extension.
258
+
259
+ A version can be:
260
+ - a PEP440 valid version of DIRAC.
261
+ - a PEP440 valid version of a DIRAC extension.
262
+ - "integration" or "devel" or "master" or "main" would all be interpreted as git+https://github.com/DIRACGrid/DIRAC.git@integration#egg=DIRAC[server]
263
+ - a git tag/branch like git+https://github.com/fstagni/DIRAC.git@test_branch#egg=DIRAC[server]
264
+ """
257
265
  # Validate and normalise the requested version
258
266
  primaryExtension = None
259
267
  if "==" in version:
260
268
  primaryExtension, version = version.split("==")
261
- try:
262
- version = Version(version)
263
- except InvalidVersion:
264
- self.log.exception("Invalid version passed", version)
265
- return S_ERROR(f"Invalid version passed {version!r}")
266
- isPrerelease = version.is_prerelease
267
- version = f"v{version}"
269
+
270
+ released_version = True
271
+ isPrerelease = False
272
+
273
+ # Special cases (e.g. installing the integration/main branch)
274
+ if version.lower() in ["integration", "devel", "master", "main"]:
275
+ released_version = False
276
+ version = "git+https://github.com/DIRACGrid/DIRAC.git@integration#egg=DIRAC[server]"
277
+
278
+ if released_version:
279
+ try:
280
+ version = Version(version)
281
+ isPrerelease = version.is_prerelease
282
+ version = f"v{version}"
283
+ except InvalidVersion:
284
+ if "https://" in version:
285
+ released_version = False
286
+ else:
287
+ self.log.exception("Invalid version passed", version)
288
+ return S_ERROR(f"Invalid version passed {version!r}")
268
289
 
269
290
  # Find what to install
270
291
  otherExtensions = []
@@ -290,10 +311,11 @@ class SystemAdministratorHandler(RequestHandler):
290
311
  installer.flush()
291
312
  self.log.info("Downloaded DIRACOS installer to", installer.name)
292
313
 
314
+ directory = version if released_version else version.split("@")[1].split("#")[0]
293
315
  newProPrefix = os.path.join(
294
316
  rootPath,
295
317
  "versions",
296
- f"{version}-{datetime.utcnow().strftime('%s')}",
318
+ f"{directory}-{datetime.utcnow().strftime('%s')}",
297
319
  )
298
320
  installPrefix = os.path.join(newProPrefix, f"{platform.system()}-{platform.machine()}")
299
321
  self.log.info("Running DIRACOS installer for prefix", installPrefix)
@@ -313,7 +335,15 @@ class SystemAdministratorHandler(RequestHandler):
313
335
  cmd = [f"{installPrefix}/bin/pip", "install", "--no-color", "-v"]
314
336
  if isPrerelease:
315
337
  cmd += ["--pre"]
316
- cmd += [f"{primaryExtension}[server]=={version}"]
338
+ if released_version:
339
+ cmd += [f"{primaryExtension}[server]=={version}"]
340
+ else:
341
+ # from here on we assume a version like git+https://github.com/DIRACGrid/DIRAC.git@integration#egg=DIRAC[server]
342
+ # is specified, for the primaryExtension
343
+ if not version.startswith("git+"):
344
+ version = f"git+{version}"
345
+ cmd += [version]
346
+
317
347
  cmd += [f"{e}[server]" for e in otherExtensions]
318
348
  r = subprocess.run(
319
349
  cmd,
@@ -208,7 +208,9 @@ class Dirac(API):
208
208
  return S_OK("Nothing to do")
209
209
 
210
210
  #############################################################################
211
- def getInputDataCatalog(self, lfns, siteName="", fileName="pool_xml_catalog.xml", ignoreMissing=False):
211
+ def getInputDataCatalog(
212
+ self, lfns, siteName="", fileName="pool_xml_catalog.xml", ignoreMissing=False, inputDataPolicy=None
213
+ ):
212
214
  """This utility will create a pool xml catalogue slice for the specified LFNs using
213
215
  the full input data resolution policy plugins for the VO.
214
216
 
@@ -228,6 +230,10 @@ class Dirac(API):
228
230
  :type siteName: string
229
231
  :param fileName: Catalogue name (can include path)
230
232
  :type fileName: string
233
+ :param ignoreMissing: Flag to ignore missing files
234
+ :type ignoreMissing: bool
235
+ :param inputDataPolicy: Input data policy module to use
236
+ :type inputDataPolicy: string or None
231
237
  :returns: S_OK,S_ERROR
232
238
 
233
239
  """
@@ -248,8 +254,8 @@ class Dirac(API):
248
254
 
249
255
  self.log.verbose(localSEList)
250
256
 
251
- inputDataPolicy = Operations().getValue("InputDataPolicy/InputDataModule")
252
- if not inputDataPolicy:
257
+ inputDataModule = Operations().getValue("InputDataPolicy/InputDataModule")
258
+ if not inputDataModule:
253
259
  return self._errorReport("Could not retrieve /DIRAC/Operations/InputDataPolicy/InputDataModule for VO")
254
260
 
255
261
  self.log.info(f"Attempting to resolve data for {siteName}")
@@ -279,11 +285,13 @@ class Dirac(API):
279
285
 
280
286
  self.log.verbose(configDict)
281
287
  argumentsDict = {"FileCatalog": resolvedData, "Configuration": configDict, "InputData": lfns}
288
+ if inputDataPolicy:
289
+ argumentsDict["Job"] = {"InputDataPolicy": inputDataPolicy}
282
290
  if ignoreMissing:
283
291
  argumentsDict["IgnoreMissing"] = True
284
292
  self.log.verbose(argumentsDict)
285
293
 
286
- result = self.objectLoader.loadObject(inputDataPolicy)
294
+ result = self.objectLoader.loadObject(inputDataModule)
287
295
  if not result["OK"]:
288
296
  return result
289
297
  module = result["Value"](argumentsDict)
@@ -1,27 +1,28 @@
1
1
  """
2
- Job Base Class
2
+ Job Base Class
3
3
 
4
- This class provides generic job definition functionality suitable for any VO.
4
+ This class provides generic job definition functionality suitable for any VO.
5
5
 
6
- Helper functions are documented with example usage for the DIRAC API. An example
7
- script (for a simple executable) would be::
6
+ Helper functions are documented with example usage for the DIRAC API. An example
7
+ script (for a simple executable) would be::
8
8
 
9
- from DIRAC.Interfaces.API.Dirac import Dirac
10
- from DIRAC.Interfaces.API.Job import Job
9
+ from DIRAC.Interfaces.API.Dirac import Dirac
10
+ from DIRAC.Interfaces.API.Job import Job
11
11
 
12
- j = Job()
13
- j.setCPUTime(500)
14
- j.setExecutable('/bin/echo hello')
15
- j.setExecutable('yourPythonScript.py')
16
- j.setExecutable('/bin/echo hello again')
17
- j.setName('MyJobName')
12
+ j = Job()
13
+ j.setCPUTime(500)
14
+ j.setExecutable('/bin/echo hello')
15
+ j.setExecutable('yourPythonScript.py')
16
+ j.setExecutable('/bin/echo hello again')
17
+ j.setName('MyJobName')
18
18
 
19
- dirac = Dirac()
20
- jobID = dirac.submitJob(j)
21
- print 'Submission Result: ',jobID
19
+ dirac = Dirac()
20
+ jobID = dirac.submitJob(j)
21
+ print 'Submission Result: ',jobID
22
22
 
23
- Note that several executables can be provided and wil be executed sequentially.
23
+ Note that several executables can be provided and wil be executed sequentially.
24
24
  """
25
+
25
26
  import os
26
27
  import re
27
28
  import shlex
@@ -517,6 +518,50 @@ class Job(API):
517
518
  return S_OK()
518
519
 
519
520
  #############################################################################
521
+ def setRAMRequirements(self, ramRequired: int = 0, maxRAM: int = 0):
522
+ """Helper function.
523
+ Specify the RAM requirements for the job, in MB. 0 (default) means no specific requirements.
524
+
525
+ Example usage:
526
+
527
+ >>> job = Job()
528
+ >>> job.setRAMRequirements(ramRequired=2000)
529
+ means that the job needs at least 2 GBs of RAM to work. This is taken into consideration at job's matching time.
530
+ The job definition does not specify an upper limit.
531
+ From a user's point of view this is fine (normally, not for admins).
532
+
533
+ >>> job.setRAMRequirements(ramRequired=500, maxRAM=3800)
534
+ means that the job needs 500 MBs of RAM to work. 3.8 GBs will then be the upper limit for CG2 limits.
535
+
536
+ >>> job.setRAMRequirements(ramRequired=3200, maxRAM=3200)
537
+ means that we should match this job if there is at least 3.2 available GBs of run. At the same time, CG2 will not allow to use more than that.
538
+
539
+ >>> job.setRAMRequirements(maxRAM=4000)
540
+ means that the job does not set a min amount of RAM (so can match--run "everywhere"), but the 4 GBs will then be the upper limit for CG2 limits.
541
+
542
+ >>> job.setRAMRequirements(ramRequired=8000, maxRAM=4000)
543
+ Makes no sense, an error will be raised
544
+ """
545
+ if ramRequired and maxRAM and ramRequired > maxRAM:
546
+ return self._reportError("Invalid settings, ramRequired is higher than maxRAM")
547
+
548
+ if ramRequired:
549
+ self._addParameter(
550
+ self.workflow,
551
+ "MinRAM",
552
+ "JDL",
553
+ ramRequired,
554
+ "MBs of RAM requested",
555
+ )
556
+ if maxRAM:
557
+ self._addParameter(
558
+ self.workflow,
559
+ "MaxRAM",
560
+ "JDL",
561
+ maxRAM,
562
+ "Max MBs of RAM to be used",
563
+ )
564
+
520
565
  def setNumberOfProcessors(self, numberOfProcessors=None, minNumberOfProcessors=None, maxNumberOfProcessors=None):
521
566
  """Helper function to set the number of processors required by the job.
522
567
 
@@ -709,7 +754,7 @@ class Job(API):
709
754
  Example usage:
710
755
 
711
756
  >>> job = Job()
712
- >>> job.setTag( ['WholeNode','8GBMemory'] )
757
+ >>> job.setTag( ['WholeNode'] )
713
758
 
714
759
  :param tags: single tag string or a list of tags
715
760
  :type tags: str or python:list
@@ -106,7 +106,8 @@ class RequestTask:
106
106
  userDN, userGroup, requiredTimeLeft=1200, cacheTime=4 * 43200
107
107
  )
108
108
  if not getProxy["OK"]:
109
- return S_ERROR(f"unable to setup shifter proxy for {shifter}: {getProxy['Message']}")
109
+ self.log.error("unable to setup shifter proxy", f"{shifter}: {getProxy['Message']}")
110
+ continue
110
111
  chain = getProxy["chain"]
111
112
  fileName = getProxy["Value"]
112
113
  self.log.debug(f"got {shifter}: {userName} {userGroup}")