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

Files changed (593) hide show
  1. {rucio-35.4.0 → rucio-35.5.0}/PKG-INFO +1 -1
  2. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-replica-recoverer +3 -3
  3. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/didclient.py +2 -2
  4. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/subscription.py +19 -14
  5. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/sautils.py +10 -2
  6. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/fts3.py +3 -4
  7. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/fts3_plugins.py +7 -5
  8. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/vcsversion.py +3 -3
  9. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -1
  10. {rucio-35.4.0 → rucio-35.5.0}/tests/test_transfer_plugins.py +40 -4
  11. {rucio-35.4.0 → rucio-35.5.0}/AUTHORS.rst +0 -0
  12. {rucio-35.4.0 → rucio-35.5.0}/ChangeLog +0 -0
  13. {rucio-35.4.0 → rucio-35.5.0}/LICENSE +0 -0
  14. {rucio-35.4.0 → rucio-35.5.0}/MANIFEST.in +0 -0
  15. {rucio-35.4.0 → rucio-35.5.0}/README.md +0 -0
  16. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio +0 -0
  17. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-account +0 -0
  18. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-collection-replica +0 -0
  19. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-rse +0 -0
  20. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-admin +0 -0
  21. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-atropos +0 -0
  22. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-auditor +0 -0
  23. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-automatix +0 -0
  24. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-bb8 +0 -0
  25. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-c3po +0 -0
  26. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-cache-client +0 -0
  27. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-cache-consumer +0 -0
  28. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-finisher +0 -0
  29. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-poller +0 -0
  30. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-preparer +0 -0
  31. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-receiver +0 -0
  32. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-stager +0 -0
  33. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-submitter +0 -0
  34. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-throttler +0 -0
  35. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-dark-reaper +0 -0
  36. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-dumper +0 -0
  37. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-follower +0 -0
  38. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-hermes +0 -0
  39. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-cleaner +0 -0
  40. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-evaluator +0 -0
  41. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-injector +0 -0
  42. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-repairer +0 -0
  43. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-kronos +0 -0
  44. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-minos +0 -0
  45. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-minos-temporary-expiration +0 -0
  46. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-necromancer +0 -0
  47. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-oauth-manager +0 -0
  48. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-reaper +0 -0
  49. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-rse-decommissioner +0 -0
  50. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-storage-consistency-actions +0 -0
  51. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-transmogrifier +0 -0
  52. {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-undertaker +0 -0
  53. {rucio-35.4.0 → rucio-35.5.0}/etc/alembic.ini.template +0 -0
  54. {rucio-35.4.0 → rucio-35.5.0}/etc/alembic_offline.ini.template +0 -0
  55. {rucio-35.4.0 → rucio-35.5.0}/etc/globus-config.yml.template +0 -0
  56. {rucio-35.4.0 → rucio-35.5.0}/etc/ldap.cfg.template +0 -0
  57. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  58. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  59. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  60. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  61. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  62. {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  63. {rucio-35.4.0 → rucio-35.5.0}/etc/rse-accounts.cfg.template +0 -0
  64. {rucio-35.4.0 → rucio-35.5.0}/etc/rucio.cfg.atlas.client.template +0 -0
  65. {rucio-35.4.0 → rucio-35.5.0}/etc/rucio.cfg.template +0 -0
  66. {rucio-35.4.0 → rucio-35.5.0}/etc/rucio_multi_vo.cfg.template +0 -0
  67. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/__init__.py +0 -0
  68. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/alembicrevision.py +0 -0
  69. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/__init__.py +0 -0
  70. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/accountclient.py +0 -0
  71. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/accountlimitclient.py +0 -0
  72. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/baseclient.py +0 -0
  73. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/client.py +0 -0
  74. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/configclient.py +0 -0
  75. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/credentialclient.py +0 -0
  76. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/diracclient.py +0 -0
  77. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/downloadclient.py +0 -0
  78. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/exportclient.py +0 -0
  79. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/fileclient.py +0 -0
  80. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/importclient.py +0 -0
  81. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/lifetimeclient.py +0 -0
  82. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/lockclient.py +0 -0
  83. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/metaconventionsclient.py +0 -0
  84. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/pingclient.py +0 -0
  85. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/replicaclient.py +0 -0
  86. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/requestclient.py +0 -0
  87. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/rseclient.py +0 -0
  88. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/ruleclient.py +0 -0
  89. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/scopeclient.py +0 -0
  90. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/subscriptionclient.py +0 -0
  91. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/touchclient.py +0 -0
  92. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/uploadclient.py +0 -0
  93. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/__init__.py +0 -0
  94. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/cache.py +0 -0
  95. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/config.py +0 -0
  96. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/constants.py +0 -0
  97. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/constraints.py +0 -0
  98. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/didtype.py +0 -0
  99. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/__init__.py +0 -0
  100. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/consistency.py +0 -0
  101. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/data_models.py +0 -0
  102. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
  103. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/exception.py +0 -0
  104. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/extra.py +0 -0
  105. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/logging.py +0 -0
  106. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/pcache.py +0 -0
  107. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/plugins.py +0 -0
  108. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/policy.py +0 -0
  109. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/__init__.py +0 -0
  110. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/atlas.py +0 -0
  111. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/belleii.py +0 -0
  112. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/domatpc.py +0 -0
  113. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/escape.py +0 -0
  114. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/generic.py +0 -0
  115. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  116. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/icecube.py +0 -0
  117. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/stomp_utils.py +0 -0
  118. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/stopwatch.py +0 -0
  119. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/test_rucio_server.py +0 -0
  120. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/types.py +0 -0
  121. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/utils.py +0 -0
  122. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/__init__.py +0 -0
  123. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account.py +0 -0
  124. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account_counter.py +0 -0
  125. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account_limit.py +0 -0
  126. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/authentication.py +0 -0
  127. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/config.py +0 -0
  128. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/credential.py +0 -0
  129. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did.py +0 -0
  130. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
  131. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
  132. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
  133. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
  134. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
  135. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
  136. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
  137. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/dirac.py +0 -0
  138. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/distance.py +0 -0
  139. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/exporter.py +0 -0
  140. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/heartbeat.py +0 -0
  141. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/identity.py +0 -0
  142. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/importer.py +0 -0
  143. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/lifetime_exception.py +0 -0
  144. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/lock.py +0 -0
  145. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/message.py +0 -0
  146. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/meta_conventions.py +0 -0
  147. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/monitor.py +0 -0
  148. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/naming_convention.py +0 -0
  149. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/nongrid_trace.py +0 -0
  150. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/oidc.py +0 -0
  151. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/__init__.py +0 -0
  152. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/atlas.py +0 -0
  153. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/belleii.py +0 -0
  154. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/escape.py +0 -0
  155. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/generic.py +0 -0
  156. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
  157. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/quarantined_replica.py +0 -0
  158. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/replica.py +0 -0
  159. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/replica_sorter.py +0 -0
  160. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/request.py +0 -0
  161. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse.py +0 -0
  162. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_counter.py +0 -0
  163. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_expression_parser.py +0 -0
  164. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_selector.py +0 -0
  165. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rule.py +0 -0
  166. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rule_grouping.py +0 -0
  167. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/scope.py +0 -0
  168. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/topology.py +0 -0
  169. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/trace.py +0 -0
  170. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/transfer.py +0 -0
  171. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/vo.py +0 -0
  172. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/volatile_replica.py +0 -0
  173. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/__init__.py +0 -0
  174. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
  175. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/account.py +0 -0
  176. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
  177. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/rse.py +0 -0
  178. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
  179. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
  180. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/__init__.py +0 -0
  181. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  182. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/srmdumps.py +0 -0
  183. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
  184. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/automatix/automatix.py +0 -0
  185. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
  186. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/minos.py +0 -0
  187. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
  188. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
  189. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
  190. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
  191. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/common.py +0 -0
  192. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
  193. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
  194. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
  195. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
  196. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
  197. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
  198. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
  199. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
  200. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
  201. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
  202. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
  203. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
  204. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
  205. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
  206. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
  207. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
  208. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
  209. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
  210. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
  211. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
  212. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
  213. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
  214. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/cache/__init__.py +0 -0
  215. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/cache/consumer.py +0 -0
  216. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/common.py +0 -0
  217. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
  218. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/common.py +0 -0
  219. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/finisher.py +0 -0
  220. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/poller.py +0 -0
  221. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
  222. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
  223. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/stager.py +0 -0
  224. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/submitter.py +0 -0
  225. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/throttler.py +0 -0
  226. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/follower/__init__.py +0 -0
  227. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/follower/follower.py +0 -0
  228. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
  229. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/hermes/hermes.py +0 -0
  230. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/__init__.py +0 -0
  231. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
  232. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
  233. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/injector.py +0 -0
  234. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/repairer.py +0 -0
  235. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
  236. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
  237. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
  238. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
  239. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/reaper.py +0 -0
  240. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
  241. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
  242. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
  243. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
  244. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  245. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  246. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
  247. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  248. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
  249. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/__init__.py +0 -0
  250. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
  251. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
  252. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
  253. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
  254. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
  255. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
  256. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
  257. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
  258. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/__init__.py +0 -0
  259. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/__init__.py +0 -0
  260. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/constants.py +0 -0
  261. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
  262. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  263. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  264. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  265. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  266. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  267. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
  268. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  269. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  270. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  271. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
  272. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  273. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  274. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  275. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  276. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  277. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  278. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  279. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  280. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  281. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  282. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  283. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  284. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  285. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  286. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  287. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  288. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  289. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  290. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  291. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  292. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  293. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  294. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  295. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  296. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  297. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  298. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  299. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  300. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  301. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  302. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
  303. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  304. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  305. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  306. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  307. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  308. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  309. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  310. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  311. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  312. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  313. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  314. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  315. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  316. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  317. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  318. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  319. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  320. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  321. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  322. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  323. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  324. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  325. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  326. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  327. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  328. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
  329. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  330. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  331. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  332. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  333. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  334. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  335. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  336. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  337. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  338. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  339. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  340. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  341. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  342. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  343. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  344. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  345. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  346. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  347. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  348. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  349. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  350. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  351. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  352. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  353. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  354. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  355. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  356. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  357. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  358. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  359. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  360. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  361. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  362. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  363. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b0070f3695c8_add_deletedidmeta_table.py +0 -0
  364. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  365. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b5493606bbf5_fix_primary_key_for_subscription_history.py +0 -0
  366. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  367. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  368. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  369. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  370. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  371. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  372. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  373. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  374. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
  375. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  376. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  377. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  378. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  379. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  380. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  381. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  382. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  383. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  384. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  385. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  386. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  387. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  388. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  389. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  390. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  391. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/models.py +0 -0
  392. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/session.py +0 -0
  393. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/types.py +0 -0
  394. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/util.py +0 -0
  395. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/__init__.py +0 -0
  396. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/account.py +0 -0
  397. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/account_limit.py +0 -0
  398. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/authentication.py +0 -0
  399. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/config.py +0 -0
  400. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/credential.py +0 -0
  401. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/did.py +0 -0
  402. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/dirac.py +0 -0
  403. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/exporter.py +0 -0
  404. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/heartbeat.py +0 -0
  405. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/identity.py +0 -0
  406. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/importer.py +0 -0
  407. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/lifetime_exception.py +0 -0
  408. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/lock.py +0 -0
  409. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/meta_conventions.py +0 -0
  410. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/permission.py +0 -0
  411. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/quarantined_replica.py +0 -0
  412. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/replica.py +0 -0
  413. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/request.py +0 -0
  414. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/rse.py +0 -0
  415. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/rule.py +0 -0
  416. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/scope.py +0 -0
  417. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/subscription.py +0 -0
  418. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/vo.py +0 -0
  419. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/__init__.py +0 -0
  420. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/__init__.py +0 -0
  421. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
  422. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/cache.py +0 -0
  423. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/dummy.py +0 -0
  424. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/gfal.py +0 -0
  425. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/globus.py +0 -0
  426. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  427. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
  428. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/mock.py +0 -0
  429. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
  430. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/posix.py +0 -0
  431. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/protocol.py +0 -0
  432. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/rclone.py +0 -0
  433. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/rfio.py +0 -0
  434. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/srm.py +0 -0
  435. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/ssh.py +0 -0
  436. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/storm.py +0 -0
  437. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/webdav.py +0 -0
  438. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
  439. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/rsemanager.py +0 -0
  440. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/__init__.py +0 -0
  441. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/common.py +0 -0
  442. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/common_server.py +0 -0
  443. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/__init__.py +0 -0
  444. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent.py +0 -0
  445. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
  446. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -0
  447. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/globus.py +0 -0
  448. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/globus_library.py +0 -0
  449. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/mock.py +0 -0
  450. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/transfertool.py +0 -0
  451. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/version.py +0 -0
  452. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/__init__.py +0 -0
  453. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/__init__.py +0 -0
  454. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
  455. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  456. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
  457. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -0
  458. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -0
  459. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
  460. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/common.py +0 -0
  461. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
  462. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -0
  463. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +0 -0
  464. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
  465. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
  466. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
  467. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
  468. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
  469. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
  470. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
  471. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
  472. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -0
  473. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
  474. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
  475. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
  476. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
  477. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
  478. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
  479. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
  480. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
  481. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
  482. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
  483. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  484. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  485. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
  486. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/types.py +0 -0
  487. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
  488. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/main.py +0 -0
  489. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/metrics.py +0 -0
  490. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/ping.py +0 -0
  491. {rucio-35.4.0 → rucio-35.5.0}/lib/rucio.egg-info/SOURCES.txt +0 -0
  492. {rucio-35.4.0 → rucio-35.5.0}/pylintrc +0 -0
  493. {rucio-35.4.0 → rucio-35.5.0}/pyproject.toml +0 -0
  494. {rucio-35.4.0 → rucio-35.5.0}/requirements/requirements.server.txt +0 -0
  495. {rucio-35.4.0 → rucio-35.5.0}/setup.cfg +0 -0
  496. {rucio-35.4.0 → rucio-35.5.0}/setup.py +0 -0
  497. {rucio-35.4.0 → rucio-35.5.0}/setuputil.py +0 -0
  498. {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_account.py +0 -0
  499. {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_collection_replica.py +0 -0
  500. {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_rse.py +0 -0
  501. {rucio-35.4.0 → rucio-35.5.0}/tests/test_account.py +0 -0
  502. {rucio-35.4.0 → rucio-35.5.0}/tests/test_account_limits.py +0 -0
  503. {rucio-35.4.0 → rucio-35.5.0}/tests/test_archive.py +0 -0
  504. {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor.py +0 -0
  505. {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor_hdfs.py +0 -0
  506. {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor_srmdumps.py +0 -0
  507. {rucio-35.4.0 → rucio-35.5.0}/tests/test_authentication.py +0 -0
  508. {rucio-35.4.0 → rucio-35.5.0}/tests/test_automatix.py +0 -0
  509. {rucio-35.4.0 → rucio-35.5.0}/tests/test_bad_replica.py +0 -0
  510. {rucio-35.4.0 → rucio-35.5.0}/tests/test_bb8.py +0 -0
  511. {rucio-35.4.0 → rucio-35.5.0}/tests/test_belleii.py +0 -0
  512. {rucio-35.4.0 → rucio-35.5.0}/tests/test_bin_rucio.py +0 -0
  513. {rucio-35.4.0 → rucio-35.5.0}/tests/test_boolean.py +0 -0
  514. {rucio-35.4.0 → rucio-35.5.0}/tests/test_clients.py +0 -0
  515. {rucio-35.4.0 → rucio-35.5.0}/tests/test_common_types.py +0 -0
  516. {rucio-35.4.0 → rucio-35.5.0}/tests/test_config.py +0 -0
  517. {rucio-35.4.0 → rucio-35.5.0}/tests/test_conveyor.py +0 -0
  518. {rucio-35.4.0 → rucio-35.5.0}/tests/test_conveyor_submitter.py +0 -0
  519. {rucio-35.4.0 → rucio-35.5.0}/tests/test_counter.py +0 -0
  520. {rucio-35.4.0 → rucio-35.5.0}/tests/test_credential.py +0 -0
  521. {rucio-35.4.0 → rucio-35.5.0}/tests/test_curl.py +0 -0
  522. {rucio-35.4.0 → rucio-35.5.0}/tests/test_daemons.py +0 -0
  523. {rucio-35.4.0 → rucio-35.5.0}/tests/test_dataset_replicas.py +0 -0
  524. {rucio-35.4.0 → rucio-35.5.0}/tests/test_db.py +0 -0
  525. {rucio-35.4.0 → rucio-35.5.0}/tests/test_did.py +0 -0
  526. {rucio-35.4.0 → rucio-35.5.0}/tests/test_did_meta_plugins.py +0 -0
  527. {rucio-35.4.0 → rucio-35.5.0}/tests/test_didtype.py +0 -0
  528. {rucio-35.4.0 → rucio-35.5.0}/tests/test_download.py +0 -0
  529. {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper.py +0 -0
  530. {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_consistency.py +0 -0
  531. {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_data_model.py +0 -0
  532. {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_path_parsing.py +0 -0
  533. {rucio-35.4.0 → rucio-35.5.0}/tests/test_filter_engine.py +0 -0
  534. {rucio-35.4.0 → rucio-35.5.0}/tests/test_gateway_external_representation.py +0 -0
  535. {rucio-35.4.0 → rucio-35.5.0}/tests/test_heartbeat.py +0 -0
  536. {rucio-35.4.0 → rucio-35.5.0}/tests/test_hermes.py +0 -0
  537. {rucio-35.4.0 → rucio-35.5.0}/tests/test_identity.py +0 -0
  538. {rucio-35.4.0 → rucio-35.5.0}/tests/test_impl_upload_download.py +0 -0
  539. {rucio-35.4.0 → rucio-35.5.0}/tests/test_import_export.py +0 -0
  540. {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_cleaner.py +0 -0
  541. {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_evaluator.py +0 -0
  542. {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_injector.py +0 -0
  543. {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_repairer.py +0 -0
  544. {rucio-35.4.0 → rucio-35.5.0}/tests/test_lifetime.py +0 -0
  545. {rucio-35.4.0 → rucio-35.5.0}/tests/test_message.py +0 -0
  546. {rucio-35.4.0 → rucio-35.5.0}/tests/test_meta_conventions.py +0 -0
  547. {rucio-35.4.0 → rucio-35.5.0}/tests/test_meta_did.py +0 -0
  548. {rucio-35.4.0 → rucio-35.5.0}/tests/test_module_import.py +0 -0
  549. {rucio-35.4.0 → rucio-35.5.0}/tests/test_monitor.py +0 -0
  550. {rucio-35.4.0 → rucio-35.5.0}/tests/test_multi_vo.py +0 -0
  551. {rucio-35.4.0 → rucio-35.5.0}/tests/test_naming_convention.py +0 -0
  552. {rucio-35.4.0 → rucio-35.5.0}/tests/test_oauthmanager.py +0 -0
  553. {rucio-35.4.0 → rucio-35.5.0}/tests/test_oidc.py +0 -0
  554. {rucio-35.4.0 → rucio-35.5.0}/tests/test_permission.py +0 -0
  555. {rucio-35.4.0 → rucio-35.5.0}/tests/test_pfns.py +0 -0
  556. {rucio-35.4.0 → rucio-35.5.0}/tests/test_ping.py +0 -0
  557. {rucio-35.4.0 → rucio-35.5.0}/tests/test_preparer.py +0 -0
  558. {rucio-35.4.0 → rucio-35.5.0}/tests/test_qos.py +0 -0
  559. {rucio-35.4.0 → rucio-35.5.0}/tests/test_quarantined_replica.py +0 -0
  560. {rucio-35.4.0 → rucio-35.5.0}/tests/test_reaper.py +0 -0
  561. {rucio-35.4.0 → rucio-35.5.0}/tests/test_redirect.py +0 -0
  562. {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica.py +0 -0
  563. {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica_recoverer.py +0 -0
  564. {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica_sorting.py +0 -0
  565. {rucio-35.4.0 → rucio-35.5.0}/tests/test_request.py +0 -0
  566. {rucio-35.4.0 → rucio-35.5.0}/tests/test_root_proxy.py +0 -0
  567. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse.py +0 -0
  568. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_expression_parser.py +0 -0
  569. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_lfn2path.py +0 -0
  570. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_gfal2.py +0 -0
  571. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  572. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_posix.py +0 -0
  573. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_rclone.py +0 -0
  574. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_rsync.py +0 -0
  575. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_srm.py +0 -0
  576. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_ssh.py +0 -0
  577. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_webdav.py +0 -0
  578. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_xrootd.py +0 -0
  579. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_selector.py +0 -0
  580. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rucio_server.py +0 -0
  581. {rucio-35.4.0 → rucio-35.5.0}/tests/test_rule.py +0 -0
  582. {rucio-35.4.0 → rucio-35.5.0}/tests/test_scope.py +0 -0
  583. {rucio-35.4.0 → rucio-35.5.0}/tests/test_subscription.py +0 -0
  584. {rucio-35.4.0 → rucio-35.5.0}/tests/test_throttler.py +0 -0
  585. {rucio-35.4.0 → rucio-35.5.0}/tests/test_tpc.py +0 -0
  586. {rucio-35.4.0 → rucio-35.5.0}/tests/test_trace.py +0 -0
  587. {rucio-35.4.0 → rucio-35.5.0}/tests/test_transfer.py +0 -0
  588. {rucio-35.4.0 → rucio-35.5.0}/tests/test_undertaker.py +0 -0
  589. {rucio-35.4.0 → rucio-35.5.0}/tests/test_upload.py +0 -0
  590. {rucio-35.4.0 → rucio-35.5.0}/tests/test_utils.py +0 -0
  591. {rucio-35.4.0 → rucio-35.5.0}/tools/bootstrap.py +0 -0
  592. {rucio-35.4.0 → rucio-35.5.0}/tools/merge_rucio_configs.py +0 -0
  593. {rucio-35.4.0 → rucio-35.5.0}/tools/reset_database.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio
3
- Version: 35.4.0
3
+ Version: 35.5.0
4
4
  Summary: Rucio Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -227,11 +227,11 @@ Note that attempting the use the ``--vos`` argument when in single-VO mode will
227
227
  $ rucio-replica-recoverer --run-once --vos abc xyz
228
228
  2020-07-28 15:21:33,349 5488 WARNING Ignoring argument vos, this is only applicable in a multi-VO setup.
229
229
  ''', formatter_class=argparse.RawDescriptionHelpFormatter) # NOQA: E501
230
- parser.add_argument("--nattempts", action="store", default=5, help='Minimum count of suspicious file replica appearance in bad_replicas table. Default value is 5.')
231
- parser.add_argument("--younger-than", action="store", default=5, help='Consider all file replicas logged in bad_replicas table since specified number of younger-than days. Default value is 5.')
230
+ parser.add_argument("--nattempts", action="store", default=5, type=int, help='Minimum count of suspicious file replica appearance in bad_replicas table. Default value is 5.')
231
+ parser.add_argument("--younger-than", action="store", default=5, type=int, help='Consider all file replicas logged in bad_replicas table since specified number of younger-than days. Default value is 5.')
232
232
  parser.add_argument('--vos', nargs='+', type=str, help='Optional list of VOs to consider. Only used in multi-VO mode.')
233
233
  parser.add_argument("--run-once", action="store_true", default=False, help='One iteration only.')
234
- parser.add_argument("--limit-suspicious-files-on-rse", action="store", default=5, help='Maximum number of suspicious replicas on an RSE before that RSE is considered problematic and the suspicious replicas on that RSE are declared "TEMPORARY_UNAVAILABLE". Default value is 5.')
234
+ parser.add_argument("--limit-suspicious-files-on-rse", action="store", default=5, type=int, help='Maximum number of suspicious replicas on an RSE before that RSE is considered problematic and the suspicious replicas on that RSE are declared "TEMPORARY_UNAVAILABLE". Default value is 5.')
235
235
  parser.add_argument('--json-file-name', action="store", default="/opt/rucio/etc/suspicious_replica_recoverer.json", type=str, help='Name of the json file that that contains the policies which will be used by the suspicious replica recoverer.')
236
236
  parser.add_argument('--sleep-time', action="store", default=3600, type=int, help='Concurrency control: Thread sleep time after each chunk of work.')
237
237
  parser.add_argument('--active-mode', action="store_true", default=False, help='If NOT specified, the daemon will run without taking any actions on any files. In either case, the log file will be produced normally.')
@@ -92,7 +92,7 @@ class DIDClient(BaseClient):
92
92
  self,
93
93
  scope: str,
94
94
  name: str,
95
- did_type: Literal['FILE', 'DATASET', 'CONTAINER'],
95
+ did_type: Literal['DATASET', 'CONTAINER'],
96
96
  statuses: Optional["Mapping[str, Any]"] = None,
97
97
  meta: Optional["Mapping[str, Any]"] = None,
98
98
  rules: Optional["Sequence[Mapping[str, Any]]"] = None,
@@ -105,7 +105,7 @@ class DIDClient(BaseClient):
105
105
 
106
106
  :param scope: The scope name.
107
107
  :param name: The data identifier name.
108
- :param did_type: The data identifier type (file|dataset|container).
108
+ :param did_type: The data identifier type (dataset|container).
109
109
  :param statuses: Dictionary with statuses, e.g. {'monotonic':True}.
110
110
  :param meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
111
111
  :param rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
@@ -17,7 +17,7 @@ import logging
17
17
  import re
18
18
  from configparser import NoOptionError, NoSectionError
19
19
  from json import dumps
20
- from typing import TYPE_CHECKING
20
+ from typing import TYPE_CHECKING, Any, Optional
21
21
 
22
22
  from sqlalchemy import and_, delete, func, select
23
23
  from sqlalchemy.exc import IntegrityError, NoResultFound, StatementError
@@ -26,12 +26,11 @@ from sqlalchemy.orm import aliased
26
26
  from rucio.common.config import config_get_bool
27
27
  from rucio.common.exception import RucioException, SubscriptionDuplicate, SubscriptionNotFound
28
28
  from rucio.db.sqla import models
29
- from rucio.db.sqla.constants import SubscriptionState
29
+ from rucio.db.sqla.constants import RuleState, SubscriptionState
30
30
  from rucio.db.sqla.session import read_session, stream_session, transactional_session
31
31
 
32
32
  if TYPE_CHECKING:
33
33
  from collections.abc import Callable, Iterator
34
- from typing import Any, Optional
35
34
 
36
35
  from sqlalchemy.orm import Session
37
36
 
@@ -46,10 +45,10 @@ def add_subscription(name: str,
46
45
  filter_: str,
47
46
  replication_rules: str,
48
47
  comments: str,
49
- lifetime: "Optional[int]" = None,
50
- retroactive: "Optional[bool]" = False,
51
- dry_run: "Optional[bool]" = False,
52
- priority: "Optional[int]" = 3,
48
+ lifetime: Optional[int] = None,
49
+ retroactive: Optional[bool] = False,
50
+ dry_run: Optional[bool] = False,
51
+ priority: Optional[int] = 3,
53
52
  *, session: "Session") -> str:
54
53
  """
55
54
  Adds a new subscription which will be verified against every new added file and dataset
@@ -151,7 +150,7 @@ def update_subscription(name: str,
151
150
  keep_history = config_get_bool('subscriptions', 'keep_history')
152
151
  except (NoOptionError, NoSectionError, RuntimeError):
153
152
  keep_history = False
154
- values = {'state': SubscriptionState.UPDATED}
153
+ values: dict[str, Any] = {'state': SubscriptionState.UPDATED}
155
154
  if 'filter' in metadata and metadata['filter']:
156
155
  values['filter'] = dumps(metadata['filter'])
157
156
  if 'replication_rules' in metadata and metadata['replication_rules']:
@@ -212,9 +211,9 @@ def update_subscription(name: str,
212
211
 
213
212
 
214
213
  @stream_session
215
- def list_subscriptions(name: "Optional[str]" = None,
214
+ def list_subscriptions(name: Optional[str] = None,
216
215
  account: "Optional[InternalAccount]" = None,
217
- state: "Optional[SubscriptionState]" = None,
216
+ state: Optional[SubscriptionState] = None,
218
217
  *, session: "Session",
219
218
  logger: "LoggerFunction" = logging.log) -> "Iterator[SubscriptionType]":
220
219
  """
@@ -282,7 +281,13 @@ def delete_subscription(subscription_id: str, *, session: "Session") -> None:
282
281
 
283
282
 
284
283
  @stream_session
285
- def list_subscription_rule_states(name=None, account=None, *, session: "Session", logger=logging.log):
284
+ def list_subscription_rule_states(
285
+ name: Optional[str] = None,
286
+ account: Optional["InternalAccount"] = None,
287
+ *,
288
+ session: "Session",
289
+ logger: "LoggerFunction" = logging.log
290
+ ) -> "Iterator[tuple[InternalAccount, str, RuleState, int]]":
286
291
  """Returns a list of with the number of rules per state for a subscription.
287
292
 
288
293
  :param name: Name of the subscription
@@ -311,7 +316,7 @@ def list_subscription_rule_states(name=None, account=None, *, session: "Session"
311
316
  )
312
317
 
313
318
  if account:
314
- if '*' in account.internal:
319
+ if account.internal and '*' in account.internal:
315
320
  account_str = account.internal.replace('*', '%')
316
321
  stmt = stmt.where(
317
322
  subscription.account.like(account_str)
@@ -332,11 +337,11 @@ def list_subscription_rule_states(name=None, account=None, *, session: "Session"
332
337
  )
333
338
 
334
339
  for row in session.execute(stmt).all():
335
- yield row
340
+ yield row._tuple()
336
341
 
337
342
 
338
343
  @read_session
339
- def get_subscription_by_id(subscription_id, *, session: "Session"):
344
+ def get_subscription_by_id(subscription_id: str, *, session: "Session") -> "SubscriptionType":
340
345
  """
341
346
  Get a specific subscription by id.
342
347
 
@@ -17,18 +17,26 @@ SQLAlchemy utilities
17
17
 
18
18
  '''
19
19
 
20
+ from typing import TYPE_CHECKING, Any, Union
21
+
20
22
  from sqlalchemy.ext.compiler import compiles
21
23
  from sqlalchemy.sql.expression import ClauseElement, Executable
22
24
 
25
+ if TYPE_CHECKING:
26
+ from sqlalchemy import Table
27
+ from sqlalchemy.engine.interfaces import SQLCompiler
28
+ from sqlalchemy.sql.schema import Column
29
+ from sqlalchemy.sql.selectable import Select
30
+
23
31
 
24
32
  class InsertFromSelect(Executable, ClauseElement):
25
- def __init__(self, insert_spec, select):
33
+ def __init__(self, insert_spec: "Union[Table, list[Column]]", select: "Select") -> None:
26
34
  self.insert_spec = insert_spec
27
35
  self.select = select
28
36
 
29
37
 
30
38
  @compiles(InsertFromSelect)
31
- def visit_insert_from_select(element, compiler, **kw):
39
+ def visit_insert_from_select(element: InsertFromSelect, compiler: "SQLCompiler", **kw: Any) -> str:
32
40
  if isinstance(element.insert_spec, list):
33
41
  columns = []
34
42
  for column in element.insert_spec:
@@ -1041,10 +1041,9 @@ class FTS3Transfertool(Transfertool):
1041
1041
  if isinstance(activity_id, int):
1042
1042
  t_file['scitag'] = self.scitags_exp_id << 6 | activity_id
1043
1043
 
1044
- for plugin in self.tape_metadata_plugins:
1045
- plugin_hints = plugin.hints(t_file['metadata'])
1046
-
1047
- t_file = deep_merge_dict(source=plugin_hints, destination=t_file)
1044
+ if t_file['metadata']['dst_type'] == 'TAPE':
1045
+ for plugin in self.tape_metadata_plugins:
1046
+ t_file = deep_merge_dict(source=plugin.hints(t_file['metadata']), destination=t_file)
1048
1047
 
1049
1048
  return t_file
1050
1049
 
@@ -62,7 +62,7 @@ class FTS3TapeMetadataPlugin(PolicyPackageAlgorithms):
62
62
  func=lambda x: cls._activity_hints(cls, x), # type: ignore
63
63
  init_func=lambda: cls._init_instance_activity_hints(cls)) # type: ignore
64
64
  cls.register(cls.DEFAULT, func=lambda x: cls._default(cls, x)) # type: ignore
65
- cls.register("test", func=lambda x: cls._collocation(cls, cls._test_collocation, x)) # type: ignore
65
+ cls.register("test", func=lambda x: cls._collocation(cls._test_collocation, x))
66
66
 
67
67
  @classmethod
68
68
  def register(cls: type[FTS3TapeMetadataPluginType], name: str, func: Callable, init_func: Optional[Callable] = None) -> None:
@@ -99,17 +99,19 @@ class FTS3TapeMetadataPlugin(PolicyPackageAlgorithms):
99
99
 
100
100
  return {"scheduling_hints": {"priority": priority}}
101
101
 
102
- def _collocation(self, collocation_func: Callable, hints: dict[str, Any]) -> dict[str, dict]:
102
+ @staticmethod
103
+ def _collocation(collocation_func: 'Callable', hints: dict[str, Any]) -> dict[str, dict]:
103
104
  """
104
- Wraps a 'collacation' style plugin for formatting
105
+ Wraps a 'collocation' style plugin for formatting
105
106
 
106
107
  :param collocation_func: Function that defines the collocation rules
107
108
  :param hints: kwargs utilized by the collocation rules
108
109
  :return: Collocation hints produced by the collocation_func, wrapped
109
110
  """
110
- return {"collocation_hints": collocation_func(*hints)}
111
+ return {"collocation_hints": collocation_func(**hints)}
111
112
 
112
- def _test_collocation(self, *hint: dict) -> dict[str, Any]:
113
+ @staticmethod
114
+ def _test_collocation(**kwargs: dict) -> dict[str, Any]:
113
115
  return {"0": "", "1": "", "2": "", "3": ""}
114
116
 
115
117
  def _default(self, *hints: dict) -> dict:
@@ -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': '35.4.0',
7
+ 'version': '35.5.0',
8
8
  'branch_nick': 'release-35-LTS',
9
- 'revision_id': '3fb618d968f2efbe7431b303ef916d5cdf07d133',
10
- 'revno': 13156
9
+ 'revision_id': 'f5e7f329eb6baed9096242ee497152cd14464b2c',
10
+ 'revno': 13174
11
11
  }
@@ -185,7 +185,6 @@ class UserPass(ErrorHandlingMethodView):
185
185
  headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate'
186
186
  headers.add('Cache-Control', 'post-check=0, pre-check=0')
187
187
  headers['Pragma'] = 'no-cache'
188
-
189
188
  vo = extract_vo(request.headers)
190
189
  account = request.headers.get('X-Rucio-Account', default=None)
191
190
  username = request.headers.get('X-Rucio-Username', default=None)
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import logging
16
+ from unittest.mock import MagicMock
16
17
 
17
18
  import pytest
18
19
 
@@ -31,9 +32,14 @@ MAX_POLL_WAIT_SECONDS = 60
31
32
  TEST_FTS_HOST = "https://fts:8446"
32
33
 
33
34
 
34
- def _make_transfer_path(did, rse_factory, root_account):
35
+ def _make_transfer_path(
36
+ did,
37
+ rse_factory,
38
+ root_account,
39
+ dst_rse_is_tape: bool = True
40
+ ):
35
41
  _, src_rse_id = rse_factory.make_mock_rse()
36
- dst_rse, dst_rse_id = rse_factory.make_mock_rse()
42
+ dst_rse, dst_rse_id = rse_factory.make_mock_rse(rse_type="TAPE" if dst_rse_is_tape else "DISK")
37
43
  all_rses = [src_rse_id, dst_rse_id]
38
44
  distance_core.add_distance(src_rse_id, dst_rse_id, distance=1)
39
45
 
@@ -229,8 +235,8 @@ def test_multiple_plugin_concat(file_config_mock, did_factory, rse_factory, root
229
235
  generated_collocation_hints = job_params["archive_metadata"]["collocation_hints"]
230
236
  assert expected_hints["collocation_hints"] == generated_collocation_hints
231
237
 
232
- expected_schedule_hints = job_params["archive_metadata"]["scheduling_hints"]
233
- assert expected_hints["scheduling_hints"] == expected_schedule_hints
238
+ generated_scheduling_hints = job_params["archive_metadata"]["scheduling_hints"]
239
+ assert expected_hints["scheduling_hints"] == generated_scheduling_hints
234
240
 
235
241
 
236
242
  @pytest.mark.parametrize("file_config_mock", [
@@ -284,3 +290,33 @@ def test_include_none_by_default(did_factory, rse_factory, root_account):
284
290
 
285
291
  job_params = fts3_tool._file_from_transfer(transfer_path[0], job_params)
286
292
  assert "archive_metadata" not in job_params
293
+
294
+
295
+ def test_no_metadata_if_dest_is_not_tape(did_factory, rse_factory, root_account):
296
+ """
297
+ If the destination RSE is not tape,
298
+ no tape metadata plugin should run,
299
+ and no archive metadata should be included.
300
+ """
301
+
302
+ mock_did = did_factory.random_file_did()
303
+ mock_metadata_plugin = MagicMock()
304
+ transfer_path = _make_transfer_path(mock_did, rse_factory, root_account, dst_rse_is_tape=False)
305
+
306
+ fts3_tool = FTS3Transfertool(TEST_FTS_HOST)
307
+
308
+ fts3_tool.tape_metadata_plugins = [mock_metadata_plugin] # type: ignore
309
+
310
+ job_params = build_job_params(
311
+ transfer_path=transfer_path,
312
+ bring_online=None,
313
+ default_lifetime=None,
314
+ archive_timeout_override=None,
315
+ max_time_in_queue=None,
316
+ logger=logging.log,
317
+ )
318
+
319
+ job_params = fts3_tool._file_from_transfer(transfer_path[0], job_params)
320
+
321
+ assert not mock_metadata_plugin.called
322
+ assert "archive_metadata" not in job_params
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes