rucio 33.6.1__tar.gz → 34.0.0rc2__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 might be problematic. Click here for more details.

Files changed (595) hide show
  1. {rucio-33.6.1 → rucio-34.0.0rc2}/AUTHORS.rst +1 -0
  2. {rucio-33.6.1 → rucio-34.0.0rc2}/PKG-INFO +1 -1
  3. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/did.py +3 -2
  4. rucio-33.6.1/lib/rucio/api/meta.py → rucio-34.0.0rc2/lib/rucio/api/meta_conventions.py +15 -13
  5. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/client.py +2 -2
  6. rucio-33.6.1/lib/rucio/client/metaclient.py → rucio-34.0.0rc2/lib/rucio/client/metaconventionsclient.py +15 -12
  7. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/uploadclient.py +16 -2
  8. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/constants.py +1 -1
  9. {rucio-33.6.1/lib/rucio/core → rucio-34.0.0rc2/lib/rucio/common}/plugins.py +4 -2
  10. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/types.py +19 -1
  11. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/utils.py +566 -314
  12. rucio-33.6.1/lib/rucio/core/meta.py → rucio-34.0.0rc2/lib/rucio/core/meta_conventions.py +47 -34
  13. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/request.py +50 -2
  14. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rule.py +1243 -336
  15. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rule_grouping.py +31 -4
  16. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/transfer.py +31 -51
  17. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/common.py +26 -13
  18. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/poller.py +12 -9
  19. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/submitter.py +24 -4
  20. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/judge/injector.py +1 -2
  21. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/judge/repairer.py +0 -1
  22. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/reaper/reaper.py +2 -2
  23. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/models.py +8 -8
  24. rucio-34.0.0rc2/lib/rucio/rse/protocols/bittorrent.py +186 -0
  25. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/protocol.py +15 -15
  26. rucio-34.0.0rc2/lib/rucio/transfertool/bittorrent.py +198 -0
  27. rucio-34.0.0rc2/lib/rucio/transfertool/bittorrent_driver.py +53 -0
  28. rucio-34.0.0rc2/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +132 -0
  29. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/fts3.py +63 -25
  30. rucio-34.0.0rc2/lib/rucio/transfertool/fts3_plugins.py +141 -0
  31. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/mock.py +3 -1
  32. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/transfertool.py +10 -3
  33. rucio-34.0.0rc2/lib/rucio/vcsversion.py +11 -0
  34. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/auth.py +64 -57
  35. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/common.py +32 -2
  36. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/main.py +10 -1
  37. rucio-33.6.1/lib/rucio/web/rest/flaskapi/v1/meta.py → rucio-34.0.0rc2/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +21 -4
  38. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio.egg-info/SOURCES.txt +12 -6
  39. {rucio-33.6.1 → rucio-34.0.0rc2}/requirements.txt +2 -0
  40. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_abacus_collection_replica.py +2 -4
  41. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_account.py +7 -9
  42. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_authentication.py +21 -29
  43. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_conveyor.py +118 -10
  44. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_dataset_replicas.py +1 -1
  45. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_did.py +1 -2
  46. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_import_export.py +2 -2
  47. rucio-33.6.1/tests/test_meta.py → rucio-34.0.0rc2/tests/test_meta_conventions.py +4 -4
  48. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_multi_vo.py +7 -9
  49. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_permission.py +3 -3
  50. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_replica_sorting.py +3 -5
  51. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_root_proxy.py +3 -4
  52. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse.py +5 -7
  53. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rule.py +5 -6
  54. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_subscription.py +16 -20
  55. rucio-34.0.0rc2/tests/test_transfer_plugins.py +271 -0
  56. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_undertaker.py +11 -16
  57. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_upload.py +0 -6
  58. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_utils.py +25 -1
  59. rucio-33.6.1/lib/rucio/vcsversion.py +0 -11
  60. {rucio-33.6.1 → rucio-34.0.0rc2}/ChangeLog +0 -0
  61. {rucio-33.6.1 → rucio-34.0.0rc2}/LICENSE +0 -0
  62. {rucio-33.6.1 → rucio-34.0.0rc2}/MANIFEST.in +0 -0
  63. {rucio-33.6.1 → rucio-34.0.0rc2}/README.rst +0 -0
  64. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio +0 -0
  65. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-abacus-account +0 -0
  66. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-abacus-collection-replica +0 -0
  67. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-abacus-rse +0 -0
  68. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-admin +0 -0
  69. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-atropos +0 -0
  70. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-auditor +0 -0
  71. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-automatix +0 -0
  72. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-bb8 +0 -0
  73. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-c3po +0 -0
  74. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-cache-client +0 -0
  75. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-cache-consumer +0 -0
  76. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-finisher +0 -0
  77. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-poller +0 -0
  78. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-preparer +0 -0
  79. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-receiver +0 -0
  80. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-stager +0 -0
  81. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-submitter +0 -0
  82. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-conveyor-throttler +0 -0
  83. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-dark-reaper +0 -0
  84. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-dumper +0 -0
  85. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-follower +0 -0
  86. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-hermes +0 -0
  87. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-judge-cleaner +0 -0
  88. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-judge-evaluator +0 -0
  89. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-judge-injector +0 -0
  90. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-judge-repairer +0 -0
  91. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-kronos +0 -0
  92. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-minos +0 -0
  93. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-minos-temporary-expiration +0 -0
  94. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-necromancer +0 -0
  95. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-oauth-manager +0 -0
  96. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-reaper +0 -0
  97. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-replica-recoverer +0 -0
  98. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-rse-decommissioner +0 -0
  99. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-storage-consistency-actions +0 -0
  100. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-transmogrifier +0 -0
  101. {rucio-33.6.1 → rucio-34.0.0rc2}/bin/rucio-undertaker +0 -0
  102. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/alembic.ini.template +0 -0
  103. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/alembic_offline.ini.template +0 -0
  104. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/globus-config.yml.template +0 -0
  105. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/ldap.cfg.template +0 -0
  106. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  107. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  108. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  109. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  110. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  111. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  112. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/rse-accounts.cfg.template +0 -0
  113. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/rucio.cfg.atlas.client.template +0 -0
  114. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/rucio.cfg.template +0 -0
  115. {rucio-33.6.1 → rucio-34.0.0rc2}/etc/rucio_multi_vo.cfg.template +0 -0
  116. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/__init__.py +0 -0
  117. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/alembicrevision.py +0 -0
  118. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/__init__.py +0 -0
  119. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/account.py +0 -0
  120. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/account_limit.py +0 -0
  121. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/authentication.py +0 -0
  122. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/config.py +0 -0
  123. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/credential.py +0 -0
  124. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/dirac.py +0 -0
  125. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/exporter.py +0 -0
  126. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/heartbeat.py +0 -0
  127. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/identity.py +0 -0
  128. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/importer.py +0 -0
  129. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/lifetime_exception.py +0 -0
  130. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/lock.py +0 -0
  131. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/permission.py +0 -0
  132. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/quarantined_replica.py +0 -0
  133. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/replica.py +0 -0
  134. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/request.py +0 -0
  135. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/rse.py +0 -0
  136. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/rule.py +0 -0
  137. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/scope.py +0 -0
  138. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/subscription.py +0 -0
  139. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/api/vo.py +0 -0
  140. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/__init__.py +0 -0
  141. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/accountclient.py +0 -0
  142. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/accountlimitclient.py +0 -0
  143. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/baseclient.py +0 -0
  144. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/configclient.py +0 -0
  145. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/credentialclient.py +0 -0
  146. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/didclient.py +0 -0
  147. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/diracclient.py +0 -0
  148. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/downloadclient.py +0 -0
  149. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/exportclient.py +0 -0
  150. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/fileclient.py +0 -0
  151. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/importclient.py +0 -0
  152. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/lifetimeclient.py +0 -0
  153. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/lockclient.py +0 -0
  154. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/pingclient.py +0 -0
  155. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/replicaclient.py +0 -0
  156. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/requestclient.py +0 -0
  157. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/rseclient.py +0 -0
  158. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/ruleclient.py +0 -0
  159. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/scopeclient.py +0 -0
  160. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/subscriptionclient.py +0 -0
  161. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/client/touchclient.py +0 -0
  162. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/__init__.py +0 -0
  163. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/cache.py +0 -0
  164. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/config.py +0 -0
  165. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/constraints.py +0 -0
  166. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/didtype.py +0 -0
  167. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/dumper/__init__.py +0 -0
  168. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/dumper/consistency.py +0 -0
  169. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/dumper/data_models.py +0 -0
  170. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/dumper/path_parsing.py +0 -0
  171. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/exception.py +0 -0
  172. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/extra.py +0 -0
  173. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/logging.py +0 -0
  174. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/pcache.py +0 -0
  175. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/policy.py +0 -0
  176. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/__init__.py +0 -0
  177. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/atlas.py +0 -0
  178. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/belleii.py +0 -0
  179. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/cms.py +0 -0
  180. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/domatpc.py +0 -0
  181. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/escape.py +0 -0
  182. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/generic.py +0 -0
  183. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  184. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/icecube.py +0 -0
  185. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/schema/lsst.py +0 -0
  186. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/stomp_utils.py +0 -0
  187. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/stopwatch.py +0 -0
  188. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/common/test_rucio_server.py +0 -0
  189. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/__init__.py +0 -0
  190. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/account.py +0 -0
  191. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/account_counter.py +0 -0
  192. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/account_limit.py +0 -0
  193. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/authentication.py +0 -0
  194. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/config.py +0 -0
  195. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/credential.py +0 -0
  196. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did.py +0 -0
  197. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
  198. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
  199. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
  200. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
  201. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
  202. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
  203. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
  204. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/dirac.py +0 -0
  205. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/distance.py +0 -0
  206. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/exporter.py +0 -0
  207. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/heartbeat.py +0 -0
  208. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/identity.py +0 -0
  209. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/importer.py +0 -0
  210. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/lifetime_exception.py +0 -0
  211. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/lock.py +0 -0
  212. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/message.py +0 -0
  213. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/monitor.py +0 -0
  214. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/naming_convention.py +0 -0
  215. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/nongrid_trace.py +0 -0
  216. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/oidc.py +0 -0
  217. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/__init__.py +0 -0
  218. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/atlas.py +0 -0
  219. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/belleii.py +0 -0
  220. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/cms.py +0 -0
  221. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/escape.py +0 -0
  222. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/generic.py +0 -0
  223. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
  224. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/quarantined_replica.py +0 -0
  225. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/replica.py +0 -0
  226. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/replica_sorter.py +0 -0
  227. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rse.py +0 -0
  228. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rse_counter.py +0 -0
  229. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rse_expression_parser.py +0 -0
  230. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/rse_selector.py +0 -0
  231. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/scope.py +0 -0
  232. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/subscription.py +0 -0
  233. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/topology.py +0 -0
  234. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/trace.py +0 -0
  235. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/vo.py +0 -0
  236. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/core/volatile_replica.py +0 -0
  237. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/__init__.py +0 -0
  238. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/abacus/__init__.py +0 -0
  239. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/abacus/account.py +0 -0
  240. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
  241. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/abacus/rse.py +0 -0
  242. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/atropos/__init__.py +0 -0
  243. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/atropos/atropos.py +0 -0
  244. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/auditor/__init__.py +0 -0
  245. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  246. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/auditor/srmdumps.py +0 -0
  247. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/automatix/__init__.py +0 -0
  248. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/automatix/automatix.py +0 -0
  249. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
  250. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/badreplicas/minos.py +0 -0
  251. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
  252. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
  253. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/bb8/__init__.py +0 -0
  254. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/bb8/bb8.py +0 -0
  255. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/bb8/common.py +0 -0
  256. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
  257. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
  258. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/__init__.py +0 -0
  259. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
  260. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
  261. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
  262. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
  263. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
  264. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/c3po.py +0 -0
  265. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
  266. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
  267. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
  268. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
  269. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
  270. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
  271. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
  272. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
  273. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
  274. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
  275. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
  276. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
  277. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
  278. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/cache/__init__.py +0 -0
  279. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/cache/consumer.py +0 -0
  280. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/common.py +0 -0
  281. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/__init__.py +0 -0
  282. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/finisher.py +0 -0
  283. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/preparer.py +0 -0
  284. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/receiver.py +0 -0
  285. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/stager.py +0 -0
  286. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/conveyor/throttler.py +0 -0
  287. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/follower/__init__.py +0 -0
  288. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/follower/follower.py +0 -0
  289. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/hermes/__init__.py +0 -0
  290. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/hermes/hermes.py +0 -0
  291. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/judge/__init__.py +0 -0
  292. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/judge/cleaner.py +0 -0
  293. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/judge/evaluator.py +0 -0
  294. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
  295. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
  296. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/reaper/__init__.py +0 -0
  297. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
  298. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
  299. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
  300. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
  301. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
  302. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  303. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  304. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
  305. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  306. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
  307. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/storage/__init__.py +0 -0
  308. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
  309. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
  310. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/tracer/__init__.py +0 -0
  311. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/tracer/kronos.py +0 -0
  312. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
  313. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
  314. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/undertaker/__init__.py +0 -0
  315. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
  316. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/__init__.py +0 -0
  317. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/__init__.py +0 -0
  318. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/constants.py +0 -0
  319. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
  320. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  321. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  322. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  323. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  324. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  325. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
  326. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  327. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  328. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  329. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
  330. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  331. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  332. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  333. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  334. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  335. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  336. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  337. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  338. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  339. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  340. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  341. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  342. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  343. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  344. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  345. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  346. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  347. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  348. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  349. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  350. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  351. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  352. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  353. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  354. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  355. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  356. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  357. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  358. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  359. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  360. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
  361. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  362. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  363. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  364. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  365. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  366. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  367. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  368. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  369. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  370. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  371. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  372. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  373. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  374. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  375. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  376. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  377. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  378. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  379. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  380. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  381. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  382. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  383. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  384. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  385. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  386. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
  387. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  388. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  389. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  390. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  391. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  392. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  393. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  394. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  395. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  396. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  397. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  398. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  399. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  400. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  401. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  402. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  403. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  404. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  405. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  406. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  407. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  408. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  409. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  410. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  411. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  412. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  413. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  414. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  415. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  416. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  417. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  418. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  419. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  420. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  421. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  422. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  423. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  424. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  425. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  426. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  427. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  428. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  429. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  430. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
  431. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  432. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  433. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  434. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  435. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  436. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  437. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  438. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  439. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  440. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  441. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  442. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  443. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  444. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  445. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  446. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  447. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/sautils.py +0 -0
  448. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/session.py +0 -0
  449. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/types.py +0 -0
  450. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/db/sqla/util.py +0 -0
  451. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/__init__.py +0 -0
  452. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/__init__.py +0 -0
  453. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/cache.py +0 -0
  454. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/dummy.py +0 -0
  455. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/gfal.py +0 -0
  456. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/globus.py +0 -0
  457. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  458. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/http_cache.py +0 -0
  459. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/mock.py +0 -0
  460. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/ngarc.py +0 -0
  461. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/posix.py +0 -0
  462. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/rclone.py +0 -0
  463. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/rfio.py +0 -0
  464. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/srm.py +0 -0
  465. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/ssh.py +0 -0
  466. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/storm.py +0 -0
  467. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/webdav.py +0 -0
  468. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/protocols/xrootd.py +0 -0
  469. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/rse/rsemanager.py +0 -0
  470. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/tests/__init__.py +0 -0
  471. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/tests/common.py +0 -0
  472. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/tests/common_server.py +0 -0
  473. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/__init__.py +0 -0
  474. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/globus.py +0 -0
  475. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/transfertool/globus_library.py +0 -0
  476. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/version.py +0 -0
  477. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/__init__.py +0 -0
  478. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/__init__.py +0 -0
  479. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
  480. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  481. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
  482. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -0
  483. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -0
  484. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
  485. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
  486. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -0
  487. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/dids.py +0 -0
  488. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
  489. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
  490. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
  491. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
  492. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
  493. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
  494. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
  495. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
  496. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
  497. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
  498. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
  499. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
  500. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
  501. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
  502. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
  503. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
  504. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
  505. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  506. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  507. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
  508. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
  509. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/main.py +0 -0
  510. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/metrics.py +0 -0
  511. {rucio-33.6.1 → rucio-34.0.0rc2}/lib/rucio/web/rest/ping.py +0 -0
  512. {rucio-33.6.1 → rucio-34.0.0rc2}/pylintrc +0 -0
  513. {rucio-33.6.1 → rucio-34.0.0rc2}/pyproject.toml +0 -0
  514. {rucio-33.6.1 → rucio-34.0.0rc2}/setup.cfg +0 -0
  515. {rucio-33.6.1 → rucio-34.0.0rc2}/setup.py +0 -0
  516. {rucio-33.6.1 → rucio-34.0.0rc2}/setuputil.py +0 -0
  517. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_abacus_account.py +0 -0
  518. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_abacus_rse.py +0 -0
  519. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_account_limits.py +0 -0
  520. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_api_external_representation.py +0 -0
  521. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_archive.py +0 -0
  522. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_auditor.py +0 -0
  523. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_auditor_hdfs.py +0 -0
  524. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_auditor_srmdumps.py +0 -0
  525. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_automatix.py +0 -0
  526. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_bad_replica.py +0 -0
  527. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_bb8.py +0 -0
  528. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_belleii.py +0 -0
  529. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_bin_rucio.py +0 -0
  530. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_boolean.py +0 -0
  531. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_clients.py +0 -0
  532. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_common_types.py +0 -0
  533. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_config.py +0 -0
  534. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_conveyor_submitter.py +0 -0
  535. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_counter.py +0 -0
  536. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_credential.py +0 -0
  537. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_curl.py +0 -0
  538. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_daemons.py +0 -0
  539. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_db.py +0 -0
  540. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_did_meta_plugins.py +0 -0
  541. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_didtype.py +0 -0
  542. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_download.py +0 -0
  543. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_dumper.py +0 -0
  544. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_dumper_consistency.py +0 -0
  545. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_dumper_data_model.py +0 -0
  546. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_dumper_path_parsing.py +0 -0
  547. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_filter_engine.py +0 -0
  548. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_heartbeat.py +0 -0
  549. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_hermes.py +0 -0
  550. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_identity.py +0 -0
  551. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_impl_upload_download.py +0 -0
  552. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_judge_cleaner.py +0 -0
  553. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_judge_evaluator.py +0 -0
  554. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_judge_injector.py +0 -0
  555. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_judge_repairer.py +0 -0
  556. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_lifetime.py +0 -0
  557. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_message.py +0 -0
  558. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_meta_did.py +0 -0
  559. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_module_import.py +0 -0
  560. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_monitor.py +0 -0
  561. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_naming_convention.py +0 -0
  562. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_oauthmanager.py +0 -0
  563. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_oidc.py +0 -0
  564. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_pfns.py +0 -0
  565. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_ping.py +0 -0
  566. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_preparer.py +0 -0
  567. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_qos.py +0 -0
  568. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_quarantined_replica.py +0 -0
  569. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_reaper.py +0 -0
  570. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_redirect.py +0 -0
  571. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_replica.py +0 -0
  572. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_replica_recoverer.py +0 -0
  573. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_request.py +0 -0
  574. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_expression_parser.py +0 -0
  575. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_lfn2path.py +0 -0
  576. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_gfal2.py +0 -0
  577. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  578. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_posix.py +0 -0
  579. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_rclone.py +0 -0
  580. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_rsync.py +0 -0
  581. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_srm.py +0 -0
  582. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_ssh.py +0 -0
  583. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_webdav.py +0 -0
  584. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_protocol_xrootd.py +0 -0
  585. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rse_selector.py +0 -0
  586. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_rucio_server.py +0 -0
  587. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_schema_cms.py +0 -0
  588. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_scope.py +0 -0
  589. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_throttler.py +0 -0
  590. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_tpc.py +0 -0
  591. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_trace.py +0 -0
  592. {rucio-33.6.1 → rucio-34.0.0rc2}/tests/test_transfer.py +0 -0
  593. {rucio-33.6.1 → rucio-34.0.0rc2}/tools/bootstrap.py +0 -0
  594. {rucio-33.6.1 → rucio-34.0.0rc2}/tools/merge_rucio_configs.py +0 -0
  595. {rucio-33.6.1 → rucio-34.0.0rc2}/tools/reset_database.py +0 -0
@@ -65,6 +65,7 @@ Individual contributors to the source code
65
65
  - Stefan Piperov <stefan.piperov@cern.ch>, 2021
66
66
  - Jensen Zhang <hack@jensen-zhang.site>, 2022
67
67
  - Aksel Lunde Aase <aksel.lunde.aase@gmail.com>, 2022
68
+ - Elena Gazzarrini <gazzarrini.elena@gmail.com>, 2022-2023
68
69
 
69
70
  Organisations employing contributors
70
71
  ------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio
3
- Version: 33.6.1
3
+ Version: 34.0.0rc2
4
4
  Summary: Rucio Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -22,8 +22,9 @@ from rucio.common.exception import RucioException
22
22
  from rucio.common.schema import validate_schema
23
23
  from rucio.common.types import InternalAccount, InternalScope
24
24
  from rucio.common.utils import api_update_return_dict
25
- from rucio.core import did, naming_convention, meta as meta_core
25
+ from rucio.core import did, naming_convention
26
26
  from rucio.core.rse import get_rse_id
27
+ from rucio.core import meta_conventions as meta_convention_core
27
28
  from rucio.db.sqla.constants import DIDType
28
29
  from rucio.db.sqla.session import read_session, stream_session, transactional_session
29
30
 
@@ -117,7 +118,7 @@ def add_did(scope, name, did_type, issuer, account=None, statuses={}, meta={}, r
117
118
  raise rucio.common.exception.InvalidObject("Provided metadata %s doesn't match the naming convention: %s != %s" % (k, meta[k], extra_meta[k]))
118
119
 
119
120
  # Validate metadata
120
- meta_core.validate_meta(meta=meta, did_type=DIDType[did_type.upper()], session=session)
121
+ meta_convention_core.validate_meta(meta=meta, did_type=DIDType[did_type.upper()], session=session)
121
122
 
122
123
  return did.add_did(scope=scope, name=name, did_type=DIDType[did_type.upper()], account=account or issuer,
123
124
  statuses=statuses, meta=meta, rules=rules, lifetime=lifetime,
@@ -13,33 +13,35 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- from typing import TYPE_CHECKING
16
+ from typing import TYPE_CHECKING, Union, Optional
17
17
 
18
18
  from rucio.api.permission import has_permission
19
19
  from rucio.common.exception import AccessDenied
20
- from rucio.core import meta
20
+ from rucio.core import meta_conventions
21
21
  from rucio.db.sqla.session import read_session, transactional_session
22
+ from rucio.db.sqla.constants import KeyType
22
23
 
23
24
  if TYPE_CHECKING:
24
25
  from sqlalchemy.orm import Session
26
+ from rucio.common.types import InternalAccount
25
27
 
26
28
 
27
29
  @read_session
28
30
  def list_keys(*, session: "Session"):
29
31
  """
30
- Lists all keys.
32
+ Lists all keys for DID Metadata Conventions.
31
33
 
32
34
  :param session: The database session in use.
33
35
 
34
36
  :returns: A list containing all keys.
35
37
  """
36
- return meta.list_keys(session=session)
38
+ return meta_conventions.list_keys(session=session)
37
39
 
38
40
 
39
41
  @read_session
40
- def list_values(key, *, session: "Session"):
42
+ def list_values(key: str, *, session: "Session"):
41
43
  """
42
- Lists all values for a key.
44
+ Lists all allowed values for a DID key (all values for a key in DID Metadata Conventions).
43
45
 
44
46
  :param key: the name for the key.
45
47
  :param session: The database session in use.
@@ -47,13 +49,13 @@ def list_values(key, *, session: "Session"):
47
49
 
48
50
  :returns: A list containing all values.
49
51
  """
50
- return meta.list_values(key=key, session=session)
52
+ return meta_conventions.list_values(key=key, session=session)
51
53
 
52
54
 
53
55
  @transactional_session
54
- def add_key(key, key_type, issuer, value_type=None, value_regexp=None, vo='def', *, session: "Session"):
56
+ def add_key(key: str, key_type: Union[KeyType, str], issuer: "InternalAccount", value_type: Optional[str] = None, value_regexp: Optional[str] = None, vo: str = 'def', *, session: "Session"):
55
57
  """
56
- Add a new allowed key.
58
+ Add an allowed key for DID metadata (update the DID Metadata Conventions table with a new key).
57
59
 
58
60
  :param key: the name for the new key.
59
61
  :param key_type: the type of the key: all(container, dataset, file), collection(dataset or container), file, derived(compute from file for collection).
@@ -66,13 +68,13 @@ def add_key(key, key_type, issuer, value_type=None, value_regexp=None, vo='def',
66
68
  kwargs = {'key': key, 'key_type': key_type, 'value_type': value_type, 'value_regexp': value_regexp}
67
69
  if not has_permission(issuer=issuer, vo=vo, action='add_key', kwargs=kwargs, session=session):
68
70
  raise AccessDenied('Account %s can not add key' % (issuer))
69
- return meta.add_key(key=key, key_type=key_type, value_type=value_type, value_regexp=value_regexp, session=session)
71
+ return meta_conventions.add_key(key=key, key_type=key_type, value_type=value_type, value_regexp=value_regexp, session=session)
70
72
 
71
73
 
72
74
  @transactional_session
73
- def add_value(key, value, issuer, vo='def', *, session: "Session"):
75
+ def add_value(key: str, value: str, issuer: "InternalAccount", vo: str = 'def', *, session: "Session"):
74
76
  """
75
- Add a new value to a key.
77
+ Add an allowed value for DID metadata (update a key in DID Metadata Conventions table).
76
78
 
77
79
  :param key: the name for the key.
78
80
  :param value: the value.
@@ -82,4 +84,4 @@ def add_value(key, value, issuer, vo='def', *, session: "Session"):
82
84
  kwargs = {'key': key, 'value': value}
83
85
  if not has_permission(issuer=issuer, vo=vo, action='add_value', kwargs=kwargs, session=session):
84
86
  raise AccessDenied('Account %s can not add value %s to key %s' % (issuer, value, key))
85
- return meta.add_value(key=key, value=value, session=session)
87
+ return meta_conventions.add_value(key=key, value=value, session=session)
@@ -27,7 +27,7 @@ from rucio.client.exportclient import ExportClient
27
27
  from rucio.client.importclient import ImportClient
28
28
  from rucio.client.lifetimeclient import LifetimeClient
29
29
  from rucio.client.lockclient import LockClient
30
- from rucio.client.metaclient import MetaClient
30
+ from rucio.client.metaconventionsclient import MetaConventionClient
31
31
  from rucio.client.pingclient import PingClient
32
32
  from rucio.client.replicaclient import ReplicaClient
33
33
  from rucio.client.requestclient import RequestClient
@@ -40,7 +40,7 @@ from rucio.client.touchclient import TouchClient
40
40
 
41
41
  class Client(AccountClient,
42
42
  AccountLimitClient,
43
- MetaClient,
43
+ MetaConventionClient,
44
44
  PingClient,
45
45
  ReplicaClient,
46
46
  RequestClient,
@@ -21,17 +21,19 @@ from requests.status_codes import codes
21
21
  from rucio.client.baseclient import BaseClient
22
22
  from rucio.client.baseclient import choice
23
23
  from rucio.common.utils import build_url
24
+ from rucio.db.sqla.constants import KeyType
25
+ from typing import Union, Optional
24
26
 
25
27
 
26
- class MetaClient(BaseClient):
28
+ class MetaConventionClient(BaseClient):
27
29
 
28
- """Meta client class for working with data identifier attributes"""
30
+ """Metadata client class for working with data identifier attributes"""
29
31
 
30
- META_BASEURL = 'meta'
32
+ META_BASEURL = 'meta_conventions'
31
33
 
32
- def add_key(self, key, key_type, value_type=None, value_regexp=None):
34
+ def add_key(self, key: str, key_type: Union[KeyType, str], value_type: Optional[str] = None, value_regexp: Optional[str] = None) -> Optional[bool]:
33
35
  """
34
- Sends the request to add a new key.
36
+ Sends the request to add an allowed key for DID metadata (update the DID Metadata Conventions table with a new key).
35
37
 
36
38
  :param key: the name for the new key.
37
39
  :param key_type: the type of the key: all(container, dataset, file), collection(dataset or container), file, derived(compute from file for collection).
@@ -56,9 +58,9 @@ class MetaClient(BaseClient):
56
58
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
57
59
  raise exc_cls(exc_msg)
58
60
 
59
- def list_keys(self):
61
+ def list_keys(self) -> Optional[list[str]]:
60
62
  """
61
- Sends the request to list all keys.
63
+ Sends the request to list all keys for DID Metadata Conventions.
62
64
 
63
65
  :return: a list containing the names of all keys.
64
66
  """
@@ -72,9 +74,10 @@ class MetaClient(BaseClient):
72
74
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
73
75
  raise exc_cls(exc_msg)
74
76
 
75
- def list_values(self, key):
77
+ def list_values(self, key: str) -> Optional[list[str]]:
76
78
  """
77
- Sends the request to list all values for a key.
79
+ Sends the request to lists all allowed values for a DID key (all values for a key in DID Metadata Conventions).
80
+ .
78
81
 
79
82
  :return: a list containing the names of all values for a key.
80
83
  """
@@ -88,9 +91,9 @@ class MetaClient(BaseClient):
88
91
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
89
92
  raise exc_cls(exc_msg)
90
93
 
91
- def add_value(self, key, value):
94
+ def add_value(self, key: str, value: str) -> Optional[bool]:
92
95
  """
93
- Sends the request to add a value to a key.
96
+ Sends the request to add a value for a key in DID Metadata Convention.
94
97
 
95
98
  :param key: the name for key.
96
99
  :param value: the value.
@@ -111,7 +114,7 @@ class MetaClient(BaseClient):
111
114
 
112
115
  def del_value(self, key, value):
113
116
  """
114
- Delete a value for a key.
117
+ Delete a key in the DID Metadata Conventions table.
115
118
 
116
119
  :param key: the name for key.
117
120
  :param value: the value.
@@ -13,6 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
+ import base64
16
17
  import copy
17
18
  import json
18
19
  import logging
@@ -24,13 +25,13 @@ import time
24
25
 
25
26
  from rucio import version
26
27
  from rucio.client.client import Client
27
- from rucio.common.config import config_get_int, config_get
28
+ from rucio.common.config import config_get_int, config_get, config_get_bool
28
29
  from rucio.common.exception import (RucioException, RSEWriteBlocked, DataIdentifierAlreadyExists, RSEOperationNotSupported,
29
30
  DataIdentifierNotFound, NoFilesUploaded, NotAllFilesUploaded, FileReplicaAlreadyExists,
30
31
  ResourceTemporaryUnavailable, ServiceUnavailable, InputValidationError, RSEChecksumUnavailable,
31
32
  ScopeNotFound)
32
33
  from rucio.common.utils import (adler32, detect_client_location, execute, generate_uuid, make_valid_did, md5, send_trace,
33
- retry, GLOBALLY_SUPPORTED_CHECKSUMS)
34
+ retry, bittorrent_v2_merkle_sha256, GLOBALLY_SUPPORTED_CHECKSUMS)
34
35
  from rucio.rse import rsemanager as rsemgr
35
36
 
36
37
 
@@ -336,6 +337,18 @@ class UploadClient:
336
337
  raise NotAllFilesUploaded()
337
338
  return 0
338
339
 
340
+ def _add_bittorrent_meta(self, file, logger):
341
+ if not config_get_bool('client', 'register_bittorrent_meta', default=False):
342
+ return
343
+
344
+ pieces_root, pieces_layers, piece_length = bittorrent_v2_merkle_sha256(os.path.join(file['dirname'], file['basename']))
345
+ bittorrent_meta = {
346
+ 'bittorrent_pieces_root': base64.b64encode(pieces_root).decode(),
347
+ 'bittorrent_pieces_layers': base64.b64encode(pieces_layers).decode(),
348
+ 'bittorrent_piece_length': piece_length,
349
+ }
350
+ self.client.set_metadata_bulk(scope=file['did_scope'], name=file['did_name'], meta=bittorrent_meta)
351
+
339
352
  def _register_file(self, file, registered_dataset_dids, ignore_availability=False, activity=None):
340
353
  """
341
354
  Registers the given file in Rucio. Creates a dataset if
@@ -410,6 +423,7 @@ class UploadClient:
410
423
  except DataIdentifierNotFound:
411
424
  logger(logging.DEBUG, 'File DID does not exist')
412
425
  self.client.add_replicas(rse=rse, files=[replica_for_api])
426
+ self._add_bittorrent_meta(file=file, logger=logger)
413
427
  logger(logging.INFO, 'Successfully added replica in Rucio catalogue at %s' % rse)
414
428
  if not dataset_did_str:
415
429
  # only need to add rules for files if no dataset is given
@@ -48,7 +48,7 @@ if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False
48
48
  SCHEME_MAP['srm'].append('davs')
49
49
  SCHEME_MAP['davs'].append('srm')
50
50
 
51
- SUPPORTED_PROTOCOLS = ['gsiftp', 'srm', 'root', 'davs', 'http', 'https', 'file', 'storm', 'srm+https', 'scp', 'rsync', 'rclone']
51
+ SUPPORTED_PROTOCOLS = ['gsiftp', 'srm', 'root', 'davs', 'http', 'https', 'file', 'storm', 'srm+https', 'scp', 'rsync', 'rclone', 'magnet']
52
52
 
53
53
  FTS_STATE = namedtuple('FTS_STATE', ['SUBMITTED', 'READY', 'ACTIVE', 'FAILED', 'FINISHED', 'FINISHEDDIRTY', 'NOT_USED',
54
54
  'CANCELED'])('SUBMITTED', 'READY', 'ACTIVE', 'FAILED', 'FINISHED', 'FINISHEDDIRTY',
@@ -20,8 +20,6 @@ from typing import Any, Callable, Dict, TypeVar, Type
20
20
 
21
21
  from rucio.common import config
22
22
  from rucio.common.exception import InvalidAlgorithmName
23
- from rucio.common.utils import check_policy_package_version
24
- from rucio.core.vo import list_vos
25
23
 
26
24
 
27
25
  PolicyPackageAlgorithmsT = TypeVar('PolicyPackageAlgorithmsT', bound='PolicyPackageAlgorithms')
@@ -114,6 +112,7 @@ class PolicyPackageAlgorithms():
114
112
  cls._try_importing_policy(vo)
115
113
  # on server, list all VOs and register their algorithms
116
114
  else:
115
+ from rucio.core.vo import list_vos
117
116
  # policy package per VO
118
117
  vos = list_vos()
119
118
  for vo in vos:
@@ -122,6 +121,9 @@ class PolicyPackageAlgorithms():
122
121
  @classmethod
123
122
  def _try_importing_policy(cls: Type[PolicyPackageAlgorithmsT], vo: str = "") -> None:
124
123
  try:
124
+ # import from utils here to avoid circular import
125
+ from rucio.common.utils import check_policy_package_version
126
+
125
127
  env_name = 'RUCIO_POLICY_PACKAGE' + ('' if not vo else '_' + vo.upper())
126
128
  package = getattr(os.environ, env_name, "")
127
129
  if not package:
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- from typing import Any, Optional, TypedDict, Union
16
+ from typing import Any, Callable, Literal, Optional, TypedDict, Union
17
17
 
18
18
 
19
19
  class InternalType(object):
@@ -104,6 +104,9 @@ class InternalScope(InternalType):
104
104
  super(InternalScope, self).__init__(value=scope, vo=vo, fromExternal=fromExternal)
105
105
 
106
106
 
107
+ LoggerFunction = Callable[..., Any]
108
+
109
+
107
110
  class RSEDomainLANDict(TypedDict):
108
111
  read: Optional[int]
109
112
  write: Optional[int]
@@ -156,3 +159,18 @@ class RSESettingsDict(TypedDict):
156
159
  deterministic: bool
157
160
  domain: list[str]
158
161
  protocols: list[RSEProtocolDict]
162
+
163
+
164
+ class RuleDict(TypedDict):
165
+ account: InternalAccount
166
+ copies: int
167
+ rse_expression: str
168
+ grouping: Literal['ALL', 'DATASET', 'NONE']
169
+ weight: Optional[str]
170
+ lifetime: Optional[int]
171
+ locked: bool
172
+ subscription_id: Optional[str]
173
+ source_replica_expression: Optional[str]
174
+ activity: str
175
+ notify: Optional[Literal['Y', 'N', 'C', 'P']]
176
+ purge_replicas: bool