rucio-clients 37.4.0__tar.gz → 37.5.0__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.

Potentially problematic release.


This version of rucio-clients might be problematic. Click here for more details.

Files changed (200) hide show
  1. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/PKG-INFO +1 -1
  2. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/downloadclient.py +1 -1
  3. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/requestclient.py +6 -5
  4. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/constants.py +14 -17
  5. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/utils.py +18 -2
  6. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/rsemanager.py +2 -2
  7. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/vcsversion.py +3 -3
  8. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_conveyor.py +9 -0
  9. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_gateway_external_representation.py +1 -1
  10. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_throttler.py +2 -1
  11. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/AUTHORS.rst +0 -0
  12. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/ChangeLog +0 -0
  13. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/LICENSE +0 -0
  14. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/MANIFEST.in +0 -0
  15. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/README.md +0 -0
  16. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/bin/rucio +0 -0
  17. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/bin/rucio-admin +0 -0
  18. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/etc/rse-accounts.cfg.template +0 -0
  19. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/etc/rucio.cfg.atlas.client.template +0 -0
  20. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/etc/rucio.cfg.template +0 -0
  21. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/__init__.py +0 -0
  22. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/alembicrevision.py +0 -0
  23. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/__init__.py +0 -0
  24. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/account.py +0 -0
  25. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/bin_legacy/__init__.py +0 -0
  26. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/bin_legacy/rucio.py +0 -0
  27. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/bin_legacy/rucio_admin.py +0 -0
  28. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/command.py +0 -0
  29. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/config.py +0 -0
  30. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/did.py +0 -0
  31. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/download.py +0 -0
  32. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/lifetime_exception.py +0 -0
  33. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/replica.py +0 -0
  34. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/rse.py +0 -0
  35. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/rule.py +0 -0
  36. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/scope.py +0 -0
  37. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/subscription.py +0 -0
  38. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/upload.py +0 -0
  39. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/cli/utils.py +0 -0
  40. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/__init__.py +0 -0
  41. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/accountclient.py +0 -0
  42. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/accountlimitclient.py +0 -0
  43. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/baseclient.py +0 -0
  44. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/client.py +0 -0
  45. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/configclient.py +0 -0
  46. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/credentialclient.py +0 -0
  47. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/didclient.py +0 -0
  48. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/diracclient.py +0 -0
  49. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/exportclient.py +0 -0
  50. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/fileclient.py +0 -0
  51. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/importclient.py +0 -0
  52. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/lifetimeclient.py +0 -0
  53. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/lockclient.py +0 -0
  54. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/metaconventionsclient.py +0 -0
  55. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/pingclient.py +0 -0
  56. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/replicaclient.py +0 -0
  57. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/richclient.py +0 -0
  58. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/rseclient.py +0 -0
  59. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/ruleclient.py +0 -0
  60. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/scopeclient.py +0 -0
  61. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/subscriptionclient.py +0 -0
  62. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/touchclient.py +0 -0
  63. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/client/uploadclient.py +0 -0
  64. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/__init__.py +0 -0
  65. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/bittorrent.py +0 -0
  66. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/cache.py +0 -0
  67. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/checksum.py +0 -0
  68. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/client.py +0 -0
  69. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/config.py +0 -0
  70. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/constraints.py +0 -0
  71. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/didtype.py +0 -0
  72. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/exception.py +0 -0
  73. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/extra.py +0 -0
  74. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/logging.py +0 -0
  75. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/pcache.py +0 -0
  76. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/plugins.py +0 -0
  77. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/policy.py +0 -0
  78. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/schema/__init__.py +0 -0
  79. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/schema/generic.py +0 -0
  80. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  81. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/stomp_utils.py +0 -0
  82. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/stopwatch.py +0 -0
  83. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/test_rucio_server.py +0 -0
  84. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/common/types.py +0 -0
  85. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/__init__.py +0 -0
  86. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/__init__.py +0 -0
  87. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
  88. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/cache.py +0 -0
  89. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/dummy.py +0 -0
  90. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/gfal.py +0 -0
  91. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/globus.py +0 -0
  92. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
  93. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/mock.py +0 -0
  94. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
  95. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/posix.py +0 -0
  96. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/protocol.py +0 -0
  97. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/rclone.py +0 -0
  98. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/rfio.py +0 -0
  99. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/srm.py +0 -0
  100. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/ssh.py +0 -0
  101. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/storm.py +0 -0
  102. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/webdav.py +0 -0
  103. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
  104. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/rse/translation.py +0 -0
  105. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio/version.py +0 -0
  106. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
  107. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/pyproject.toml +0 -0
  108. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/requirements/requirements.client.txt +0 -0
  109. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/setup.cfg +0 -0
  110. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/setup.py +0 -0
  111. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/setuputil.py +0 -0
  112. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_abacus_account.py +0 -0
  113. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_abacus_collection_replica.py +0 -0
  114. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_abacus_rse.py +0 -0
  115. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_account.py +0 -0
  116. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_account_limits.py +0 -0
  117. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_archive.py +0 -0
  118. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_auditor.py +0 -0
  119. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_auditor_hdfs.py +0 -0
  120. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_auditor_srmdumps.py +0 -0
  121. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_authentication.py +0 -0
  122. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_automatix.py +0 -0
  123. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_bad_replica.py +0 -0
  124. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_bb8.py +0 -0
  125. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_belleii.py +0 -0
  126. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_bin_rucio.py +0 -0
  127. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_boolean.py +0 -0
  128. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_cli_client_structure.py +0 -0
  129. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_clients.py +0 -0
  130. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_config.py +0 -0
  131. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_conveyor_submitter.py +0 -0
  132. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_counter.py +0 -0
  133. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_credential.py +0 -0
  134. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_curl.py +0 -0
  135. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_daemons.py +0 -0
  136. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_dataset_replicas.py +0 -0
  137. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_db.py +0 -0
  138. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_did.py +0 -0
  139. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_did_meta_plugins.py +0 -0
  140. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_download.py +0 -0
  141. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_dumper.py +0 -0
  142. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_filter_engine.py +0 -0
  143. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_heartbeat.py +0 -0
  144. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_hermes.py +0 -0
  145. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_identity.py +0 -0
  146. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_impl_upload_download.py +0 -0
  147. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_import_export.py +0 -0
  148. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_judge_cleaner.py +0 -0
  149. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_judge_evaluator.py +0 -0
  150. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_judge_injector.py +0 -0
  151. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_judge_repairer.py +0 -0
  152. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_lifetime.py +0 -0
  153. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_message.py +0 -0
  154. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_meta_conventions.py +0 -0
  155. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_meta_did.py +0 -0
  156. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_module_import.py +0 -0
  157. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_monitor.py +0 -0
  158. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_multi_vo.py +0 -0
  159. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_naming_convention.py +0 -0
  160. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_oauthmanager.py +0 -0
  161. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_oidc.py +0 -0
  162. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_permission.py +0 -0
  163. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_pfns.py +0 -0
  164. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_ping.py +0 -0
  165. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_policy_package.py +0 -0
  166. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_preparer.py +0 -0
  167. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_qos.py +0 -0
  168. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_quarantined_replica.py +0 -0
  169. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_reaper.py +0 -0
  170. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_redirect.py +0 -0
  171. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_replica.py +0 -0
  172. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_replica_recoverer.py +0 -0
  173. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_replica_sorting.py +0 -0
  174. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_request.py +0 -0
  175. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_root_proxy.py +0 -0
  176. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse.py +0 -0
  177. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_expression_parser.py +0 -0
  178. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_lfn2path.py +0 -0
  179. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_gfal2.py +0 -0
  180. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  181. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_posix.py +0 -0
  182. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_rclone.py +0 -0
  183. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_rsync.py +0 -0
  184. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_srm.py +0 -0
  185. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_ssh.py +0 -0
  186. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_webdav.py +0 -0
  187. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_protocol_xrootd.py +0 -0
  188. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rse_selector.py +0 -0
  189. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rucio_server.py +0 -0
  190. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_rule.py +0 -0
  191. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_scope.py +0 -0
  192. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_subscription.py +0 -0
  193. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_tpc.py +0 -0
  194. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_trace.py +0 -0
  195. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_transfer.py +0 -0
  196. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_transfer_plugins.py +0 -0
  197. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_undertaker.py +0 -0
  198. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_upload.py +0 -0
  199. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tests/test_utils.py +0 -0
  200. {rucio_clients-37.4.0 → rucio_clients-37.5.0}/tools/merge_rucio_configs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rucio-clients
3
- Version: 37.4.0
3
+ Version: 37.5.0
4
4
  Summary: Rucio Client Lite Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -1323,7 +1323,7 @@ class DownloadClient:
1323
1323
  def _resolve_one_item_dids(self, item: dict[str, Any]) -> "Iterator[dict[str, Any]]":
1324
1324
  """
1325
1325
  Resolve scopes or wildcard DIDs to lists of full did names:
1326
-
1326
+
1327
1327
  Parameters
1328
1328
  ----------
1329
1329
  item :
@@ -19,8 +19,8 @@ from urllib.parse import quote_plus
19
19
  from requests.status_codes import codes
20
20
 
21
21
  from rucio.client.baseclient import BaseClient, choice
22
+ from rucio.common.constants import TransferLimitDirection
22
23
  from rucio.common.utils import build_url
23
- from rucio.db.sqla.constants import TransferLimitDirection
24
24
 
25
25
  if TYPE_CHECKING:
26
26
  from collections.abc import Iterator, Sequence
@@ -192,14 +192,15 @@ class RequestClient(BaseClient):
192
192
  :param strategy: defines how to handle datasets: `fifo` (each file released separately) or `grouped_fifo` (wait for the entire dataset to fit)
193
193
  :param transfers: Current number of active transfers
194
194
  :param waitings: Current number of waiting transfers
195
-
195
+
196
196
  :returns: True if the transfer limit was deleted
197
197
  """
198
198
  path = '/'.join([self.REQUEST_BASEURL, 'transfer_limits'])
199
199
  url = build_url(choice(self.list_hosts), path=path)
200
- data = dumps({'rse_expression': rse_expression, 'activity': activity, 'direction': direction.value,
201
- 'max_transfers': max_transfers, 'volume': volume, 'deadline': deadline, 'strategy': strategy,
202
- 'transfers': transfers, 'waitings': waitings})
200
+ data = dumps({'rse_expression': rse_expression, 'activity': activity,
201
+ 'direction': direction.value, 'max_transfers': max_transfers,
202
+ 'volume': volume, 'deadline': deadline, 'strategy': strategy,
203
+ 'transfers': transfers, 'waitings': waitings})
203
204
  r = self._send_request(url, type_='PUT', data=data)
204
205
 
205
206
  if r.status_code == codes.created:
@@ -16,8 +16,6 @@ import enum
16
16
  from collections import namedtuple
17
17
  from typing import Literal, get_args
18
18
 
19
- from rucio.common.config import config_get_bool
20
-
21
19
  """
22
20
  Constants.
23
21
 
@@ -32,21 +30,16 @@ RESERVED_KEYS = ['scope', 'name', 'account', 'did_type', 'is_open', 'monotonic',
32
30
  KEY_TYPES = ['ALL', 'COLLECTION', 'FILE', 'DERIVED']
33
31
  # all(container, dataset, file), collection(dataset or container), file, derived(compute from file for collection)
34
32
 
35
- SCHEME_MAP = {'srm': ['srm', 'gsiftp'],
36
- 'gsiftp': ['srm', 'gsiftp'],
37
- 'https': ['https', 'davs', 'srm+https', 'cs3s'],
38
- 'davs': ['https', 'davs', 'srm+https', 'cs3s'],
39
- 'srm+https': ['https', 'davs', 'srm+https', 'cs3s'],
40
- 'cs3s': ['https', 'davs', 'srm+https', 'cs3s'],
41
- 'root': ['root'],
42
- 'scp': ['scp'],
43
- 'rsync': ['rsync'],
44
- 'rclone': ['rclone']}
45
- if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
46
- SCHEME_MAP['srm'].append('https')
47
- SCHEME_MAP['https'].append('srm')
48
- SCHEME_MAP['srm'].append('davs')
49
- SCHEME_MAP['davs'].append('srm')
33
+ BASE_SCHEME_MAP = {'srm': ['srm', 'gsiftp'],
34
+ 'gsiftp': ['srm', 'gsiftp'],
35
+ 'https': ['https', 'davs', 'srm+https', 'cs3s'],
36
+ 'davs': ['https', 'davs', 'srm+https', 'cs3s'],
37
+ 'srm+https': ['https', 'davs', 'srm+https', 'cs3s'],
38
+ 'cs3s': ['https', 'davs', 'srm+https', 'cs3s'],
39
+ 'root': ['root'],
40
+ 'scp': ['scp'],
41
+ 'rsync': ['rsync'],
42
+ 'rclone': ['rclone']}
50
43
 
51
44
  SORTING_ALGORITHMS_LITERAL = Literal['geoip', 'custom_table', 'random']
52
45
  SORTING_ALGORITHMS = list(get_args(SORTING_ALGORITHMS_LITERAL))
@@ -76,6 +69,10 @@ FTS_JOB_TYPE = namedtuple('FTS_JOB_TYPE', ['MULTIPLE_REPLICA', 'MULTI_HOP', 'SES
76
69
 
77
70
  MAX_MESSAGE_LENGTH = 4000
78
71
 
72
+ @enum.unique
73
+ class TransferLimitDirection(enum.Enum):
74
+ SOURCE = 'S'
75
+ DESTINATION = 'D'
79
76
 
80
77
  @enum.unique
81
78
  class SuspiciousAvailability(enum.Enum):
@@ -32,7 +32,7 @@ import threading
32
32
  import time
33
33
  from collections import OrderedDict
34
34
  from enum import Enum
35
- from functools import wraps
35
+ from functools import cache, wraps
36
36
  from io import StringIO
37
37
  from itertools import zip_longest
38
38
  from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
@@ -42,7 +42,8 @@ from xml.etree import ElementTree
42
42
 
43
43
  import requests
44
44
 
45
- from rucio.common.config import config_get
45
+ from rucio.common.config import config_get, config_get_bool
46
+ from rucio.common.constants import BASE_SCHEME_MAP
46
47
  from rucio.common.exception import DIDFilterSyntaxError, DuplicateCriteriaInDIDFilter, InputValidationError, InvalidType, MetalinkJsonParsingError, MissingModuleException, RucioException
47
48
  from rucio.common.extra import import_extras
48
49
  from rucio.common.plugins import PolicyPackageAlgorithms
@@ -1690,3 +1691,18 @@ def is_method_overridden(obj, base_cls, method_name):
1690
1691
  if getattr(type(obj), method_name, None) is getattr(base_cls, method_name, None): # Caring for bound/unbound cases
1691
1692
  return False
1692
1693
  return True
1694
+
1695
+
1696
+ @cache
1697
+ def get_transfer_schemas() -> dict[str, list[str]]:
1698
+ """
1699
+ Extend base schema map based on SRM HTTPS compatibility.
1700
+ """
1701
+ scheme_map = BASE_SCHEME_MAP
1702
+ if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
1703
+ scheme_map['srm'].append('https')
1704
+ scheme_map['https'].append('srm')
1705
+ scheme_map['srm'].append('davs')
1706
+ scheme_map['davs'].append('srm')
1707
+
1708
+ return scheme_map
@@ -24,7 +24,7 @@ from rucio.common.checksum import GLOBALLY_SUPPORTED_CHECKSUMS
24
24
  from rucio.common.config import config_get_int
25
25
  from rucio.common.constraints import STRING_TYPES
26
26
  from rucio.common.logging import formatted_logger
27
- from rucio.common.utils import make_valid_did
27
+ from rucio.common.utils import get_transfer_schemas, make_valid_did
28
28
 
29
29
  if TYPE_CHECKING:
30
30
  from collections.abc import Callable
@@ -875,7 +875,7 @@ def __check_compatible_scheme(
875
875
 
876
876
  if dest_scheme == src_scheme:
877
877
  return True
878
- if src_scheme in constants.SCHEME_MAP.get(dest_scheme, []):
878
+ if src_scheme in get_transfer_schemas().get(dest_scheme, []):
879
879
  return True
880
880
 
881
881
  return False
@@ -4,8 +4,8 @@ This file is automatically generated; Do not edit it. :)
4
4
  '''
5
5
  VERSION_INFO = {
6
6
  'final': True,
7
- 'version': '37.4.0',
7
+ 'version': '37.5.0',
8
8
  'branch_nick': 'release-37',
9
- 'revision_id': '20eed71b1dd6d1d8e550966b7d40ea730a16c7d8',
10
- 'revno': 13754
9
+ 'revision_id': '092cfe864848019a987a3a167120cf5cf7df2f61',
10
+ 'revno': 13761
11
11
  }
@@ -452,6 +452,7 @@ def test_multisource(vo, did_factory, root_account, replica_client, caches_mock,
452
452
  )
453
453
 
454
454
 
455
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
455
456
  @skip_rse_tests_with_accounts
456
457
  @pytest.mark.dirty(reason="leaves files in XRD containers")
457
458
  @pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.RECEIVER])
@@ -525,6 +526,7 @@ def test_multisource_receiver(vo, did_factory, replica_client, root_account, met
525
526
  RECEIVER_GRACEFUL_STOP.clear()
526
527
 
527
528
 
529
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
528
530
  @skip_rse_tests_with_accounts
529
531
  @pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.RECEIVER])
530
532
  @pytest.mark.parametrize("caches_mock", [{"caches_to_mock": [
@@ -579,6 +581,7 @@ def test_multihop_receiver_on_failure(vo, did_factory, replica_client, root_acco
579
581
  RECEIVER_GRACEFUL_STOP.clear()
580
582
 
581
583
 
584
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
582
585
  @skip_rse_tests_with_accounts
583
586
  @pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.RECEIVER])
584
587
  @pytest.mark.parametrize("caches_mock", [{"caches_to_mock": [
@@ -623,6 +626,7 @@ def test_multihop_receiver_on_success(vo, did_factory, root_account, caches_mock
623
626
  RECEIVER_GRACEFUL_STOP.clear()
624
627
 
625
628
 
629
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
626
630
  @skip_rse_tests_with_accounts
627
631
  @pytest.mark.dirty(reason="leaves files in XRD containers")
628
632
  @pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.RECEIVER, NoParallelGroups.POLLER])
@@ -692,6 +696,7 @@ def test_receiver_archiving(vo, did_factory, root_account, caches_mock, scitags_
692
696
  RECEIVER_GRACEFUL_STOP.clear()
693
697
 
694
698
 
699
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
695
700
  @skip_rse_tests_with_accounts
696
701
  @pytest.mark.noparallel(groups=[NoParallelGroups.PREPARER, NoParallelGroups.THROTTLER, NoParallelGroups.SUBMITTER, NoParallelGroups.POLLER])
697
702
  @pytest.mark.parametrize("file_config_mock", [{
@@ -1023,6 +1028,7 @@ def test_failed_transfers_to_mas_existing_replica(rse_factory, did_factory, root
1023
1028
  assert rule_core.get_rule(rule2_id)['state'] == RuleState.STUCK
1024
1029
 
1025
1030
 
1031
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
1026
1032
  @skip_rse_tests_with_accounts
1027
1033
  @pytest.mark.noparallel(groups=[NoParallelGroups.SUBMITTER, NoParallelGroups.POLLER, NoParallelGroups.FINISHER])
1028
1034
  def test_lost_transfers(rse_factory, did_factory, root_account):
@@ -1425,6 +1431,7 @@ def test_multi_vo_certificates(file_config_mock, rse_factory, did_factory, scope
1425
1431
  assert sorted(certs_used_by_poller) == ['DEFAULT_DUMMY_CERT', 'NEW_VO_DUMMY_CERT']
1426
1432
 
1427
1433
 
1434
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
1428
1435
  @skip_rse_tests_with_accounts
1429
1436
  @pytest.mark.noparallel(groups=[NoParallelGroups.SUBMITTER, NoParallelGroups.POLLER, NoParallelGroups.FINISHER])
1430
1437
  @pytest.mark.parametrize("core_config_mock", [
@@ -1556,6 +1563,7 @@ def test_two_multihops_same_intermediate_rse(rse_factory, did_factory, root_acco
1556
1563
  assert dict_stats[rse2_id][rse1_id]['bytes_done'] == 2
1557
1564
 
1558
1565
 
1566
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
1559
1567
  @skip_rse_tests_with_accounts
1560
1568
  @pytest.mark.noparallel(groups=[NoParallelGroups.SUBMITTER, NoParallelGroups.POLLER])
1561
1569
  def test_checksum_validation(rse_factory, did_factory, root_account):
@@ -1608,6 +1616,7 @@ def test_checksum_validation(rse_factory, did_factory, root_account):
1608
1616
  assert request['state'] == RequestState.FAILED
1609
1617
 
1610
1618
 
1619
+ @pytest.mark.skip(reason="Pending https://cern.service-now.com/service-portal?id=ticket&table=incident&n=INC4506150")
1611
1620
  @skip_rse_tests_with_accounts
1612
1621
  @pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.RECEIVER])
1613
1622
  @pytest.mark.parametrize("file_config_mock", [
@@ -137,7 +137,7 @@ class TestGatewayExternalRepresentation:
137
137
  gateway_acc_lim.set_local_account_limit(account_name, rse1, 10000, issuer='root', vo=vo)
138
138
  gateway_acc_lim.set_global_account_limit(account_name, rse_expr, 20000, issuer='root', vo=vo)
139
139
 
140
- out = gateway_acc_lim.get_local_account_limit(account_name,rse=None, vo=vo)
140
+ out = gateway_acc_lim.get_local_account_limit(account_name, rse=None, vo=vo)
141
141
  assert rse1 in out
142
142
  assert rse1_id not in out
143
143
 
@@ -17,6 +17,7 @@ from datetime import datetime, timedelta
17
17
  import pytest
18
18
  from sqlalchemy import delete
19
19
 
20
+ from rucio.common.constants import TransferLimitDirection
20
21
  from rucio.common.utils import generate_uuid
21
22
  from rucio.core.did import add_did, attach_dids
22
23
  from rucio.core.distance import add_distance
@@ -34,7 +35,7 @@ from rucio.core.request import (
34
35
  from rucio.daemons.conveyor.preparer import preparer
35
36
  from rucio.daemons.conveyor.throttler import throttler
36
37
  from rucio.db.sqla import models
37
- from rucio.db.sqla.constants import DIDType, RequestState, RequestType, TransferLimitDirection
38
+ from rucio.db.sqla.constants import DIDType, RequestState, RequestType
38
39
  from rucio.db.sqla.session import get_session, transactional_session
39
40
  from rucio.tests.common import skiplimitedsql
40
41
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes