rucio 35.0.1__tar.gz → 35.1.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.0.1 → rucio-35.1.0}/PKG-INFO +1 -1
  2. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-admin +3 -1
  3. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-auditor +10 -3
  4. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-dumper +7 -5
  5. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/lockclient.py +2 -2
  6. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/uploadclient.py +7 -10
  7. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/__init__.py +2 -1
  8. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/consistency.py +12 -6
  9. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/data_models.py +11 -11
  10. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/types.py +4 -1
  11. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/utils.py +4 -2
  12. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did.py +13 -465
  13. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/lock.py +6 -3
  14. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/oidc.py +7 -4
  15. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/replica.py +3 -4
  16. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse.py +4 -9
  17. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/srmdumps.py +3 -2
  18. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/session.py +6 -3
  19. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/util.py +4 -2
  20. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/protocol.py +23 -6
  21. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/fts3_plugins.py +4 -3
  22. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/vcsversion.py +3 -3
  23. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +11 -6
  24. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +38 -32
  25. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +10 -6
  26. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +71 -72
  27. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/common.py +47 -35
  28. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +1 -1
  29. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +3 -2
  30. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +1 -1
  31. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +1 -1
  32. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +1 -1
  33. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +1 -1
  34. rucio-35.1.0/lib/rucio/web/rest/flaskapi/v1/types.py +20 -0
  35. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio.egg-info/SOURCES.txt +1 -0
  36. {rucio-35.0.1 → rucio-35.1.0}/AUTHORS.rst +0 -0
  37. {rucio-35.0.1 → rucio-35.1.0}/ChangeLog +0 -0
  38. {rucio-35.0.1 → rucio-35.1.0}/LICENSE +0 -0
  39. {rucio-35.0.1 → rucio-35.1.0}/MANIFEST.in +0 -0
  40. {rucio-35.0.1 → rucio-35.1.0}/README.md +0 -0
  41. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio +0 -0
  42. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-account +0 -0
  43. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-collection-replica +0 -0
  44. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-rse +0 -0
  45. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-atropos +0 -0
  46. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-automatix +0 -0
  47. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-bb8 +0 -0
  48. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-c3po +0 -0
  49. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-cache-client +0 -0
  50. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-cache-consumer +0 -0
  51. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-finisher +0 -0
  52. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-poller +0 -0
  53. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-preparer +0 -0
  54. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-receiver +0 -0
  55. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-stager +0 -0
  56. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-submitter +0 -0
  57. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-throttler +0 -0
  58. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-dark-reaper +0 -0
  59. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-follower +0 -0
  60. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-hermes +0 -0
  61. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-cleaner +0 -0
  62. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-evaluator +0 -0
  63. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-injector +0 -0
  64. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-repairer +0 -0
  65. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-kronos +0 -0
  66. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-minos +0 -0
  67. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-minos-temporary-expiration +0 -0
  68. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-necromancer +0 -0
  69. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-oauth-manager +0 -0
  70. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-reaper +0 -0
  71. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-replica-recoverer +0 -0
  72. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-rse-decommissioner +0 -0
  73. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-storage-consistency-actions +0 -0
  74. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-transmogrifier +0 -0
  75. {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-undertaker +0 -0
  76. {rucio-35.0.1 → rucio-35.1.0}/etc/alembic.ini.template +0 -0
  77. {rucio-35.0.1 → rucio-35.1.0}/etc/alembic_offline.ini.template +0 -0
  78. {rucio-35.0.1 → rucio-35.1.0}/etc/globus-config.yml.template +0 -0
  79. {rucio-35.0.1 → rucio-35.1.0}/etc/ldap.cfg.template +0 -0
  80. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  81. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  82. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  83. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  84. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  85. {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  86. {rucio-35.0.1 → rucio-35.1.0}/etc/rse-accounts.cfg.template +0 -0
  87. {rucio-35.0.1 → rucio-35.1.0}/etc/rucio.cfg.atlas.client.template +0 -0
  88. {rucio-35.0.1 → rucio-35.1.0}/etc/rucio.cfg.template +0 -0
  89. {rucio-35.0.1 → rucio-35.1.0}/etc/rucio_multi_vo.cfg.template +0 -0
  90. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/__init__.py +0 -0
  91. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/alembicrevision.py +0 -0
  92. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/__init__.py +0 -0
  93. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/accountclient.py +0 -0
  94. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/accountlimitclient.py +0 -0
  95. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/baseclient.py +0 -0
  96. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/client.py +0 -0
  97. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/configclient.py +0 -0
  98. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/credentialclient.py +0 -0
  99. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/didclient.py +0 -0
  100. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/diracclient.py +0 -0
  101. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/downloadclient.py +0 -0
  102. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/exportclient.py +0 -0
  103. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/fileclient.py +0 -0
  104. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/importclient.py +0 -0
  105. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/lifetimeclient.py +0 -0
  106. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/metaconventionsclient.py +0 -0
  107. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/pingclient.py +0 -0
  108. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/replicaclient.py +0 -0
  109. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/requestclient.py +0 -0
  110. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/rseclient.py +0 -0
  111. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/ruleclient.py +0 -0
  112. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/scopeclient.py +0 -0
  113. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/subscriptionclient.py +0 -0
  114. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/touchclient.py +0 -0
  115. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/__init__.py +0 -0
  116. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/cache.py +0 -0
  117. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/config.py +0 -0
  118. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/constants.py +0 -0
  119. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/constraints.py +0 -0
  120. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/didtype.py +0 -0
  121. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
  122. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/exception.py +0 -0
  123. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/extra.py +0 -0
  124. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/logging.py +0 -0
  125. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/pcache.py +0 -0
  126. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/plugins.py +0 -0
  127. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/policy.py +0 -0
  128. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/__init__.py +0 -0
  129. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/atlas.py +0 -0
  130. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/belleii.py +0 -0
  131. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/domatpc.py +0 -0
  132. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/escape.py +0 -0
  133. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/generic.py +0 -0
  134. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  135. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/icecube.py +0 -0
  136. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/stomp_utils.py +0 -0
  137. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/stopwatch.py +0 -0
  138. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/test_rucio_server.py +0 -0
  139. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/__init__.py +0 -0
  140. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account.py +0 -0
  141. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account_counter.py +0 -0
  142. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account_limit.py +0 -0
  143. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/authentication.py +0 -0
  144. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/config.py +0 -0
  145. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/credential.py +0 -0
  146. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
  147. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
  148. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
  149. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
  150. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
  151. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
  152. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
  153. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/dirac.py +0 -0
  154. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/distance.py +0 -0
  155. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/exporter.py +0 -0
  156. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/heartbeat.py +0 -0
  157. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/identity.py +0 -0
  158. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/importer.py +0 -0
  159. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/lifetime_exception.py +0 -0
  160. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/message.py +0 -0
  161. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/meta_conventions.py +0 -0
  162. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/monitor.py +0 -0
  163. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/naming_convention.py +0 -0
  164. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/nongrid_trace.py +0 -0
  165. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/__init__.py +0 -0
  166. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/atlas.py +0 -0
  167. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/belleii.py +0 -0
  168. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/escape.py +0 -0
  169. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/generic.py +0 -0
  170. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
  171. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/quarantined_replica.py +0 -0
  172. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/replica_sorter.py +0 -0
  173. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/request.py +0 -0
  174. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_counter.py +0 -0
  175. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_expression_parser.py +0 -0
  176. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_selector.py +0 -0
  177. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rule.py +0 -0
  178. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rule_grouping.py +0 -0
  179. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/scope.py +0 -0
  180. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/subscription.py +0 -0
  181. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/topology.py +0 -0
  182. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/trace.py +0 -0
  183. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/transfer.py +0 -0
  184. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/vo.py +0 -0
  185. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/volatile_replica.py +0 -0
  186. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/__init__.py +0 -0
  187. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
  188. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/account.py +0 -0
  189. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
  190. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/rse.py +0 -0
  191. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
  192. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
  193. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/__init__.py +0 -0
  194. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  195. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
  196. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/automatix/automatix.py +0 -0
  197. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
  198. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/minos.py +0 -0
  199. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
  200. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
  201. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
  202. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
  203. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/common.py +0 -0
  204. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
  205. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
  206. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
  207. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
  208. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
  209. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
  210. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
  211. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
  212. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
  213. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
  214. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
  215. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
  216. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
  217. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
  218. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
  219. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
  220. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
  221. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
  222. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
  223. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
  224. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
  225. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
  226. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/cache/__init__.py +0 -0
  227. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/cache/consumer.py +0 -0
  228. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/common.py +0 -0
  229. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
  230. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/common.py +0 -0
  231. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/finisher.py +0 -0
  232. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/poller.py +0 -0
  233. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
  234. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
  235. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/stager.py +0 -0
  236. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/submitter.py +0 -0
  237. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/throttler.py +0 -0
  238. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/follower/__init__.py +0 -0
  239. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/follower/follower.py +0 -0
  240. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
  241. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/hermes/hermes.py +0 -0
  242. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/__init__.py +0 -0
  243. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
  244. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
  245. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/injector.py +0 -0
  246. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/repairer.py +0 -0
  247. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
  248. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
  249. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
  250. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
  251. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/reaper.py +0 -0
  252. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
  253. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
  254. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
  255. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
  256. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  257. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  258. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
  259. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  260. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
  261. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/__init__.py +0 -0
  262. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
  263. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
  264. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
  265. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
  266. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
  267. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
  268. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
  269. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
  270. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/__init__.py +0 -0
  271. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/__init__.py +0 -0
  272. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/constants.py +0 -0
  273. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
  274. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  275. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  276. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  277. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  278. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  279. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
  280. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  281. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  282. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  283. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
  284. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  285. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  286. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  287. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  288. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  289. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  290. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  291. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  292. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  293. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  294. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  295. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  296. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  297. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  298. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  299. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  300. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  301. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  302. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  303. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  304. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  305. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  306. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  307. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  308. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  309. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  310. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  311. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  312. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  313. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  314. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
  315. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  316. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  317. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  318. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  319. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  320. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  321. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  322. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  323. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  324. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  325. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  326. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  327. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  328. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  329. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  330. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  331. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  332. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  333. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  334. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  335. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  336. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  337. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  338. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  339. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  340. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
  341. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  342. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  343. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  344. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  345. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  346. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  347. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  348. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  349. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  350. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  351. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  352. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  353. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  354. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  355. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  356. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  357. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  358. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  359. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  360. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  361. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  362. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  363. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  364. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  365. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  366. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  367. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  368. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  369. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  370. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  371. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  372. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  373. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  374. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  375. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b0070f3695c8_add_deletedidmeta_table.py +0 -0
  376. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  377. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b5493606bbf5_fix_primary_key_for_subscription_history.py +0 -0
  378. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  379. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  380. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  381. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  382. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  383. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  384. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  385. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  386. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
  387. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  388. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  389. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  390. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  391. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  392. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  393. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  394. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  395. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  396. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  397. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  398. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  399. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  400. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  401. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  402. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  403. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/models.py +0 -0
  404. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/sautils.py +0 -0
  405. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/types.py +0 -0
  406. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/__init__.py +0 -0
  407. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/account.py +0 -0
  408. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/account_limit.py +0 -0
  409. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/authentication.py +0 -0
  410. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/config.py +0 -0
  411. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/credential.py +0 -0
  412. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/did.py +0 -0
  413. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/dirac.py +0 -0
  414. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/exporter.py +0 -0
  415. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/heartbeat.py +0 -0
  416. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/identity.py +0 -0
  417. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/importer.py +0 -0
  418. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/lifetime_exception.py +0 -0
  419. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/lock.py +0 -0
  420. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/meta_conventions.py +0 -0
  421. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/permission.py +0 -0
  422. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/quarantined_replica.py +0 -0
  423. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/replica.py +0 -0
  424. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/request.py +0 -0
  425. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/rse.py +0 -0
  426. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/rule.py +0 -0
  427. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/scope.py +0 -0
  428. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/subscription.py +0 -0
  429. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/vo.py +0 -0
  430. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/__init__.py +0 -0
  431. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/__init__.py +0 -0
  432. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
  433. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/cache.py +0 -0
  434. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/dummy.py +0 -0
  435. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/gfal.py +0 -0
  436. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/globus.py +0 -0
  437. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  438. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
  439. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/mock.py +0 -0
  440. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
  441. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/posix.py +0 -0
  442. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/rclone.py +0 -0
  443. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/rfio.py +0 -0
  444. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/srm.py +0 -0
  445. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/ssh.py +0 -0
  446. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/storm.py +0 -0
  447. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/webdav.py +0 -0
  448. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
  449. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/rsemanager.py +0 -0
  450. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/__init__.py +0 -0
  451. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/common.py +0 -0
  452. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/common_server.py +0 -0
  453. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/__init__.py +0 -0
  454. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent.py +0 -0
  455. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
  456. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -0
  457. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/fts3.py +0 -0
  458. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/globus.py +0 -0
  459. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/globus_library.py +0 -0
  460. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/mock.py +0 -0
  461. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/transfertool.py +0 -0
  462. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/version.py +0 -0
  463. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/__init__.py +0 -0
  464. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/__init__.py +0 -0
  465. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
  466. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  467. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
  468. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
  469. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
  470. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
  471. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
  472. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
  473. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
  474. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
  475. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
  476. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
  477. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -0
  478. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
  479. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
  480. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
  481. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
  482. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
  483. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
  484. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
  485. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  486. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  487. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
  488. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/main.py +0 -0
  489. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/metrics.py +0 -0
  490. {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/ping.py +0 -0
  491. {rucio-35.0.1 → rucio-35.1.0}/pylintrc +0 -0
  492. {rucio-35.0.1 → rucio-35.1.0}/pyproject.toml +0 -0
  493. {rucio-35.0.1 → rucio-35.1.0}/requirements/requirements.server.txt +0 -0
  494. {rucio-35.0.1 → rucio-35.1.0}/setup.cfg +0 -0
  495. {rucio-35.0.1 → rucio-35.1.0}/setup.py +0 -0
  496. {rucio-35.0.1 → rucio-35.1.0}/setuputil.py +0 -0
  497. {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_account.py +0 -0
  498. {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_collection_replica.py +0 -0
  499. {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_rse.py +0 -0
  500. {rucio-35.0.1 → rucio-35.1.0}/tests/test_account.py +0 -0
  501. {rucio-35.0.1 → rucio-35.1.0}/tests/test_account_limits.py +0 -0
  502. {rucio-35.0.1 → rucio-35.1.0}/tests/test_archive.py +0 -0
  503. {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor.py +0 -0
  504. {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor_hdfs.py +0 -0
  505. {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor_srmdumps.py +0 -0
  506. {rucio-35.0.1 → rucio-35.1.0}/tests/test_authentication.py +0 -0
  507. {rucio-35.0.1 → rucio-35.1.0}/tests/test_automatix.py +0 -0
  508. {rucio-35.0.1 → rucio-35.1.0}/tests/test_bad_replica.py +0 -0
  509. {rucio-35.0.1 → rucio-35.1.0}/tests/test_bb8.py +0 -0
  510. {rucio-35.0.1 → rucio-35.1.0}/tests/test_belleii.py +0 -0
  511. {rucio-35.0.1 → rucio-35.1.0}/tests/test_bin_rucio.py +0 -0
  512. {rucio-35.0.1 → rucio-35.1.0}/tests/test_boolean.py +0 -0
  513. {rucio-35.0.1 → rucio-35.1.0}/tests/test_clients.py +0 -0
  514. {rucio-35.0.1 → rucio-35.1.0}/tests/test_common_types.py +0 -0
  515. {rucio-35.0.1 → rucio-35.1.0}/tests/test_config.py +0 -0
  516. {rucio-35.0.1 → rucio-35.1.0}/tests/test_conveyor.py +0 -0
  517. {rucio-35.0.1 → rucio-35.1.0}/tests/test_conveyor_submitter.py +0 -0
  518. {rucio-35.0.1 → rucio-35.1.0}/tests/test_counter.py +0 -0
  519. {rucio-35.0.1 → rucio-35.1.0}/tests/test_credential.py +0 -0
  520. {rucio-35.0.1 → rucio-35.1.0}/tests/test_curl.py +0 -0
  521. {rucio-35.0.1 → rucio-35.1.0}/tests/test_daemons.py +0 -0
  522. {rucio-35.0.1 → rucio-35.1.0}/tests/test_dataset_replicas.py +0 -0
  523. {rucio-35.0.1 → rucio-35.1.0}/tests/test_db.py +0 -0
  524. {rucio-35.0.1 → rucio-35.1.0}/tests/test_did.py +0 -0
  525. {rucio-35.0.1 → rucio-35.1.0}/tests/test_did_meta_plugins.py +0 -0
  526. {rucio-35.0.1 → rucio-35.1.0}/tests/test_didtype.py +0 -0
  527. {rucio-35.0.1 → rucio-35.1.0}/tests/test_download.py +0 -0
  528. {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper.py +0 -0
  529. {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_consistency.py +0 -0
  530. {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_data_model.py +0 -0
  531. {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_path_parsing.py +0 -0
  532. {rucio-35.0.1 → rucio-35.1.0}/tests/test_filter_engine.py +0 -0
  533. {rucio-35.0.1 → rucio-35.1.0}/tests/test_gateway_external_representation.py +0 -0
  534. {rucio-35.0.1 → rucio-35.1.0}/tests/test_heartbeat.py +0 -0
  535. {rucio-35.0.1 → rucio-35.1.0}/tests/test_hermes.py +0 -0
  536. {rucio-35.0.1 → rucio-35.1.0}/tests/test_identity.py +0 -0
  537. {rucio-35.0.1 → rucio-35.1.0}/tests/test_impl_upload_download.py +0 -0
  538. {rucio-35.0.1 → rucio-35.1.0}/tests/test_import_export.py +0 -0
  539. {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_cleaner.py +0 -0
  540. {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_evaluator.py +0 -0
  541. {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_injector.py +0 -0
  542. {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_repairer.py +0 -0
  543. {rucio-35.0.1 → rucio-35.1.0}/tests/test_lifetime.py +0 -0
  544. {rucio-35.0.1 → rucio-35.1.0}/tests/test_message.py +0 -0
  545. {rucio-35.0.1 → rucio-35.1.0}/tests/test_meta_conventions.py +0 -0
  546. {rucio-35.0.1 → rucio-35.1.0}/tests/test_meta_did.py +0 -0
  547. {rucio-35.0.1 → rucio-35.1.0}/tests/test_module_import.py +0 -0
  548. {rucio-35.0.1 → rucio-35.1.0}/tests/test_monitor.py +0 -0
  549. {rucio-35.0.1 → rucio-35.1.0}/tests/test_multi_vo.py +0 -0
  550. {rucio-35.0.1 → rucio-35.1.0}/tests/test_naming_convention.py +0 -0
  551. {rucio-35.0.1 → rucio-35.1.0}/tests/test_oauthmanager.py +0 -0
  552. {rucio-35.0.1 → rucio-35.1.0}/tests/test_oidc.py +0 -0
  553. {rucio-35.0.1 → rucio-35.1.0}/tests/test_permission.py +0 -0
  554. {rucio-35.0.1 → rucio-35.1.0}/tests/test_pfns.py +0 -0
  555. {rucio-35.0.1 → rucio-35.1.0}/tests/test_ping.py +0 -0
  556. {rucio-35.0.1 → rucio-35.1.0}/tests/test_preparer.py +0 -0
  557. {rucio-35.0.1 → rucio-35.1.0}/tests/test_qos.py +0 -0
  558. {rucio-35.0.1 → rucio-35.1.0}/tests/test_quarantined_replica.py +0 -0
  559. {rucio-35.0.1 → rucio-35.1.0}/tests/test_reaper.py +0 -0
  560. {rucio-35.0.1 → rucio-35.1.0}/tests/test_redirect.py +0 -0
  561. {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica.py +0 -0
  562. {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica_recoverer.py +0 -0
  563. {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica_sorting.py +0 -0
  564. {rucio-35.0.1 → rucio-35.1.0}/tests/test_request.py +0 -0
  565. {rucio-35.0.1 → rucio-35.1.0}/tests/test_root_proxy.py +0 -0
  566. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse.py +0 -0
  567. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_expression_parser.py +0 -0
  568. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_lfn2path.py +0 -0
  569. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_gfal2.py +0 -0
  570. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  571. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_posix.py +0 -0
  572. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_rclone.py +0 -0
  573. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_rsync.py +0 -0
  574. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_srm.py +0 -0
  575. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_ssh.py +0 -0
  576. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_webdav.py +0 -0
  577. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_xrootd.py +0 -0
  578. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_selector.py +0 -0
  579. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rucio_server.py +0 -0
  580. {rucio-35.0.1 → rucio-35.1.0}/tests/test_rule.py +0 -0
  581. {rucio-35.0.1 → rucio-35.1.0}/tests/test_scope.py +0 -0
  582. {rucio-35.0.1 → rucio-35.1.0}/tests/test_subscription.py +0 -0
  583. {rucio-35.0.1 → rucio-35.1.0}/tests/test_throttler.py +0 -0
  584. {rucio-35.0.1 → rucio-35.1.0}/tests/test_tpc.py +0 -0
  585. {rucio-35.0.1 → rucio-35.1.0}/tests/test_trace.py +0 -0
  586. {rucio-35.0.1 → rucio-35.1.0}/tests/test_transfer.py +0 -0
  587. {rucio-35.0.1 → rucio-35.1.0}/tests/test_transfer_plugins.py +0 -0
  588. {rucio-35.0.1 → rucio-35.1.0}/tests/test_undertaker.py +0 -0
  589. {rucio-35.0.1 → rucio-35.1.0}/tests/test_upload.py +0 -0
  590. {rucio-35.0.1 → rucio-35.1.0}/tests/test_utils.py +0 -0
  591. {rucio-35.0.1 → rucio-35.1.0}/tools/bootstrap.py +0 -0
  592. {rucio-35.0.1 → rucio-35.1.0}/tools/merge_rucio_configs.py +0 -0
  593. {rucio-35.0.1 → rucio-35.1.0}/tools/reset_database.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio
3
- Version: 35.0.1
3
+ Version: 35.1.0
4
4
  Summary: Rucio Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -1196,7 +1196,9 @@ def declare_temporary_unavailable_replicas(args):
1196
1196
  else:
1197
1197
  bad_files = args.listbadfiles
1198
1198
 
1199
- assert args.duration is not None, "Duration should have been set, something went wrong!"
1199
+ if args.duration is None:
1200
+ raise ValueError("Duration should have been set, something went wrong!")
1201
+
1200
1202
  expiration_date = (datetime.datetime.utcnow() + datetime.timedelta(seconds=args.duration)).isoformat()
1201
1203
 
1202
1204
  chunk_size = 10000
@@ -21,6 +21,7 @@ import signal
21
21
  import sys
22
22
  import textwrap
23
23
  import time
24
+ from configparser import NoSectionError
24
25
  from datetime import datetime
25
26
  from functools import partial
26
27
  from multiprocessing import Event, Pipe, Process, Queue
@@ -29,6 +30,7 @@ import rucio.common.config as config
29
30
  import rucio.common.dumper as dumper
30
31
  import rucio.daemons.auditor
31
32
  from rucio.client.rseclient import RSEClient
33
+ from rucio.common.exception import RSENotFound
32
34
 
33
35
 
34
36
  def setup_pipe_logger(pipe, loglevel):
@@ -48,14 +50,17 @@ def main(args):
48
50
  RETRY_AFTER = 60 * 60 * 24 * 14 # Two weeks
49
51
 
50
52
  nprocs = args.nprocs
51
- assert nprocs >= 1
53
+ if nprocs < 1:
54
+ raise RuntimeError("No Processes to Run")
55
+
52
56
  if args.rses is None:
53
57
  rses_gen = RSEClient().list_rses()
54
58
  else:
55
59
  rses_gen = RSEClient().list_rses(args.rses)
56
60
 
57
61
  rses = [entry['rse'] for entry in rses_gen]
58
- assert len(rses) > 0
62
+ if len(rses) <= 0:
63
+ raise RSENotFound("No RSEs found to audit.")
59
64
 
60
65
  procs = []
61
66
  queue = Queue()
@@ -69,7 +74,9 @@ def main(args):
69
74
  logpipes.append(mainlogr)
70
75
  logger = setup_pipe_logger(mainlogw, loglevel)
71
76
 
72
- assert config.config_has_section('auditor')
77
+ if not config.config_has_section('auditor'):
78
+ raise NoSectionError("Auditor section required in config to run the auditor daemon.")
79
+
73
80
  cache_dir = config.config_get('auditor', 'cache')
74
81
  results_dir = config.config_get('auditor', 'results')
75
82
 
@@ -95,9 +95,10 @@ if __name__ == "__main__":
95
95
  record_type = data_models.CompleteDataset
96
96
  elif args.subcommand == 'dump-replicas':
97
97
  record_type = data_models.Replica
98
- else:
99
- assert args.subcommand in consistency.subcommands
98
+ elif args.subcommand in consistency.subcommands:
100
99
  record_type = consistency.Consistency
100
+ else:
101
+ raise ValueError("Record type not set! Cannot dump files.")
101
102
 
102
103
  if 'filter' in args and args.filter:
103
104
  user_filter = data_models.Filter(args.filter, record_type).match
@@ -113,8 +114,8 @@ if __name__ == "__main__":
113
114
  fields = set(record_type.get_fieldnames())
114
115
 
115
116
  if 'group_by' in args and args.group_by:
116
- # FIXME: Better checking
117
- assert args.group_by in fields
117
+ if args.group_by not in fields:
118
+ raise ValueError("Group_by option %s not supported." % args.group_by)
118
119
  fields = [args.group_by]
119
120
  data_iter = data
120
121
  data_dict = {}
@@ -125,7 +126,8 @@ if __name__ == "__main__":
125
126
  data_dict[key].append(record)
126
127
 
127
128
  if 'sum' in args and args.sum:
128
- assert args.sum in set(record_type.get_fieldnames())
129
+ if args.sum not in set(record_type.get_fieldnames()):
130
+ raise ValueError("Sum option %s for record type %s not supported.\nChoice from %s" % (args.sum, args.record_type, set(record_type.get_fieldnames())))
129
131
  fields.append(args.sum)
130
132
  data = []
131
133
  for key, value in data_dict.items():
@@ -69,8 +69,8 @@ class LockClient(BaseClient):
69
69
  """
70
70
 
71
71
  # convert did list to list of dictionaries
72
-
73
- assert all(did.get("type", "dataset") in ("dataset", "container") for did in dids), "did type can be either 'container' or 'dataset'"
72
+ if not all(did.get("type", "dataset") in ("dataset", "container") for did in dids):
73
+ raise ValueError("DID type can be either 'container' or 'dataset'")
74
74
 
75
75
  path = '/'.join([self.LOCKS_BASEURL, "bulk_locks_for_dids"])
76
76
  url = build_url(choice(self.list_hosts), path=path)
@@ -48,7 +48,7 @@ from rucio.rse import rsemanager as rsemgr
48
48
  if TYPE_CHECKING:
49
49
  from collections.abc import Iterable, Mapping
50
50
 
51
- from rucio.common.types import AttachDict, DatasetDict, DIDStringDict, FileToUploadDict, FileToUploadWithCollectedAndDatasetInfoDict, FileToUploadWithCollectedInfoDict, LoggerFunction, RSESettingsDict, TraceBaseDict, TraceDict
51
+ from rucio.common.types import AttachDict, DatasetDict, DIDStringDict, FileToUploadDict, FileToUploadWithCollectedAndDatasetInfoDict, FileToUploadWithCollectedInfoDict, LoggerFunction, PathTypeAlias, RSESettingsDict, TraceBaseDict, TraceDict
52
52
  from rucio.rse.protocols.protocol import RSEProtocol
53
53
 
54
54
 
@@ -372,10 +372,7 @@ class UploadClient:
372
372
  raise NotAllFilesUploaded()
373
373
  return 0
374
374
 
375
- def _add_bittorrent_meta(self, file: "Mapping[str, Any]", logger: "LoggerFunction") -> None:
376
- if not config_get_bool('client', 'register_bittorrent_meta', default=False):
377
- return
378
-
375
+ def _add_bittorrent_meta(self, file: "Mapping[str, Any]") -> None:
379
376
  pieces_root, pieces_layers, piece_length = bittorrent_v2_merkle_sha256(os.path.join(file['dirname'], file['basename']))
380
377
  bittorrent_meta = {
381
378
  'bittorrent_pieces_root': base64.b64encode(pieces_root).decode(),
@@ -383,6 +380,7 @@ class UploadClient:
383
380
  'bittorrent_piece_length': piece_length,
384
381
  }
385
382
  self.client.set_metadata_bulk(scope=file['did_scope'], name=file['did_name'], meta=bittorrent_meta)
383
+ self.logger(logging.INFO, f"Added bittorrent metadata to file DID {file['did_scope']}:{file['did_name']}")
386
384
 
387
385
  def _register_file(
388
386
  self,
@@ -434,7 +432,6 @@ class UploadClient:
434
432
  logger(logging.INFO, 'Successfully created dataset %s' % dataset_did_str)
435
433
  except DataIdentifierAlreadyExists:
436
434
  logger(logging.INFO, 'Dataset %s already exists - no rule will be created' % dataset_did_str)
437
-
438
435
  if file.get('lifetime') is not None:
439
436
  raise InputValidationError('Dataset %s exists and lifetime %s given. Prohibited to modify parent dataset lifetime.' % (dataset_did_str,
440
437
  file.get('lifetime')))
@@ -453,7 +450,6 @@ class UploadClient:
453
450
 
454
451
  if str(meta['adler32']).lstrip('0') != str(file['adler32']).lstrip('0'):
455
452
  logger(logging.ERROR, 'Local checksum %s does not match remote checksum %s' % (file['adler32'], meta['adler32']))
456
-
457
453
  raise DataIdentifierAlreadyExists
458
454
 
459
455
  # add file to rse if it is not registered yet
@@ -464,7 +460,8 @@ class UploadClient:
464
460
  except DataIdentifierNotFound:
465
461
  logger(logging.DEBUG, 'File DID does not exist')
466
462
  self.client.add_replicas(rse=rse, files=[replica_for_api])
467
- self._add_bittorrent_meta(file=file, logger=logger)
463
+ if config_get_bool('client', 'register_bittorrent_meta', default=False):
464
+ self._add_bittorrent_meta(file=file)
468
465
  logger(logging.INFO, 'Successfully added replica in Rucio catalogue at %s' % rse)
469
466
  if not dataset_did_str:
470
467
  # only need to add rules for files if no dataset is given
@@ -499,7 +496,7 @@ class UploadClient:
499
496
 
500
497
  def _collect_file_info(
501
498
  self,
502
- filepath: str,
499
+ filepath: "PathTypeAlias",
503
500
  item: "FileToUploadDict"
504
501
  ) -> "FileToUploadWithCollectedInfoDict":
505
502
  """
@@ -845,7 +842,7 @@ class UploadClient:
845
842
  scope = self.default_file_scope
846
843
  rse = item.get('rse')
847
844
  path = item.get('path')
848
- if path:
845
+ if path and isinstance(path, str):
849
846
  if path[-1] == '/':
850
847
  path = path[0:-1]
851
848
  i = 0
@@ -81,7 +81,8 @@ def mkdir(dir_: "StrOrBytesPath") -> None:
81
81
  try:
82
82
  os.mkdir(dir_)
83
83
  except OSError as error:
84
- assert error.errno == 17
84
+ if error.errno != 17:
85
+ raise error
85
86
 
86
87
 
87
88
  def cacert_config(config: "ModuleType", rucio_home: str) -> Optional[Union["FileDescriptorOrPath", Literal[False]]]:
@@ -41,10 +41,12 @@ class Consistency(data_models.DataModel):
41
41
  ddm_endpoint, prev_date, cache_dir=cache_dir)
42
42
  next_date_fname = data_models.Replica.download(
43
43
  ddm_endpoint, next_date, cache_dir=cache_dir)
44
- assert prev_date_fname is not None
45
- assert next_date_fname is not None
44
+ if (prev_date_fname is None) or (next_date_fname is None):
45
+ raise ValueError("Both prev_date_fname and next_date_fname are required for subcommand='consistency'; found prev_data_fname=%s and next_date_fname=%s" % (prev_date_fname, next_date_fname))
46
+ elif subcommand == 'consistency-manual':
47
+ pass
46
48
  else:
47
- assert subcommand == 'consistency-manual'
49
+ raise ValueError("subcommand %s not accepted, choice from ('consistency','consistency-manual')" % subcommand)
48
50
 
49
51
  prefix_components = path_parsing.components(dumper.ddmendpoint_url(ddm_endpoint))
50
52
 
@@ -166,7 +168,8 @@ def min3(*values):
166
168
  Minimum between the 3 values ignoring None
167
169
  '''
168
170
  values = [value for value in values if value is not None]
169
- assert len(values) > 0
171
+ if len(values) == 0:
172
+ raise ValueError("Input contains 0 non-null values.")
170
173
  return min(values)
171
174
 
172
175
 
@@ -301,7 +304,8 @@ def gnu_sort(file_path, prefix=None, delimiter=None, fieldspec=None, cache_dir=D
301
304
  memory and it is relatively fast if used with the environment variable
302
305
  LC_ALL set to C as in this function.
303
306
  '''
304
- assert (delimiter is None and fieldspec is None) or (delimiter is not None and fieldspec is not None)
307
+ if (delimiter is not None) ^ (fieldspec is not None):
308
+ raise ValueError("Either both delimiter and fieldspec is set, or neither are.")
305
309
  if delimiter is None:
306
310
  cmd_line = 'LC_ALL=C sort {0} > {1}'
307
311
  else:
@@ -388,8 +392,10 @@ def _parse_args_consistency(args):
388
392
  error('The storage dump filename must be of the form '
389
393
  '"dump_YYYYMMDD" where the date correspond to the date '
390
394
  'of the newest files included')
395
+
391
396
  date_str = date_str.group(1)
392
- assert date_str is not None
397
+ if date_str is None:
398
+ error('Invalid date {0}'.format(date_str))
393
399
  try:
394
400
  args_dict['date'] = date = datetime.datetime.strptime(date_str, '%Y%m%d')
395
401
  except ValueError:
@@ -150,20 +150,17 @@ class DataModel:
150
150
  logger = logging.getLogger('auditor.data_models')
151
151
  requests_session = get_requests_session()
152
152
  if date == 'latest':
153
- url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}'.format(rse)))
153
+ url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}'.format(rse))) # type: ignore
154
154
  request_headers = requests_session.head(url)
155
155
  for field in request_headers.headers['content-disposition'].split(';'):
156
156
  if field.startswith('filename='):
157
157
  date = field.split('=')[1].split('_')[-1].split('.')[0]
158
158
 
159
+ elif isinstance(date, datetime.datetime):
160
+ date = date.strftime('%d-%m-%Y')
161
+ url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}&date={1}'.format(rse, date))) # type: ignore
159
162
  else:
160
- assert isinstance(date, datetime.datetime)
161
- date = date.strftime('%d-%m-%Y') # pylint: disable=no-member
162
- url = ''.join((
163
- cls.BASE_URL,
164
- cls.URI,
165
- '?rse={0}&date={1}'.format(rse, date),
166
- ))
163
+ raise ValueError("Passed date (%s) must be a datetime object or 'latest'." % date)
167
164
 
168
165
  if not os.path.isdir(cache_dir):
169
166
  os.mkdir(cache_dir)
@@ -237,7 +234,8 @@ class CompleteDataset(DataModel):
237
234
  self.state = args[7]
238
235
  else:
239
236
  self.state = None
240
- assert len(args) <= 8
237
+ if len(args) > 8:
238
+ raise ValueError("Too many arguments, must be 8 or less. Instead passed %s" % len(args))
241
239
 
242
240
 
243
241
  class Replica(DataModel):
@@ -264,7 +262,8 @@ class Replica(DataModel):
264
262
 
265
263
  if len(args) == 8:
266
264
  logger.warning('Missing parameter\nrse: %s\ndataset: %s\n', self.rse, self.name)
267
- assert len(args) <= 9
265
+ elif len(args) > 9:
266
+ raise ValueError("Too many arguments. Must be 9 or less, instead passed %s" % len(args))
268
267
 
269
268
 
270
269
  class Filter:
@@ -292,7 +291,8 @@ class Filter:
292
291
  for expr in filter_str.split(','):
293
292
  key, expected = expr.split('=')
294
293
  # Better checks required
295
- assert key in record_class.get_fieldnames()
294
+ if key not in record_class.get_fieldnames():
295
+ raise ValueError("Key %s not supported." % key)
296
296
  parser = list(filter(lambda t: t[0] == key, record_class.SCHEMA))[0][1]
297
297
  self.conditions.append(self._Condition(
298
298
  comparator=operator.eq,
@@ -15,11 +15,14 @@
15
15
  import sys
16
16
  from collections.abc import Callable
17
17
  from datetime import datetime
18
+ from os import PathLike
18
19
 
19
20
  if sys.version_info < (3, 11):
20
21
  from typing_extensions import TYPE_CHECKING, Any, Literal, NotRequired, Optional, TypedDict, Union # noqa: UP035
22
+ PathTypeAlias = Union[PathLike, str]
21
23
  else:
22
24
  from typing import TYPE_CHECKING, Any, Literal, NotRequired, Optional, TypedDict, Union
25
+ PathTypeAlias = PathLike
23
26
 
24
27
 
25
28
  if TYPE_CHECKING:
@@ -306,7 +309,7 @@ class TraceDict(TraceBaseDict):
306
309
 
307
310
 
308
311
  class FileToUploadDict(TypedDict):
309
- path: str
312
+ path: PathTypeAlias
310
313
  rse: str
311
314
  did_scope: str
312
315
  did_name: str
@@ -1941,7 +1941,8 @@ class StoreAndDeprecateWarningAction(argparse.Action):
1941
1941
  option_strings=option_strings,
1942
1942
  dest=dest,
1943
1943
  **kwargs)
1944
- assert new_option_string in option_strings
1944
+ if new_option_string not in option_strings:
1945
+ raise ValueError("%s not supported as a string option." % new_option_string)
1945
1946
  self.new_option_string = new_option_string
1946
1947
 
1947
1948
  def __call__(self, parser, namespace, values, option_string: Optional[str] = None):
@@ -1979,7 +1980,8 @@ class StoreTrueAndDeprecateWarningAction(argparse._StoreConstAction):
1979
1980
  default=default,
1980
1981
  required=required,
1981
1982
  help=help)
1982
- assert new_option_string in option_strings
1983
+ if new_option_string not in option_strings:
1984
+ raise ValueError("%s not supported as a string option." % new_option_string)
1983
1985
  self.new_option_string = new_option_string
1984
1986
 
1985
1987
  def __call__(self, parser, namespace, values, option_string: Optional[str] = None):