rucio 34.2.0__tar.gz → 34.3.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 (595) hide show
  1. {rucio-34.2.0 → rucio-34.3.0}/PKG-INFO +1 -1
  2. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio +2 -2
  3. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-admin +11 -10
  4. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-auditor +2 -2
  5. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-automatix +1 -1
  6. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-finisher +1 -1
  7. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-submitter +2 -2
  8. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-judge-evaluator +2 -2
  9. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-necromancer +1 -1
  10. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-oauth-manager +2 -2
  11. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-replica-recoverer +2 -2
  12. {rucio-34.2.0 → rucio-34.3.0}/etc/ldap.cfg.template +1 -1
  13. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/account_limit.py +1 -1
  14. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/config.py +11 -11
  15. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/did.py +2 -1
  16. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/rse.py +2 -2
  17. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/vo.py +16 -5
  18. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/accountclient.py +1 -1
  19. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/baseclient.py +5 -4
  20. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/didclient.py +1 -1
  21. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/downloadclient.py +11 -11
  22. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/rseclient.py +5 -5
  23. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/ruleclient.py +2 -1
  24. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/uploadclient.py +6 -5
  25. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/cache.py +3 -1
  26. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/config.py +37 -37
  27. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/constants.py +61 -1
  28. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/didtype.py +23 -20
  29. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/dumper/__init__.py +40 -25
  30. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/dumper/consistency.py +3 -3
  31. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/dumper/data_models.py +2 -2
  32. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/pcache.py +2 -2
  33. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/plugins.py +10 -9
  34. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/policy.py +4 -3
  35. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/__init__.py +11 -7
  36. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/types.py +14 -1
  37. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/utils.py +18 -19
  38. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/account_counter.py +1 -1
  39. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/account_limit.py +1 -1
  40. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/authentication.py +9 -4
  41. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/credential.py +3 -2
  42. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did.py +7 -8
  43. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/__init__.py +1 -1
  44. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +2 -3
  45. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +58 -9
  46. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +2 -2
  47. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/json_meta.py +2 -3
  48. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +3 -3
  49. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +1 -1
  50. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/dirac.py +1 -1
  51. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/heartbeat.py +80 -26
  52. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/identity.py +21 -9
  53. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/importer.py +3 -2
  54. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/lifetime_exception.py +3 -3
  55. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/lock.py +3 -2
  56. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/monitor.py +17 -9
  57. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/naming_convention.py +47 -14
  58. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/oidc.py +5 -5
  59. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/__init__.py +11 -3
  60. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/atlas.py +33 -32
  61. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/belleii.py +4 -3
  62. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/cms.py +9 -8
  63. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/escape.py +5 -4
  64. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/generic.py +79 -78
  65. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/permission/generic_multi_vo.py +6 -5
  66. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/quarantined_replica.py +1 -1
  67. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/replica.py +14 -13
  68. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/request.py +7 -6
  69. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rse.py +11 -10
  70. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rse_counter.py +1 -1
  71. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rse_expression_parser.py +4 -4
  72. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rse_selector.py +6 -6
  73. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rule.py +34 -33
  74. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/rule_grouping.py +19 -18
  75. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/subscription.py +2 -3
  76. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/topology.py +18 -16
  77. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/transfer.py +12 -12
  78. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/vo.py +3 -4
  79. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/volatile_replica.py +1 -1
  80. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/auditor/__init__.py +4 -4
  81. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/auditor/srmdumps.py +7 -6
  82. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/automatix/automatix.py +1 -1
  83. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/badreplicas/minos.py +1 -1
  84. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/bb8/common.py +1 -1
  85. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +2 -1
  86. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +2 -1
  87. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +4 -3
  88. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/common.py +2 -2
  89. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/common.py +4 -3
  90. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/finisher.py +2 -2
  91. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/poller.py +4 -4
  92. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/stager.py +1 -1
  93. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/submitter.py +1 -1
  94. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/throttler.py +1 -1
  95. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/hermes/hermes.py +3 -1
  96. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +2 -2
  97. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/reaper/reaper.py +9 -8
  98. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +2 -2
  99. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/config.py +3 -2
  100. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +2 -1
  101. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +3 -2
  102. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/storage/consistency/actions.py +1 -1
  103. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +6 -5
  104. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/__init__.py +16 -1
  105. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/models.py +1 -1
  106. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/session.py +2 -2
  107. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/util.py +1 -1
  108. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/bittorrent.py +1 -1
  109. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/cache.py +1 -1
  110. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/dummy.py +1 -1
  111. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/gfal.py +7 -7
  112. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/globus.py +6 -5
  113. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/gsiftp.py +2 -2
  114. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/http_cache.py +1 -1
  115. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/mock.py +1 -1
  116. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/ngarc.py +1 -1
  117. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/posix.py +7 -7
  118. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/protocol.py +13 -12
  119. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/rclone.py +4 -4
  120. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/rfio.py +4 -4
  121. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/srm.py +6 -6
  122. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/ssh.py +6 -6
  123. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/storm.py +1 -1
  124. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/webdav.py +2 -2
  125. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/xrootd.py +4 -4
  126. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/tests/common.py +3 -2
  127. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/tests/common_server.py +1 -1
  128. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/bittorrent.py +7 -6
  129. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/bittorrent_driver.py +2 -2
  130. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +4 -5
  131. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/fts3.py +18 -18
  132. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/fts3_plugins.py +5 -4
  133. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/globus.py +5 -4
  134. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/transfertool.py +1 -1
  135. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/vcsversion.py +3 -3
  136. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +1 -1
  137. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +2 -2
  138. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -13
  139. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/common.py +1 -1
  140. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +3 -3
  141. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +13 -13
  142. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/import.py +1 -1
  143. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +3 -3
  144. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/main.py +1 -1
  145. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +2 -2
  146. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +3 -3
  147. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +17 -17
  148. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +12 -12
  149. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +11 -4
  150. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +4 -4
  151. rucio-34.3.0/pyproject.toml +101 -0
  152. {rucio-34.2.0 → rucio-34.3.0}/requirements.txt +1 -0
  153. {rucio-34.2.0 → rucio-34.3.0}/tests/test_account.py +3 -3
  154. {rucio-34.2.0 → rucio-34.3.0}/tests/test_authentication.py +3 -5
  155. {rucio-34.2.0 → rucio-34.3.0}/tests/test_bad_replica.py +1 -1
  156. {rucio-34.2.0 → rucio-34.3.0}/tests/test_bin_rucio.py +41 -41
  157. {rucio-34.2.0 → rucio-34.3.0}/tests/test_config.py +2 -2
  158. {rucio-34.2.0 → rucio-34.3.0}/tests/test_conveyor.py +26 -25
  159. {rucio-34.2.0 → rucio-34.3.0}/tests/test_conveyor_submitter.py +6 -5
  160. {rucio-34.2.0 → rucio-34.3.0}/tests/test_credential.py +2 -1
  161. {rucio-34.2.0 → rucio-34.3.0}/tests/test_dataset_replicas.py +1 -1
  162. {rucio-34.2.0 → rucio-34.3.0}/tests/test_dumper_data_model.py +2 -2
  163. {rucio-34.2.0 → rucio-34.3.0}/tests/test_identity.py +2 -2
  164. {rucio-34.2.0 → rucio-34.3.0}/tests/test_import_export.py +6 -5
  165. {rucio-34.2.0 → rucio-34.3.0}/tests/test_judge_repairer.py +1 -1
  166. {rucio-34.2.0 → rucio-34.3.0}/tests/test_multi_vo.py +6 -5
  167. {rucio-34.2.0 → rucio-34.3.0}/tests/test_oidc.py +9 -9
  168. {rucio-34.2.0 → rucio-34.3.0}/tests/test_preparer.py +7 -6
  169. {rucio-34.2.0 → rucio-34.3.0}/tests/test_reaper.py +1 -1
  170. {rucio-34.2.0 → rucio-34.3.0}/tests/test_replica.py +6 -5
  171. {rucio-34.2.0 → rucio-34.3.0}/tests/test_replica_recoverer.py +4 -4
  172. {rucio-34.2.0 → rucio-34.3.0}/tests/test_replica_sorting.py +3 -2
  173. {rucio-34.2.0 → rucio-34.3.0}/tests/test_request.py +6 -5
  174. {rucio-34.2.0 → rucio-34.3.0}/tests/test_root_proxy.py +3 -2
  175. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse.py +4 -3
  176. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_expression_parser.py +2 -2
  177. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_lfn2path.py +1 -1
  178. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rule.py +8 -7
  179. {rucio-34.2.0 → rucio-34.3.0}/tests/test_schema_cms.py +1 -1
  180. {rucio-34.2.0 → rucio-34.3.0}/tests/test_scope.py +2 -2
  181. {rucio-34.2.0 → rucio-34.3.0}/tests/test_subscription.py +4 -3
  182. {rucio-34.2.0 → rucio-34.3.0}/tests/test_transfer_plugins.py +1 -1
  183. {rucio-34.2.0 → rucio-34.3.0}/tests/test_upload.py +2 -1
  184. rucio-34.2.0/pyproject.toml +0 -61
  185. {rucio-34.2.0 → rucio-34.3.0}/AUTHORS.rst +0 -0
  186. {rucio-34.2.0 → rucio-34.3.0}/ChangeLog +0 -0
  187. {rucio-34.2.0 → rucio-34.3.0}/LICENSE +0 -0
  188. {rucio-34.2.0 → rucio-34.3.0}/MANIFEST.in +0 -0
  189. {rucio-34.2.0 → rucio-34.3.0}/README.rst +0 -0
  190. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-abacus-account +0 -0
  191. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-abacus-collection-replica +0 -0
  192. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-abacus-rse +0 -0
  193. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-atropos +0 -0
  194. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-bb8 +0 -0
  195. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-c3po +0 -0
  196. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-cache-client +0 -0
  197. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-cache-consumer +0 -0
  198. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-poller +0 -0
  199. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-preparer +0 -0
  200. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-receiver +0 -0
  201. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-stager +0 -0
  202. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-conveyor-throttler +0 -0
  203. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-dark-reaper +0 -0
  204. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-dumper +0 -0
  205. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-follower +0 -0
  206. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-hermes +0 -0
  207. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-judge-cleaner +0 -0
  208. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-judge-injector +0 -0
  209. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-judge-repairer +0 -0
  210. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-kronos +0 -0
  211. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-minos +0 -0
  212. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-minos-temporary-expiration +0 -0
  213. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-reaper +0 -0
  214. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-rse-decommissioner +0 -0
  215. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-storage-consistency-actions +0 -0
  216. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-transmogrifier +0 -0
  217. {rucio-34.2.0 → rucio-34.3.0}/bin/rucio-undertaker +0 -0
  218. {rucio-34.2.0 → rucio-34.3.0}/etc/alembic.ini.template +0 -0
  219. {rucio-34.2.0 → rucio-34.3.0}/etc/alembic_offline.ini.template +0 -0
  220. {rucio-34.2.0 → rucio-34.3.0}/etc/globus-config.yml.template +0 -0
  221. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  222. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  223. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  224. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  225. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  226. {rucio-34.2.0 → rucio-34.3.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  227. {rucio-34.2.0 → rucio-34.3.0}/etc/rse-accounts.cfg.template +0 -0
  228. {rucio-34.2.0 → rucio-34.3.0}/etc/rucio.cfg.atlas.client.template +0 -0
  229. {rucio-34.2.0 → rucio-34.3.0}/etc/rucio.cfg.template +0 -0
  230. {rucio-34.2.0 → rucio-34.3.0}/etc/rucio_multi_vo.cfg.template +0 -0
  231. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/__init__.py +0 -0
  232. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/alembicrevision.py +0 -0
  233. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/__init__.py +0 -0
  234. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/account.py +0 -0
  235. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/authentication.py +0 -0
  236. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/credential.py +0 -0
  237. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/dirac.py +0 -0
  238. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/exporter.py +0 -0
  239. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/heartbeat.py +0 -0
  240. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/identity.py +0 -0
  241. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/importer.py +0 -0
  242. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/lifetime_exception.py +0 -0
  243. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/lock.py +0 -0
  244. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/meta_conventions.py +0 -0
  245. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/permission.py +0 -0
  246. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/quarantined_replica.py +0 -0
  247. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/replica.py +0 -0
  248. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/request.py +0 -0
  249. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/rule.py +0 -0
  250. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/scope.py +0 -0
  251. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/api/subscription.py +0 -0
  252. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/__init__.py +0 -0
  253. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/accountlimitclient.py +0 -0
  254. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/client.py +0 -0
  255. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/configclient.py +0 -0
  256. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/credentialclient.py +0 -0
  257. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/diracclient.py +0 -0
  258. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/exportclient.py +0 -0
  259. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/fileclient.py +0 -0
  260. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/importclient.py +0 -0
  261. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/lifetimeclient.py +0 -0
  262. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/lockclient.py +0 -0
  263. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/metaconventionsclient.py +0 -0
  264. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/pingclient.py +0 -0
  265. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/replicaclient.py +0 -0
  266. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/requestclient.py +0 -0
  267. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/scopeclient.py +0 -0
  268. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/subscriptionclient.py +0 -0
  269. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/client/touchclient.py +0 -0
  270. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/__init__.py +0 -0
  271. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/constraints.py +0 -0
  272. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
  273. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/exception.py +0 -0
  274. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/extra.py +0 -0
  275. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/logging.py +0 -0
  276. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/atlas.py +0 -0
  277. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/belleii.py +0 -0
  278. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/cms.py +0 -0
  279. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/domatpc.py +0 -0
  280. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/escape.py +0 -0
  281. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/generic.py +0 -0
  282. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  283. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/icecube.py +0 -0
  284. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/schema/lsst.py +0 -0
  285. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/stomp_utils.py +0 -0
  286. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/stopwatch.py +0 -0
  287. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/common/test_rucio_server.py +0 -0
  288. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/__init__.py +0 -0
  289. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/account.py +0 -0
  290. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/config.py +0 -0
  291. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/distance.py +0 -0
  292. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/exporter.py +0 -0
  293. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/message.py +0 -0
  294. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/meta_conventions.py +0 -0
  295. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/nongrid_trace.py +0 -0
  296. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/replica_sorter.py +0 -0
  297. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/scope.py +0 -0
  298. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/core/trace.py +0 -0
  299. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/__init__.py +0 -0
  300. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
  301. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/abacus/account.py +0 -0
  302. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
  303. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/abacus/rse.py +0 -0
  304. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
  305. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
  306. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  307. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
  308. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
  309. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
  310. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
  311. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
  312. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
  313. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
  314. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
  315. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
  316. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
  317. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
  318. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
  319. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
  320. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
  321. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
  322. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
  323. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
  324. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
  325. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
  326. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
  327. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
  328. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
  329. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
  330. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
  331. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
  332. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/cache/__init__.py +0 -0
  333. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/cache/consumer.py +0 -0
  334. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
  335. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
  336. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
  337. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/follower/__init__.py +0 -0
  338. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/follower/follower.py +0 -0
  339. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
  340. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/judge/__init__.py +0 -0
  341. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
  342. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
  343. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/judge/injector.py +0 -0
  344. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/judge/repairer.py +0 -0
  345. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
  346. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
  347. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
  348. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
  349. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
  350. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  351. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  352. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  353. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/storage/__init__.py +0 -0
  354. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
  355. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
  356. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
  357. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
  358. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
  359. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
  360. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/__init__.py +0 -0
  361. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/constants.py +0 -0
  362. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
  363. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  364. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  365. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  366. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  367. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  368. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
  369. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  370. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  371. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  372. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
  373. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  374. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  375. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  376. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  377. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  378. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  379. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  380. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  381. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  382. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  383. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  384. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  385. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  386. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  387. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  388. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  389. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  390. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  391. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  392. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  393. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  394. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  395. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  396. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  397. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  398. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  399. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  400. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  401. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  402. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  403. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
  404. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  405. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  406. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  407. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  408. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  409. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  410. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  411. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  412. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  413. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  414. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  415. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  416. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  417. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  418. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  419. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  420. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  421. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  422. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  423. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  424. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  425. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  426. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  427. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  428. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  429. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
  430. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  431. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  432. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  433. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  434. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  435. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  436. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  437. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  438. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  439. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  440. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  441. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  442. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  443. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  444. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  445. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  446. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  447. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  448. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  449. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  450. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  451. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  452. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  453. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  454. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  455. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  456. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  457. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  458. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  459. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  460. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  461. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  462. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  463. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  464. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  465. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  466. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  467. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  468. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  469. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  470. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  471. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  472. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  473. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
  474. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  475. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  476. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  477. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  478. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  479. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  480. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  481. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  482. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  483. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  484. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  485. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  486. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  487. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  488. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  489. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  490. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/sautils.py +0 -0
  491. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/db/sqla/types.py +0 -0
  492. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/__init__.py +0 -0
  493. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/protocols/__init__.py +0 -0
  494. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/rse/rsemanager.py +0 -0
  495. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/tests/__init__.py +0 -0
  496. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/__init__.py +0 -0
  497. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/globus_library.py +0 -0
  498. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/transfertool/mock.py +0 -0
  499. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/version.py +0 -0
  500. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/__init__.py +0 -0
  501. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/__init__.py +0 -0
  502. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
  503. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  504. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
  505. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
  506. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
  507. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
  508. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
  509. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
  510. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
  511. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
  512. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
  513. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
  514. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
  515. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
  516. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
  517. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  518. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  519. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
  520. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
  521. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/main.py +0 -0
  522. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/metrics.py +0 -0
  523. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio/web/rest/ping.py +0 -0
  524. {rucio-34.2.0 → rucio-34.3.0}/lib/rucio.egg-info/SOURCES.txt +0 -0
  525. {rucio-34.2.0 → rucio-34.3.0}/pylintrc +0 -0
  526. {rucio-34.2.0 → rucio-34.3.0}/setup.cfg +0 -0
  527. {rucio-34.2.0 → rucio-34.3.0}/setup.py +0 -0
  528. {rucio-34.2.0 → rucio-34.3.0}/setuputil.py +0 -0
  529. {rucio-34.2.0 → rucio-34.3.0}/tests/test_abacus_account.py +0 -0
  530. {rucio-34.2.0 → rucio-34.3.0}/tests/test_abacus_collection_replica.py +0 -0
  531. {rucio-34.2.0 → rucio-34.3.0}/tests/test_abacus_rse.py +0 -0
  532. {rucio-34.2.0 → rucio-34.3.0}/tests/test_account_limits.py +0 -0
  533. {rucio-34.2.0 → rucio-34.3.0}/tests/test_api_external_representation.py +0 -0
  534. {rucio-34.2.0 → rucio-34.3.0}/tests/test_archive.py +0 -0
  535. {rucio-34.2.0 → rucio-34.3.0}/tests/test_auditor.py +0 -0
  536. {rucio-34.2.0 → rucio-34.3.0}/tests/test_auditor_hdfs.py +0 -0
  537. {rucio-34.2.0 → rucio-34.3.0}/tests/test_auditor_srmdumps.py +0 -0
  538. {rucio-34.2.0 → rucio-34.3.0}/tests/test_automatix.py +0 -0
  539. {rucio-34.2.0 → rucio-34.3.0}/tests/test_bb8.py +0 -0
  540. {rucio-34.2.0 → rucio-34.3.0}/tests/test_belleii.py +0 -0
  541. {rucio-34.2.0 → rucio-34.3.0}/tests/test_boolean.py +0 -0
  542. {rucio-34.2.0 → rucio-34.3.0}/tests/test_clients.py +0 -0
  543. {rucio-34.2.0 → rucio-34.3.0}/tests/test_common_types.py +0 -0
  544. {rucio-34.2.0 → rucio-34.3.0}/tests/test_counter.py +0 -0
  545. {rucio-34.2.0 → rucio-34.3.0}/tests/test_curl.py +0 -0
  546. {rucio-34.2.0 → rucio-34.3.0}/tests/test_daemons.py +0 -0
  547. {rucio-34.2.0 → rucio-34.3.0}/tests/test_db.py +0 -0
  548. {rucio-34.2.0 → rucio-34.3.0}/tests/test_did.py +0 -0
  549. {rucio-34.2.0 → rucio-34.3.0}/tests/test_did_meta_plugins.py +0 -0
  550. {rucio-34.2.0 → rucio-34.3.0}/tests/test_didtype.py +0 -0
  551. {rucio-34.2.0 → rucio-34.3.0}/tests/test_download.py +0 -0
  552. {rucio-34.2.0 → rucio-34.3.0}/tests/test_dumper.py +0 -0
  553. {rucio-34.2.0 → rucio-34.3.0}/tests/test_dumper_consistency.py +0 -0
  554. {rucio-34.2.0 → rucio-34.3.0}/tests/test_dumper_path_parsing.py +0 -0
  555. {rucio-34.2.0 → rucio-34.3.0}/tests/test_filter_engine.py +0 -0
  556. {rucio-34.2.0 → rucio-34.3.0}/tests/test_heartbeat.py +0 -0
  557. {rucio-34.2.0 → rucio-34.3.0}/tests/test_hermes.py +0 -0
  558. {rucio-34.2.0 → rucio-34.3.0}/tests/test_impl_upload_download.py +0 -0
  559. {rucio-34.2.0 → rucio-34.3.0}/tests/test_judge_cleaner.py +0 -0
  560. {rucio-34.2.0 → rucio-34.3.0}/tests/test_judge_evaluator.py +0 -0
  561. {rucio-34.2.0 → rucio-34.3.0}/tests/test_judge_injector.py +0 -0
  562. {rucio-34.2.0 → rucio-34.3.0}/tests/test_lifetime.py +0 -0
  563. {rucio-34.2.0 → rucio-34.3.0}/tests/test_message.py +0 -0
  564. {rucio-34.2.0 → rucio-34.3.0}/tests/test_meta_conventions.py +0 -0
  565. {rucio-34.2.0 → rucio-34.3.0}/tests/test_meta_did.py +0 -0
  566. {rucio-34.2.0 → rucio-34.3.0}/tests/test_module_import.py +0 -0
  567. {rucio-34.2.0 → rucio-34.3.0}/tests/test_monitor.py +0 -0
  568. {rucio-34.2.0 → rucio-34.3.0}/tests/test_naming_convention.py +0 -0
  569. {rucio-34.2.0 → rucio-34.3.0}/tests/test_oauthmanager.py +0 -0
  570. {rucio-34.2.0 → rucio-34.3.0}/tests/test_permission.py +0 -0
  571. {rucio-34.2.0 → rucio-34.3.0}/tests/test_pfns.py +0 -0
  572. {rucio-34.2.0 → rucio-34.3.0}/tests/test_ping.py +0 -0
  573. {rucio-34.2.0 → rucio-34.3.0}/tests/test_qos.py +0 -0
  574. {rucio-34.2.0 → rucio-34.3.0}/tests/test_quarantined_replica.py +0 -0
  575. {rucio-34.2.0 → rucio-34.3.0}/tests/test_redirect.py +0 -0
  576. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_gfal2.py +0 -0
  577. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  578. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_posix.py +0 -0
  579. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_rclone.py +0 -0
  580. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_rsync.py +0 -0
  581. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_srm.py +0 -0
  582. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_ssh.py +0 -0
  583. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_webdav.py +0 -0
  584. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_protocol_xrootd.py +0 -0
  585. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rse_selector.py +0 -0
  586. {rucio-34.2.0 → rucio-34.3.0}/tests/test_rucio_server.py +0 -0
  587. {rucio-34.2.0 → rucio-34.3.0}/tests/test_throttler.py +0 -0
  588. {rucio-34.2.0 → rucio-34.3.0}/tests/test_tpc.py +0 -0
  589. {rucio-34.2.0 → rucio-34.3.0}/tests/test_trace.py +0 -0
  590. {rucio-34.2.0 → rucio-34.3.0}/tests/test_transfer.py +0 -0
  591. {rucio-34.2.0 → rucio-34.3.0}/tests/test_undertaker.py +0 -0
  592. {rucio-34.2.0 → rucio-34.3.0}/tests/test_utils.py +0 -0
  593. {rucio-34.2.0 → rucio-34.3.0}/tools/bootstrap.py +0 -0
  594. {rucio-34.2.0 → rucio-34.3.0}/tools/merge_rucio_configs.py +0 -0
  595. {rucio-34.2.0 → rucio-34.3.0}/tools/reset_database.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio
3
- Version: 34.2.0
3
+ Version: 34.3.0
4
4
  Summary: Rucio Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -166,7 +166,7 @@ def exception_handler(function):
166
166
  used_account = '%s (from rucio.cfg)' % config_get('client', 'account')
167
167
  except:
168
168
  pass
169
- try: # are we overriden by the environment?
169
+ try: # are we overridden by the environment?
170
170
  used_account = '%s (from RUCIO_ACCOUNT)' % os.environ['RUCIO_ACCOUNT']
171
171
  except:
172
172
  pass
@@ -1550,7 +1550,7 @@ def list_rse_attributes(args):
1550
1550
  """
1551
1551
  client = get_client(args)
1552
1552
  attributes = client.list_rse_attributes(rse=args.rse)
1553
- table = [(k + ':', str(v)) for (k, v) in sorted(attributes.items())] # columns hav mixed datatypes
1553
+ table = [(k + ':', str(v)) for (k, v) in sorted(attributes.items())] # columns have mixed datatypes
1554
1554
  print(tabulate(table, tablefmt='plain', disable_numparse=True)) # disabling number parsing
1555
1555
  return SUCCESS
1556
1556
 
@@ -33,6 +33,7 @@ from tabulate import tabulate
33
33
  from rucio import version
34
34
  from rucio.client import Client
35
35
  from rucio.common.config import config_get
36
+ from rucio.common.constants import RseAttr
36
37
  from rucio.common.exception import (
37
38
  AccessDenied,
38
39
  AccountNotFound,
@@ -385,7 +386,7 @@ def set_limits(args):
385
386
  try:
386
387
  byte_limit = int(limit_input)
387
388
  except ValueError:
388
- logger.error('The limit could not be set. Either you misspelled infinity or your input could not be converted to integer or you used a wrong pattern. Please use a format like 10GB with B,KB,MB,GB,TB,PB as units (not case sensistive)')
389
+ logger.error('The limit could not be set. Either you misspelled infinity or your input could not be converted to integer or you used a wrong pattern. Please use a format like 10GB with B,KB,MB,GB,TB,PB as units (not case sensitive)')
389
390
  return FAILURE
390
391
 
391
392
  client.set_account_limit(account=args.account, rse=args.rse, bytes_=byte_limit, locality=locality)
@@ -1244,7 +1245,7 @@ def list_pfns(args):
1244
1245
  if not rse_info['deterministic']:
1245
1246
  logger.warning('This is a non-deterministic site, so the real PFN might be different from the on suggested')
1246
1247
  rse_attr = client.list_rse_attributes(rse)
1247
- naming_convention = rse_attr.get('naming_convention', None)
1248
+ naming_convention = rse_attr.get(RseAttr.NAMING_CONVENTION, None)
1248
1249
  parents = [did for did in client.list_parent_dids(scope, name)]
1249
1250
  if len(parents) > 1:
1250
1251
  logger.warning('The file has multiple parents')
@@ -1383,7 +1384,7 @@ def get_parser():
1383
1384
  oparser.add_argument('--oidc-refresh-lifetime', dest='oidc_refresh_lifetime', default=None, help='Max lifetime in hours for this an access token will be refreshed by asynchronous Rucio daemon. '
1384
1385
  + 'If not specified, refresh will be stopped after 4 days. This option is effective only if --oidc-scope includes offline_access scope for a refresh token to be granted to Rucio.') # NOQA: W503
1385
1386
  oparser.add_argument('--oidc-issuer', dest='oidc_issuer', default=None,
1386
- help='Defines which Identity Provider is goign to be used. The issuer string must correspond '
1387
+ help='Defines which Identity Provider is going to be used. The issuer string must correspond '
1387
1388
  + 'to the keys configured in the /etc/idpsecrets.json auth server configuration file.') # NOQA: W503
1388
1389
 
1389
1390
  # Options for the x509 auth_strategy
@@ -1432,7 +1433,7 @@ def get_parser():
1432
1433
  '"""""""""""""\n'
1433
1434
  '::\n'
1434
1435
  '\n'
1435
- ' $ rucio-admin account list --type \'user\'\n'
1436
+ ' $ rucio-admin account list --type USER\n'
1436
1437
  '\n')
1437
1438
  list_account_parser.add_argument('--type', dest='account_type', action='store', help='Account Type (USER, GROUP, SERVICE)')
1438
1439
  list_account_parser.add_argument('--id', dest='identity', action='store', help='Identity (e.g. DN)')
@@ -1708,7 +1709,7 @@ def get_parser():
1708
1709
  ' $ rucio-admin identity delete --account jdoe --type X509 --id \'CN=Joe Doe,CN=707658,CN=jdoe,OU=Users,OU=Organic Units,DC=cern,DC=ch\'\n'
1709
1710
  ' Deleted identity: CN=Joe Doe,CN=707658,CN=jdoe,OU=Users,OU=Organic Units,DC=cern,DC=ch\n'
1710
1711
  '\n'
1711
- 'Note: if the identity was accidentaly deleted, use add option.\n'
1712
+ 'Note: if the identity was accidentally deleted, use add option.\n'
1712
1713
  '\n')
1713
1714
  identity_delete_parser.set_defaults(which='identity_delete')
1714
1715
  identity_delete_parser.add_argument('--account', dest='account', action='store', help='Account name', required=True)
@@ -1956,7 +1957,7 @@ def get_parser():
1956
1957
  ' $ rucio-admin rse add-protocol --hostname jdoes.test.org --scheme gsiftp --prefix \'/atlasdatadisk/rucio/\' --port 8443 JDOE_DATADISK\n'
1957
1958
  '\n'
1958
1959
  'Note: no printed stdout.\n'
1959
- 'Note: examples of optional parametres::\n'
1960
+ 'Note: examples of optional parameters::\n'
1960
1961
  '\n'
1961
1962
  ' --space-token DATADISK\n'
1962
1963
  ' --web-service-path \'/srm/managerv2?SFN=\'\n'
@@ -2110,7 +2111,7 @@ def get_parser():
2110
2111
 
2111
2112
  # The config subparser
2112
2113
  config_parser = subparsers.add_parser('config',
2113
- help='Configuration methods. The global configuration of data mangement system can by modified.',
2114
+ help='Configuration methods. The global configuration of data management system can by modified.',
2114
2115
  formatter_class=argparse.RawDescriptionHelpFormatter,
2115
2116
  epilog='''e.g. quotas, daemons, rses''')
2116
2117
  config_subparser = config_parser.add_subparsers(dest='config_subcommand', **required_arg)
@@ -2311,9 +2312,9 @@ def get_parser():
2311
2312
  declare_bad_file_replicas_parser.add_argument('--inputfile', dest='inputfile', nargs='?', action='store', help='File containing list of bad items')
2312
2313
  declare_bad_file_replicas_parser.add_argument('--allow-collection', dest='allow_collection', action='store_true', help='Allow passing a collection DID as bad item')
2313
2314
 
2314
- declare_bad_file_replicas_parser.add_argument('--lfns', dest='lfns', nargs='?', action='store', help='File cotaining list of LFNs for bad replicas. Requires --rse and --scope')
2315
- declare_bad_file_replicas_parser.add_argument('--scope', dest='scope', nargs='?', action='store', help='Common scope for bad replicas secified with LFN list, ignored wthout --lfns')
2316
- declare_bad_file_replicas_parser.add_argument('--rse', dest='rse', nargs='?', action='store', help='Common RSE for bad replicas secified with LFN list, ignored wthout --lfns')
2315
+ declare_bad_file_replicas_parser.add_argument('--lfns', dest='lfns', nargs='?', action='store', help='File containing list of LFNs for bad replicas. Requires --rse and --scope')
2316
+ declare_bad_file_replicas_parser.add_argument('--scope', dest='scope', nargs='?', action='store', help='Common scope for bad replicas specified with LFN list, ignored without --lfns')
2317
+ declare_bad_file_replicas_parser.add_argument('--rse', dest='rse', nargs='?', action='store', help='Common RSE for bad replicas specified with LFN list, ignored without --lfns')
2317
2318
 
2318
2319
  # The declare-temporary-unavailable command
2319
2320
  declare_temporary_unavailable_replicas_parser = rep_subparser.add_parser('declare-temporary-unavailable',
@@ -129,7 +129,7 @@ def main(args):
129
129
  time.sleep(RETRY_AFTER)
130
130
 
131
131
  # Avoid infinite loop if an alternative check() implementation doesn't
132
- # decrement the number of attemps and keeps pushing failed checks.
132
+ # decrement the number of attempts and keeps pushing failed checks.
133
133
  tmp_list = []
134
134
  while not retry.empty():
135
135
  tmp_list.append(retry.get())
@@ -149,7 +149,7 @@ def get_parser():
149
149
  """
150
150
  Returns the argparse parser.
151
151
  """
152
- parser = argparse.ArgumentParser(description="The auditor daemon is the one responsable for the detection of inconsistencies on storage, i.e.: dark data discovery.",
152
+ parser = argparse.ArgumentParser(description="The auditor daemon is the one responsible for the detection of inconsistencies on storage, i.e.: dark data discovery.",
153
153
  formatter_class=argparse.RawDescriptionHelpFormatter)
154
154
  parser.add_argument(
155
155
  '--nprocs',
@@ -27,7 +27,7 @@ def get_parser():
27
27
  """
28
28
  Returns the argparse parser.
29
29
  """
30
- parser = argparse.ArgumentParser(description="Automatix is a daemon used to inject random generated files to an RSE. It is used to continuosly check that an RSE is reachable and operating as spected.")
30
+ parser = argparse.ArgumentParser(description="Automatix is a daemon used to inject random generated files to an RSE. It is used to continuously check that an RSE is reachable and operating as expected.")
31
31
  parser.add_argument("--run-once", action="store_true", default=False, help='Runs one loop iteration')
32
32
  parser.add_argument("--input-file", action="store", default="/opt/rucio/etc/automatix.json", type=str, help='Automatix configuration')
33
33
  parser.add_argument("--threads-per-process", action="store", default=1, type=int, help='Total number of workers per process')
@@ -27,7 +27,7 @@ def get_parser():
27
27
  """
28
28
  Returns the argparse parser.
29
29
  """
30
- parser = argparse.ArgumentParser(description="Conveyor is a group of daemons to manage file transfers. The conveyor-finisher is the resposible to update Rucio internal state after the transfer has finished.")
30
+ parser = argparse.ArgumentParser(description="Conveyor is a group of daemons to manage file transfers. The conveyor-finisher is the responsible to update Rucio internal state after the transfer has finished.")
31
31
  parser.add_argument("--run-once", action="store_true", default=False,
32
32
  help='One iteration only')
33
33
  parser.add_argument("--total-threads", action="store", default=1, type=int,
@@ -34,7 +34,7 @@ Upload a file and create a replication rule::
34
34
  $ rucio add-rule mock:file 1 MOCK2
35
35
  $ rucio-admin rse add-distance MOCK2 MOCK --distance 1
36
36
 
37
- The rule should replicate the file from RSE MOCK to RSE MOCK2. Therefor a distance between these RSEs is needed.
37
+ The rule should replicate the file from RSE MOCK to RSE MOCK2. Therefore a distance between these RSEs is needed.
38
38
 
39
39
  Check transfer requests for the DID::
40
40
 
@@ -56,7 +56,7 @@ Check again the transfer requests for the DID::
56
56
  session.get_session().query(models.Request).filter_by(scope='mock', name='file').first()
57
57
  # {'request_type': TRANSFER, 'state': SUBMITTED', ...}
58
58
 
59
- A tranfer request got created by executing the transfer. Depending on the transfer submission, the request state can be different. In this example the transfer got submitted successfully.
59
+ A transfer request got created by executing the transfer. Depending on the transfer submission, the request state can be different. In this example the transfer got submitted successfully.
60
60
 
61
61
  When run in multi-VO mode, by default the daemon will run on RSEs from all VOs::
62
62
 
@@ -113,11 +113,11 @@ Check the replicas for the DID mock:file::
113
113
  from rucio.db.sqla import session, models
114
114
  session.get_session().query(models.RSEFileAssociation).filter_by(name='file', scope='mock').first()
115
115
  // [{'name': 'file','lock_cnt': 1, 'state': COPYING, 'scope': 'mock', 'rse_id': 'f81f366593754c01b0c340fa5ea0ab90'},
116
- // {'scope': 'mock', 'rse_id': '1330d5daee37474c88ba888101d7b859', 'name': 'file', 'state': AVAIABLE, 'lock_cnt': 1}]
116
+ // {'scope': 'mock', 'rse_id': '1330d5daee37474c88ba888101d7b859', 'name': 'file', 'state': AVAILABLE, 'lock_cnt': 1}]
117
117
 
118
118
  The DID mock:file has now two replicas with one lock each.
119
119
  As the file replica is attached to the dataset and the rule for the dataset specifies another RSE MOCK instead of the upload RSE, it has to be replicated to this RSE.
120
- Therefor a second replica in state COPYING got created on RSE MOCK.
120
+ Therefore a second replica in state COPYING got created on RSE MOCK.
121
121
  ''', formatter_class=argparse.RawDescriptionHelpFormatter)
122
122
  parser.add_argument("--run-once", action="store_true", default=False, help='One iteration only')
123
123
  parser.add_argument("--threads", action="store", default=1, type=int, help='Concurrency control: total number of threads for this process')
@@ -30,7 +30,7 @@ def get_parser():
30
30
  parser = argparse.ArgumentParser(description="The Necromancer daemon is responsible for managing bad replicas. If a replica that got declared bad has other replicas, it will try to recover it by requesting a new transfer. If there are no replicas anymore, then the file gets marked as lost.", epilog='''
31
31
  Lost replica:
32
32
  In this example the file gets uploaded and will only have this replica as there are no replication rules. If it gets declared bad, there will be no replica to recover from.
33
- Therefor the replica gets marked as lost.
33
+ Therefore the replica gets marked as lost.
34
34
 
35
35
  Upload a file::
36
36
 
@@ -14,7 +14,7 @@
14
14
  # limitations under the License.
15
15
 
16
16
  """
17
- OAuth Manager is a daemon which is reponsible for:
17
+ OAuth Manager is a daemon which is responsible for:
18
18
  - deletion of expired access tokens (in case there is a valid refresh token, expired access tokens will be kept until refresh_token expires as well.)
19
19
  - deletion of expired OAuth session parameters
20
20
  - refreshing access tokens via their refresh tokens.
@@ -32,7 +32,7 @@ def get_parser():
32
32
  """
33
33
  parser = argparse.ArgumentParser(description='''
34
34
 
35
- OAuth Manager is a daemon which is reponsible for:
35
+ OAuth Manager is a daemon which is responsible for:
36
36
  - deletion of expired access tokens (in case there is a valid refresh token,
37
37
  expired access tokens will be kept until refresh_token expires as well.)
38
38
  - deletion of expired OAuth session parameters
@@ -67,7 +67,7 @@ $ id0=`uuidgen`
67
67
  $ id1=`uuidgen`
68
68
  $ id2=`uuidgen`
69
69
  $ id3=`uuidgen`
70
- $ echo "file available on MOCK_RECOVERY and decalred suspicious on MOCK_SUSPICIOUS (11 times)" > /tmp/file_available_suspicious'_'$id1
70
+ $ echo "file available on MOCK_RECOVERY and declared suspicious on MOCK_SUSPICIOUS (11 times)" > /tmp/file_available_suspicious'_'$id1
71
71
  $ echo "file available on MOCK_RECOVERY and declared suspicious on MOCK_SUSPICIOUS (11 times) and 1 time bad/deleted/lost on MOCK_SUSPICIOUS" > /tmp/file_available_suspicious_and_bad'_'$id2
72
72
  $ echo "file declared as unavailable on MOCK_RECOVERY and declared as suspicious 11 times on MOCK_SUSPICIOUS" > /tmp/file_notavailable_suspicious'_'$id3
73
73
 
@@ -228,7 +228,7 @@ Note that attempting the use the ``--vos`` argument when in single-VO mode will
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
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 speicified number of younger-than days. 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.')
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
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.')
@@ -12,7 +12,7 @@ ldap_host = ldap-host.domain.name
12
12
  baseDN = dc=foo,dc=bar,dc=domain,dc=
13
13
  searchFilter = (objectClass=OpenLDAPperson)
14
14
 
15
- # set as DEFAULT to use annonymous bind
15
+ # set as DEFAULT to use anonymous bind
16
16
  username = DEFAULT
17
17
  # Leave blank for prompt
18
18
  password =
@@ -35,7 +35,7 @@ def get_rse_account_usage(rse, vo='def', *, session: "Session"):
35
35
  :param rse: The RSE name.
36
36
  :param vo: The VO to act on.
37
37
  :param session: The database session in use.
38
- :return: List of dictionnaries.
38
+ :return: List of dictionaries.
39
39
  """
40
40
  rse_id = get_rse_id(rse=rse, vo=vo, session=session)
41
41
 
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from typing import TYPE_CHECKING
15
+ from typing import TYPE_CHECKING, Any, Optional
16
16
 
17
17
  from rucio.api import permission
18
18
  from rucio.common import exception
@@ -32,7 +32,7 @@ ConfigParser compatible interface.
32
32
 
33
33
 
34
34
  @read_session
35
- def sections(issuer=None, vo='def', *, session: "Session"):
35
+ def sections(issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> list[str]:
36
36
  """
37
37
  Return a list of the sections available.
38
38
 
@@ -49,7 +49,7 @@ def sections(issuer=None, vo='def', *, session: "Session"):
49
49
 
50
50
 
51
51
  @transactional_session
52
- def add_section(section, issuer=None, vo='def', *, session: "Session"):
52
+ def add_section(section: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> None:
53
53
  """
54
54
  Add a section to the configuration.
55
55
 
@@ -66,7 +66,7 @@ def add_section(section, issuer=None, vo='def', *, session: "Session"):
66
66
 
67
67
 
68
68
  @read_session
69
- def has_section(section, issuer=None, vo='def', *, session: "Session"):
69
+ def has_section(section: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> bool:
70
70
  """
71
71
  Indicates whether the named section is present in the configuration.
72
72
 
@@ -84,7 +84,7 @@ def has_section(section, issuer=None, vo='def', *, session: "Session"):
84
84
 
85
85
 
86
86
  @read_session
87
- def options(section, issuer=None, vo='def', *, session: "Session"):
87
+ def options(section: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> list[str]:
88
88
  """
89
89
  Returns a list of options available in the specified section.
90
90
 
@@ -102,7 +102,7 @@ def options(section, issuer=None, vo='def', *, session: "Session"):
102
102
 
103
103
 
104
104
  @read_session
105
- def has_option(section, option, issuer=None, vo='def', *, session: "Session"):
105
+ def has_option(section: str, option: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> bool:
106
106
  """
107
107
  Check if the given section exists and contains the given option.
108
108
 
@@ -121,7 +121,7 @@ def has_option(section, option, issuer=None, vo='def', *, session: "Session"):
121
121
 
122
122
 
123
123
  @read_session
124
- def get(section, option, issuer=None, vo='def', *, session: "Session"):
124
+ def get(section: str, option: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> Any:
125
125
  """
126
126
  Get an option value for the named section. Value can be auto-coerced to int, float, and bool; string otherwise.
127
127
 
@@ -143,7 +143,7 @@ def get(section, option, issuer=None, vo='def', *, session: "Session"):
143
143
 
144
144
 
145
145
  @read_session
146
- def items(section, issuer=None, vo='def', *, session: "Session"):
146
+ def items(section: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> list[tuple[str, Any]]:
147
147
  """
148
148
  Return a list of (option, value) pairs for each option in the given section. Values are auto-coerced as in get().
149
149
 
@@ -162,7 +162,7 @@ def items(section, issuer=None, vo='def', *, session: "Session"):
162
162
 
163
163
 
164
164
  @transactional_session
165
- def set(section, option, value, issuer=None, vo='def', *, session: "Session"):
165
+ def set(section: str, option: str, value: Any, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> None:
166
166
  """
167
167
  Set the given option to the specified value.
168
168
 
@@ -181,7 +181,7 @@ def set(section, option, value, issuer=None, vo='def', *, session: "Session"):
181
181
 
182
182
 
183
183
  @transactional_session
184
- def remove_section(section, issuer=None, vo='def', *, session: "Session"):
184
+ def remove_section(section: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> bool:
185
185
  """
186
186
  Remove the specified option from the specified section.
187
187
 
@@ -199,7 +199,7 @@ def remove_section(section, issuer=None, vo='def', *, session: "Session"):
199
199
 
200
200
 
201
201
  @transactional_session
202
- def remove_option(section, option, issuer=None, vo='def', *, session: "Session"):
202
+ def remove_option(section: str, option: str, issuer: Optional[str] = None, vo: str = 'def', *, session: "Session") -> bool:
203
203
  """
204
204
  Remove the specified section from the configuration.
205
205
 
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from collections.abc import Iterator
15
16
  from copy import deepcopy
16
17
  from typing import TYPE_CHECKING
17
18
 
@@ -28,7 +29,7 @@ from rucio.db.sqla.constants import DIDType
28
29
  from rucio.db.sqla.session import read_session, stream_session, transactional_session
29
30
 
30
31
  if TYPE_CHECKING:
31
- from typing import Any, Iterator, Optional
32
+ from typing import Any, Optional
32
33
 
33
34
  from sqlalchemy.orm import Session
34
35
 
@@ -243,7 +243,7 @@ def get_rse_protocols(rse, issuer, vo='def', *, session: "Session"):
243
243
  :param vo: The VO to act on.
244
244
  :param session: The database session in use.
245
245
 
246
- :returns: A dict with all supported protocols and their attibutes.
246
+ :returns: A dict with all supported protocols and their attributes.
247
247
  """
248
248
  rse_id = rse_module.get_rse_id(rse=rse, vo=vo, session=session)
249
249
  return rse_module.get_rse_protocols(rse_id, session=session)
@@ -440,7 +440,7 @@ def update_rse(rse, parameters, issuer, vo='def', *, session: "Session"):
440
440
  Update RSE properties like availability or name.
441
441
 
442
442
  :param rse: the name of the new rse.
443
- :param parameters: A dictionnary with property (name, read, write, delete as keys).
443
+ :param parameters: A dictionary with property (name, read, write, delete as keys).
444
444
  :param issuer: The issuer account.
445
445
  :param vo: The VO to act on.
446
446
  :param session: The database session in use.
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from typing import TYPE_CHECKING
15
+ from typing import TYPE_CHECKING, Any, Optional
16
16
 
17
17
  from rucio.api.permission import has_permission
18
18
  from rucio.common import exception
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
28
28
 
29
29
 
30
30
  @transactional_session
31
- def add_vo(new_vo, issuer, description=None, email=None, vo='def', *, session: "Session"):
31
+ def add_vo(new_vo: str, issuer: str, description: Optional[str] = None, email: Optional[str] = None, vo: str = 'def', *, session: "Session") -> None:
32
32
  '''
33
33
  Add a new VO.
34
34
 
@@ -51,7 +51,7 @@ def add_vo(new_vo, issuer, description=None, email=None, vo='def', *, session: "
51
51
 
52
52
 
53
53
  @read_session
54
- def list_vos(issuer, vo='def', *, session: "Session"):
54
+ def list_vos(issuer: str, vo: str = 'def', *, session: "Session") -> list[dict[str, Any]]:
55
55
  '''
56
56
  List the VOs.
57
57
 
@@ -67,7 +67,18 @@ def list_vos(issuer, vo='def', *, session: "Session"):
67
67
 
68
68
 
69
69
  @transactional_session
70
- def recover_vo_root_identity(root_vo, identity_key, id_type, email, issuer, default=False, password=None, vo='def', *, session: "Session"):
70
+ def recover_vo_root_identity(
71
+ root_vo: str,
72
+ identity_key: str,
73
+ id_type: str,
74
+ email: str,
75
+ issuer: str,
76
+ default: bool = False,
77
+ password: Optional[str] = None,
78
+ vo: str = 'def',
79
+ *,
80
+ session: "Session"
81
+ ) -> None:
71
82
  """
72
83
  Adds a membership association between identity and the root account for given VO.
73
84
 
@@ -93,7 +104,7 @@ def recover_vo_root_identity(root_vo, identity_key, id_type, email, issuer, defa
93
104
 
94
105
 
95
106
  @transactional_session
96
- def update_vo(updated_vo, parameters, issuer, vo='def', *, session: "Session"):
107
+ def update_vo(updated_vo: str, parameters: dict[str, Any], issuer: str, vo: str = 'def', *, session: "Session") -> None:
97
108
  """
98
109
  Update VO properties (email, description).
99
110
 
@@ -112,7 +112,7 @@ class AccountClient(BaseClient):
112
112
 
113
113
  :param type: The account type
114
114
  :param identity: The identity key name. For example x509 DN, or a username.
115
- :param filters: A dictionnary key:account attribute to use for the filtering
115
+ :param filters: A dictionary key:account attribute to use for the filtering
116
116
 
117
117
  :return: a list containing account info dictionary for all rucio accounts.
118
118
  :raises AccountNotFound: if account doesn't exist.
@@ -22,12 +22,13 @@ import os
22
22
  import secrets
23
23
  import sys
24
24
  import time
25
+ from collections.abc import Generator
25
26
  from configparser import NoOptionError, NoSectionError
26
27
  from logging import Logger
27
28
  from os import environ, fdopen, geteuid, makedirs, path
28
29
  from shutil import move
29
30
  from tempfile import mkstemp
30
- from typing import Any, Generator, Optional
31
+ from typing import Any, Optional
31
32
  from urllib.parse import urlparse
32
33
 
33
34
  import requests
@@ -235,7 +236,7 @@ class BaseClient:
235
236
  if self.auth_type == 'oidc':
236
237
  if not creds:
237
238
  creds = {}
238
- # if there are defautl values, check if rucio.cfg does not specify them, otherwise put default
239
+ # if there are default values, check if rucio.cfg does not specify them, otherwise put default
239
240
  if 'oidc_refresh_lifetime' not in creds or creds['oidc_refresh_lifetime'] is None:
240
241
  creds['oidc_refresh_lifetime'] = config_get('client', 'oidc_refresh_lifetime', False, None)
241
242
  if 'oidc_issuer' not in creds or creds['oidc_issuer'] is None:
@@ -615,7 +616,7 @@ class BaseClient:
615
616
 
616
617
  else:
617
618
  print("\nAccording to the OAuth2/OIDC standard you should NOT be sharing \n"
618
- + "your password with any 3rd party appplication, therefore, \n" # NOQA: W503
619
+ + "your password with any 3rd party application, therefore, \n" # NOQA: W503
619
620
  + "we strongly discourage you from following this --oidc-auto approach.") # NOQA: W503
620
621
  print("-------------------------------------------------------------------------")
621
622
  auth_res = self._send_request(auth_url, get_token=True)
@@ -658,7 +659,7 @@ class BaseClient:
658
659
 
659
660
  self.auth_token = result.headers['x-rucio-auth-token']
660
661
  if self.auth_oidc_refresh_active:
661
- self.logger.debug("Reseting the token expiration epoch file content.")
662
+ self.logger.debug("Resetting the token expiration epoch file content.")
662
663
  # reset the token expiration epoch file content
663
664
  # at new CLI OIDC authentication
664
665
  self.token_exp_epoch = None
@@ -47,7 +47,7 @@ class DIDClient(BaseClient):
47
47
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), 'dids', 'search'])
48
48
 
49
49
  # stringify dates.
50
- if isinstance(filters, dict): # backwards compatability for filters as single {}
50
+ if isinstance(filters, dict): # backwards compatibility for filters as single {}
51
51
  filters = [filters]
52
52
  for or_group in filters:
53
53
  for key, value in or_group.items():
@@ -265,7 +265,7 @@ class DownloadClient:
265
265
  force_scheme - Optional: force a specific scheme to download this item. (Default: None)
266
266
  base_dir - Optional: base directory where the downloaded files will be stored. (Default: '.')
267
267
  no_subdir - Optional: If true, files are written directly into base_dir. (Default: False)
268
- nrandom - Optional: if the DID addresses a dataset, nrandom files will be randomly choosen for download from the dataset
268
+ nrandom - Optional: if the DID addresses a dataset, nrandom files will be randomly chosen for download from the dataset
269
269
  ignore_checksum - Optional: If true, skips the checksum validation between the downloaded file and the rucio catalouge. (Default: False)
270
270
  transfer_timeout - Optional: Timeout time for the download protocols. (Default: None)
271
271
  transfer_speed_timeout - Optional: Minimum allowed transfer speed (in KBps). Ignored if transfer_timeout set. Otherwise, used to compute default timeout (Default: 500)
@@ -671,10 +671,10 @@ class DownloadClient:
671
671
 
672
672
  # if the file was downloaded with success, it can be linked to pcache
673
673
  if pcache:
674
- logger(logging.INFO, 'File %s is going to be registerred into pcache.' % dest_file_path)
674
+ logger(logging.INFO, 'File %s is going to be registered into pcache.' % dest_file_path)
675
675
  try:
676
676
  pcache_state, hardlink_state = pcache.check_and_link(src=pfn, storage_root=storage_prefix, local_src=first_dest_file_path)
677
- logger(logging.INFO, 'File %s is now registerred into pcache.' % first_dest_file_path)
677
+ logger(logging.INFO, 'File %s is now registered into pcache.' % first_dest_file_path)
678
678
  except Exception as e:
679
679
  logger(logging.WARNING, 'Failed to load file to pcache: %s' % str(e))
680
680
 
@@ -741,7 +741,7 @@ class DownloadClient:
741
741
  rse - Optional: rse name (e.g. 'CERN-PROD_DATADISK') or rse expression from where to download
742
742
  base_dir - Optional: base directory where the downloaded files will be stored. (Default: '.')
743
743
  no_subdir - Optional: If true, files are written directly into base_dir. (Default: False)
744
- nrandom - Optional: if the DID addresses a dataset, nrandom files will be randomly choosen for download from the dataset
744
+ nrandom - Optional: if the DID addresses a dataset, nrandom files will be randomly chosen for download from the dataset
745
745
  ignore_checksum - Optional: If true, skips the checksum validation between the downloaded file and the rucio catalouge. (Default: False)
746
746
  check_local_with_filesize_only - Optional: If true, already downloaded files will not be validated by checksum.
747
747
 
@@ -798,7 +798,7 @@ class DownloadClient:
798
798
 
799
799
  :param rpc_secret: the secret for the RPC proxy
800
800
 
801
- :returns: a tupel with the process and the rpc proxy objects
801
+ :returns: a tuple with the process and the rpc proxy objects
802
802
 
803
803
  :raises RucioException: if the process or the proxy could not be created
804
804
  """
@@ -958,7 +958,7 @@ class DownloadClient:
958
958
  # workaround: only consider first dest file path for aria2c download
959
959
  dest_file_path = next(iter(item['dest_file_paths']))
960
960
 
961
- # ensure we didnt miss the active state (e.g. a very fast download)
961
+ # ensure we didn't miss the active state (e.g. a very fast download)
962
962
  start_time = item.setdefault('transferStart', time.time())
963
963
  end_time = item.setdefault('transferEnd', time.time())
964
964
 
@@ -1093,7 +1093,7 @@ class DownloadClient:
1093
1093
  self.extraction_tools = [tool for tool in self.extraction_tools if tool.is_useable()]
1094
1094
  if len(self.extraction_tools) < 1:
1095
1095
  logger(logging.WARNING, 'Archive resolution is enabled but no extraction tool is available. '
1096
- 'Sources whose protocol doesnt support extraction wont be considered for download.')
1096
+ 'Sources whose protocol does not support extraction will not be considered for download.')
1097
1097
 
1098
1098
  # if excluding tapes, we need to list them first
1099
1099
  tape_rses = []
@@ -1110,7 +1110,7 @@ class DownloadClient:
1110
1110
  for item in input_items:
1111
1111
  resolved_dids = list(self._resolve_one_item_dids(item))
1112
1112
  if not resolved_dids:
1113
- logger(logging.WARNING, 'An item didnt have any DIDs after resolving the input: %s.' % item.get('did', item))
1113
+ logger(logging.WARNING, 'An item did not have any DIDs after resolving the input: %s.' % item.get('did', item))
1114
1114
  item['dids'] = resolved_dids
1115
1115
  for did in resolved_dids:
1116
1116
  did_to_input_items.setdefault(DID(did), []).append(item)
@@ -1342,7 +1342,7 @@ class DownloadClient:
1342
1342
  file_item['dest_file_paths'] = list(dest_file_paths)
1343
1343
  file_item['temp_file_path'] = '%s.part' % file_item['dest_file_paths'][0]
1344
1344
 
1345
- # the file did str ist not an unique key for this dict because multiple calls of list_replicas
1345
+ # the file did str is not an unique key for this dict because multiple calls of list_replicas
1346
1346
  # could result in the same DID multiple times. So we're using the id of the dictionary objects
1347
1347
  fiid = id(file_item)
1348
1348
  fiid_to_file_item[fiid] = file_item
@@ -1500,7 +1500,7 @@ class DownloadClient:
1500
1500
  Splits a given DID string (e.g. 'scope1:name.file') into its scope and name part
1501
1501
  (This function is meant to be used as class internal only)
1502
1502
 
1503
- :param did_str: the DID string that will be splitted
1503
+ :param did_str: the DID string that will be split
1504
1504
 
1505
1505
  :returns: the scope- and name part of the given DID
1506
1506
 
@@ -1538,7 +1538,7 @@ class DownloadClient:
1538
1538
  :param dest_dir_name: name of the destination directory
1539
1539
  :param no_subdir: if no subdirectory should be created
1540
1540
 
1541
- :returns: the absolut path of the destination directory
1541
+ :returns: the absolute path of the destination directory
1542
1542
  """
1543
1543
  # append dest_dir_name, if subdir should be used
1544
1544
  if dest_dir_name.startswith('/'):