rucio 36.0.0rc3__tar.gz → 38.5.1__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.
Files changed (917) hide show
  1. rucio-38.5.1/AUTHORS.rst +101 -0
  2. rucio-38.5.1/ChangeLog +1 -0
  3. rucio-38.5.1/PKG-INFO +93 -0
  4. rucio-38.5.1/bin/rucio +137 -0
  5. rucio-38.5.1/bin/rucio-abacus-account +81 -0
  6. rucio-38.5.1/bin/rucio-abacus-rse +85 -0
  7. rucio-38.5.1/bin/rucio-admin +97 -0
  8. rucio-38.5.1/bin/rucio-atropos +60 -0
  9. rucio-38.5.1/bin/rucio-auditor +206 -0
  10. rucio-38.5.1/bin/rucio-automatix +50 -0
  11. rucio-38.5.1/bin/rucio-cache-client +141 -0
  12. rucio-38.5.1/bin/rucio-conveyor-receiver +44 -0
  13. rucio-38.5.1/bin/rucio-conveyor-throttler +110 -0
  14. rucio-38.5.1/bin/rucio-follower +44 -0
  15. rucio-38.5.1/bin/rucio-judge-cleaner +97 -0
  16. rucio-38.5.1/bin/rucio-kronos +44 -0
  17. rucio-38.5.1/bin/rucio-minos +53 -0
  18. rucio-38.5.1/bin/rucio-minos-temporary-expiration +50 -0
  19. rucio-38.5.1/bin/rucio-necromancer +126 -0
  20. rucio-38.5.1/bin/rucio-reaper +83 -0
  21. rucio-38.5.1/bin/rucio-replica-recoverer +270 -0
  22. rucio-38.5.1/bin/rucio-transmogrifier +77 -0
  23. rucio-38.5.1/bin/rucio-undertaker +82 -0
  24. rucio-38.5.1/etc/alembic.ini.template +71 -0
  25. rucio-38.5.1/etc/alembic_offline.ini.template +74 -0
  26. rucio-38.5.1/etc/rucio.cfg.template +239 -0
  27. rucio-38.5.1/etc/rucio_multi_vo.cfg.template +215 -0
  28. rucio-38.5.1/lib/rucio/alembicrevision.py +15 -0
  29. rucio-38.5.1/lib/rucio/cli/__init__.py +14 -0
  30. rucio-38.5.1/lib/rucio/cli/account.py +216 -0
  31. rucio-38.5.1/lib/rucio/cli/bin_legacy/rucio.py +2729 -0
  32. rucio-38.5.1/lib/rucio/cli/bin_legacy/rucio_admin.py +2500 -0
  33. rucio-38.5.1/lib/rucio/cli/command.py +283 -0
  34. rucio-38.5.1/lib/rucio/cli/config.py +87 -0
  35. rucio-38.5.1/lib/rucio/cli/did.py +188 -0
  36. rucio-38.5.1/lib/rucio/cli/download.py +128 -0
  37. rucio-38.5.1/lib/rucio/cli/lifetime_exception.py +33 -0
  38. rucio-38.5.1/lib/rucio/cli/opendata.py +200 -0
  39. rucio-38.5.1/lib/rucio/cli/replica.py +176 -0
  40. rucio-38.5.1/lib/rucio/cli/rse.py +292 -0
  41. rucio-38.5.1/lib/rucio/cli/rule.py +166 -0
  42. rucio-38.5.1/lib/rucio/cli/scope.py +41 -0
  43. rucio-38.5.1/lib/rucio/cli/subscription.py +73 -0
  44. rucio-38.5.1/lib/rucio/cli/upload.py +60 -0
  45. rucio-38.5.1/lib/rucio/cli/utils.py +262 -0
  46. rucio-38.5.1/lib/rucio/client/accountclient.py +578 -0
  47. rucio-38.5.1/lib/rucio/client/accountlimitclient.py +243 -0
  48. rucio-38.5.1/lib/rucio/client/baseclient.py +1030 -0
  49. rucio-38.5.1/lib/rucio/client/client.py +130 -0
  50. rucio-38.5.1/lib/rucio/client/configclient.py +173 -0
  51. rucio-38.5.1/lib/rucio/client/credentialclient.py +70 -0
  52. rucio-38.5.1/lib/rucio/client/didclient.py +1057 -0
  53. rucio-38.5.1/lib/rucio/client/diracclient.py +125 -0
  54. rucio-38.5.1/lib/rucio/client/downloadclient.py +2054 -0
  55. rucio-38.5.1/lib/rucio/client/exportclient.py +92 -0
  56. rucio-38.5.1/lib/rucio/client/importclient.py +46 -0
  57. rucio-38.5.1/lib/rucio/client/lifetimeclient.py +141 -0
  58. rucio-38.5.1/lib/rucio/client/lockclient.py +125 -0
  59. rucio-38.5.1/lib/rucio/client/metaconventionsclient.py +179 -0
  60. rucio-38.5.1/lib/rucio/client/opendataclient.py +250 -0
  61. rucio-38.5.1/lib/rucio/client/pingclient.py +78 -0
  62. rucio-38.5.1/lib/rucio/client/replicaclient.py +570 -0
  63. rucio-38.5.1/lib/rucio/client/requestclient.py +233 -0
  64. rucio-38.5.1/lib/rucio/client/richclient.py +323 -0
  65. rucio-38.5.1/lib/rucio/client/rseclient.py +974 -0
  66. rucio-38.5.1/lib/rucio/client/ruleclient.py +391 -0
  67. rucio-38.5.1/lib/rucio/client/scopeclient.py +116 -0
  68. rucio-38.5.1/lib/rucio/client/subscriptionclient.py +237 -0
  69. rucio-38.5.1/lib/rucio/client/touchclient.py +92 -0
  70. rucio-38.5.1/lib/rucio/client/uploadclient.py +1511 -0
  71. rucio-38.5.1/lib/rucio/common/cache.py +110 -0
  72. rucio-38.5.1/lib/rucio/common/checksum.py +168 -0
  73. rucio-38.5.1/lib/rucio/common/client.py +96 -0
  74. rucio-38.5.1/lib/rucio/common/config.py +786 -0
  75. rucio-38.5.1/lib/rucio/common/constants.py +244 -0
  76. rucio-38.5.1/lib/rucio/common/didtype.py +244 -0
  77. rucio-38.5.1/lib/rucio/common/dumper/__init__.py +342 -0
  78. rucio-38.5.1/lib/rucio/common/dumper/consistency.py +497 -0
  79. rucio-38.5.1/lib/rucio/common/dumper/data_models.py +362 -0
  80. rucio-38.5.1/lib/rucio/common/dumper/path_parsing.py +75 -0
  81. rucio-38.5.1/lib/rucio/common/exception.py +1293 -0
  82. rucio-38.5.1/lib/rucio/common/pcache.py +1404 -0
  83. rucio-38.5.1/lib/rucio/common/plugins.py +233 -0
  84. rucio-38.5.1/lib/rucio/common/policy.py +94 -0
  85. rucio-38.5.1/lib/rucio/common/schema/__init__.py +187 -0
  86. rucio-38.5.1/lib/rucio/common/schema/generic.py +418 -0
  87. rucio-38.5.1/lib/rucio/common/schema/generic_multi_vo.py +397 -0
  88. rucio-38.5.1/lib/rucio/common/test_rucio_server.py +154 -0
  89. rucio-38.5.1/lib/rucio/common/types.py +486 -0
  90. rucio-38.5.1/lib/rucio/common/utils.py +1873 -0
  91. rucio-38.5.1/lib/rucio/core/account.py +497 -0
  92. rucio-38.5.1/lib/rucio/core/account_counter.py +220 -0
  93. rucio-38.5.1/lib/rucio/core/account_limit.py +403 -0
  94. rucio-38.5.1/lib/rucio/core/authentication.py +620 -0
  95. rucio-38.5.1/lib/rucio/core/config.py +439 -0
  96. rucio-38.5.1/lib/rucio/core/credential.py +217 -0
  97. rucio-38.5.1/lib/rucio/core/did.py +3033 -0
  98. rucio-38.5.1/lib/rucio/core/did_meta_plugins/__init__.py +253 -0
  99. rucio-38.5.1/lib/rucio/core/did_meta_plugins/did_column_meta.py +480 -0
  100. rucio-38.5.1/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +179 -0
  101. rucio-38.5.1/lib/rucio/core/did_meta_plugins/elasticsearch_meta.py +399 -0
  102. rucio-38.5.1/lib/rucio/core/did_meta_plugins/filter_engine.py +670 -0
  103. rucio-38.5.1/lib/rucio/core/did_meta_plugins/json_meta.py +234 -0
  104. rucio-38.5.1/lib/rucio/core/did_meta_plugins/mongo_meta.py +220 -0
  105. rucio-38.5.1/lib/rucio/core/did_meta_plugins/postgres_meta.py +345 -0
  106. rucio-38.5.1/lib/rucio/core/dirac.py +238 -0
  107. rucio-38.5.1/lib/rucio/core/distance.py +188 -0
  108. rucio-38.5.1/lib/rucio/core/exporter.py +61 -0
  109. rucio-38.5.1/lib/rucio/core/importer.py +260 -0
  110. rucio-38.5.1/lib/rucio/core/lifetime_exception.py +377 -0
  111. rucio-38.5.1/lib/rucio/core/lock.py +578 -0
  112. rucio-38.5.1/lib/rucio/core/message.py +288 -0
  113. rucio-38.5.1/lib/rucio/core/meta_conventions.py +203 -0
  114. rucio-38.5.1/lib/rucio/core/monitor.py +448 -0
  115. rucio-38.5.1/lib/rucio/core/naming_convention.py +185 -0
  116. rucio-38.5.1/lib/rucio/core/nongrid_trace.py +136 -0
  117. rucio-38.5.1/lib/rucio/core/oidc.py +1463 -0
  118. rucio-38.5.1/lib/rucio/core/opendata.py +886 -0
  119. rucio-38.5.1/lib/rucio/core/permission/__init__.py +170 -0
  120. rucio-38.5.1/lib/rucio/core/permission/generic.py +1162 -0
  121. rucio-38.5.1/lib/rucio/core/permission/generic_multi_vo.py +1143 -0
  122. rucio-38.5.1/lib/rucio/core/quarantined_replica.py +224 -0
  123. rucio-38.5.1/lib/rucio/core/replica.py +4482 -0
  124. rucio-38.5.1/lib/rucio/core/replica_sorter.py +362 -0
  125. rucio-38.5.1/lib/rucio/core/request.py +3096 -0
  126. rucio-38.5.1/lib/rucio/core/rse.py +2083 -0
  127. rucio-38.5.1/lib/rucio/core/rse_counter.py +203 -0
  128. rucio-38.5.1/lib/rucio/core/rse_selector.py +304 -0
  129. rucio-38.5.1/lib/rucio/core/rule.py +4547 -0
  130. rucio-38.5.1/lib/rucio/core/rule_grouping.py +1618 -0
  131. rucio-38.5.1/lib/rucio/core/scope.py +195 -0
  132. rucio-38.5.1/lib/rucio/core/subscription.py +362 -0
  133. rucio-38.5.1/lib/rucio/core/topology.py +490 -0
  134. rucio-38.5.1/lib/rucio/core/trace.py +375 -0
  135. rucio-38.5.1/lib/rucio/core/transfer.py +1530 -0
  136. rucio-38.5.1/lib/rucio/core/vo.py +170 -0
  137. rucio-38.5.1/lib/rucio/core/volatile_replica.py +148 -0
  138. rucio-38.5.1/lib/rucio/daemons/abacus/account.py +130 -0
  139. rucio-38.5.1/lib/rucio/daemons/abacus/collection_replica.py +124 -0
  140. rucio-38.5.1/lib/rucio/daemons/abacus/rse.py +131 -0
  141. rucio-38.5.1/lib/rucio/daemons/atropos/atropos.py +243 -0
  142. rucio-38.5.1/lib/rucio/daemons/auditor/__init__.py +289 -0
  143. rucio-38.5.1/lib/rucio/daemons/auditor/srmdumps.py +355 -0
  144. rucio-38.5.1/lib/rucio/daemons/automatix/automatix.py +307 -0
  145. rucio-38.5.1/lib/rucio/daemons/badreplicas/minos.py +329 -0
  146. rucio-38.5.1/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +174 -0
  147. rucio-38.5.1/lib/rucio/daemons/badreplicas/necromancer.py +202 -0
  148. rucio-38.5.1/lib/rucio/daemons/bb8/bb8.py +354 -0
  149. rucio-38.5.1/lib/rucio/daemons/bb8/common.py +759 -0
  150. rucio-38.5.1/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +153 -0
  151. rucio-38.5.1/lib/rucio/daemons/bb8/t2_background_rebalance.py +153 -0
  152. rucio-38.5.1/lib/rucio/daemons/cache/consumer.py +200 -0
  153. rucio-38.5.1/lib/rucio/daemons/common.py +405 -0
  154. rucio-38.5.1/lib/rucio/daemons/conveyor/common.py +562 -0
  155. rucio-38.5.1/lib/rucio/daemons/conveyor/finisher.py +538 -0
  156. rucio-38.5.1/lib/rucio/daemons/conveyor/poller.py +397 -0
  157. rucio-38.5.1/lib/rucio/daemons/conveyor/preparer.py +205 -0
  158. rucio-38.5.1/lib/rucio/daemons/conveyor/receiver.py +249 -0
  159. rucio-38.5.1/lib/rucio/daemons/conveyor/submitter.py +404 -0
  160. rucio-38.5.1/lib/rucio/daemons/conveyor/throttler.py +533 -0
  161. rucio-38.5.1/lib/rucio/daemons/follower/follower.py +101 -0
  162. rucio-38.5.1/lib/rucio/daemons/hermes/hermes.py +866 -0
  163. rucio-38.5.1/lib/rucio/daemons/judge/cleaner.py +159 -0
  164. rucio-38.5.1/lib/rucio/daemons/judge/evaluator.py +185 -0
  165. rucio-38.5.1/lib/rucio/daemons/judge/injector.py +163 -0
  166. rucio-38.5.1/lib/rucio/daemons/judge/repairer.py +154 -0
  167. rucio-38.5.1/lib/rucio/daemons/oauthmanager/oauthmanager.py +198 -0
  168. rucio-38.5.1/lib/rucio/daemons/reaper/dark_reaper.py +283 -0
  169. rucio-38.5.1/lib/rucio/daemons/reaper/reaper.py +739 -0
  170. rucio-38.5.1/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +626 -0
  171. rucio-38.5.1/lib/rucio/daemons/storage/consistency/actions.py +848 -0
  172. rucio-38.5.1/lib/rucio/daemons/tracer/kronos.py +537 -0
  173. rucio-38.5.1/lib/rucio/daemons/transmogrifier/transmogrifier.py +764 -0
  174. rucio-38.5.1/lib/rucio/daemons/undertaker/undertaker.py +138 -0
  175. rucio-38.5.1/lib/rucio/db/sqla/constants.py +213 -0
  176. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +91 -0
  177. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +68 -0
  178. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +67 -0
  179. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/30d5206e9cad_increase_oauthrequest_redirect_msg_.py +37 -0
  180. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +55 -0
  181. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/a62db546a1f1_opendata_initial_model.py +85 -0
  182. rucio-38.5.1/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +43 -0
  183. rucio-38.5.1/lib/rucio/db/sqla/models.py +1834 -0
  184. rucio-38.5.1/lib/rucio/db/sqla/session.py +536 -0
  185. rucio-38.5.1/lib/rucio/db/sqla/util.py +544 -0
  186. rucio-38.5.1/lib/rucio/gateway/account.py +322 -0
  187. rucio-38.5.1/lib/rucio/gateway/account_limit.py +301 -0
  188. rucio-38.5.1/lib/rucio/gateway/authentication.py +352 -0
  189. rucio-38.5.1/lib/rucio/gateway/config.py +181 -0
  190. rucio-38.5.1/lib/rucio/gateway/credential.py +65 -0
  191. rucio-38.5.1/lib/rucio/gateway/did.py +903 -0
  192. rucio-38.5.1/lib/rucio/gateway/dirac.py +83 -0
  193. rucio-38.5.1/lib/rucio/gateway/exporter.py +58 -0
  194. rucio-38.5.1/lib/rucio/gateway/heartbeat.py +73 -0
  195. rucio-38.5.1/lib/rucio/gateway/identity.py +190 -0
  196. rucio-38.5.1/lib/rucio/gateway/importer.py +45 -0
  197. rucio-38.5.1/lib/rucio/gateway/lifetime_exception.py +114 -0
  198. rucio-38.5.1/lib/rucio/gateway/lock.py +141 -0
  199. rucio-38.5.1/lib/rucio/gateway/meta_conventions.py +90 -0
  200. rucio-38.5.1/lib/rucio/gateway/opendata.py +190 -0
  201. rucio-38.5.1/lib/rucio/gateway/permission.py +75 -0
  202. rucio-38.5.1/lib/rucio/gateway/quarantined_replica.py +77 -0
  203. rucio-38.5.1/lib/rucio/gateway/replica.py +623 -0
  204. rucio-38.5.1/lib/rucio/gateway/request.py +289 -0
  205. rucio-38.5.1/lib/rucio/gateway/rse.py +606 -0
  206. rucio-38.5.1/lib/rucio/gateway/rule.py +407 -0
  207. rucio-38.5.1/lib/rucio/gateway/scope.py +94 -0
  208. rucio-38.5.1/lib/rucio/gateway/subscription.py +265 -0
  209. rucio-38.5.1/lib/rucio/gateway/trace.py +48 -0
  210. rucio-38.5.1/lib/rucio/gateway/vo.py +122 -0
  211. rucio-38.5.1/lib/rucio/rse/__init__.py +97 -0
  212. rucio-38.5.1/lib/rucio/rse/protocols/bittorrent.py +194 -0
  213. rucio-38.5.1/lib/rucio/rse/protocols/cache.py +111 -0
  214. rucio-38.5.1/lib/rucio/rse/protocols/dummy.py +100 -0
  215. rucio-38.5.1/lib/rucio/rse/protocols/gfal.py +708 -0
  216. rucio-38.5.1/lib/rucio/rse/protocols/globus.py +243 -0
  217. rucio-38.5.1/lib/rucio/rse/protocols/http_cache.py +82 -0
  218. rucio-38.5.1/lib/rucio/rse/protocols/ngarc.py +209 -0
  219. rucio-38.5.1/lib/rucio/rse/protocols/posix.py +250 -0
  220. rucio-38.5.1/lib/rucio/rse/protocols/protocol.py +365 -0
  221. rucio-38.5.1/lib/rucio/rse/protocols/rfio.py +145 -0
  222. rucio-38.5.1/lib/rucio/rse/protocols/srm.py +338 -0
  223. rucio-38.5.1/lib/rucio/rse/protocols/storm.py +195 -0
  224. rucio-38.5.1/lib/rucio/rse/protocols/webdav.py +604 -0
  225. rucio-38.5.1/lib/rucio/rse/rsemanager.py +882 -0
  226. rucio-38.5.1/lib/rucio/rse/translation.py +271 -0
  227. rucio-38.5.1/lib/rucio/tests/common.py +333 -0
  228. rucio-38.5.1/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +134 -0
  229. rucio-38.5.1/lib/rucio/transfertool/fts3.py +1582 -0
  230. rucio-38.5.1/lib/rucio/transfertool/fts3_plugins.py +157 -0
  231. rucio-38.5.1/lib/rucio/vcsversion.py +11 -0
  232. {rucio-36.0.0rc3/lib/rucio/tests → rucio-38.5.1/lib/rucio/web/rest}/__init__.py +0 -0
  233. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +237 -0
  234. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/accounts.py +1098 -0
  235. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/archives.py +103 -0
  236. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/auth.py +1669 -0
  237. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/common.py +473 -0
  238. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/config.py +344 -0
  239. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/credentials.py +220 -0
  240. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/dids.py +2679 -0
  241. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/dirac.py +117 -0
  242. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/export.py +77 -0
  243. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +128 -0
  244. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/identities.py +286 -0
  245. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/import.py +133 -0
  246. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +313 -0
  247. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/locks.py +359 -0
  248. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/main.py +95 -0
  249. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +227 -0
  250. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/metrics.py +37 -0
  251. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +98 -0
  252. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/opendata.py +392 -0
  253. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/opendata_public.py +147 -0
  254. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/ping.py +89 -0
  255. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/redirect.py +367 -0
  256. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/replicas.py +1895 -0
  257. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/requests.py +1193 -0
  258. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/rses.py +2257 -0
  259. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/rules.py +855 -0
  260. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/scopes.py +160 -0
  261. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +648 -0
  262. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/traces.py +136 -0
  263. rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1/vos.py +277 -0
  264. rucio-38.5.1/lib/rucio.egg-info/SOURCES.txt +589 -0
  265. rucio-38.5.1/pyproject.toml +190 -0
  266. rucio-38.5.1/requirements/requirements.server.txt +300 -0
  267. rucio-38.5.1/setup.cfg +17 -0
  268. rucio-38.5.1/setup.py +79 -0
  269. rucio-38.5.1/setuputil.py +138 -0
  270. rucio-38.5.1/tests/test_abacus_account.py +78 -0
  271. rucio-38.5.1/tests/test_abacus_collection_replica.py +179 -0
  272. rucio-38.5.1/tests/test_abacus_rse.py +69 -0
  273. rucio-38.5.1/tests/test_account.py +348 -0
  274. rucio-38.5.1/tests/test_account_limits.py +199 -0
  275. rucio-38.5.1/tests/test_archive.py +250 -0
  276. rucio-38.5.1/tests/test_authentication.py +295 -0
  277. rucio-38.5.1/tests/test_automatix.py +94 -0
  278. rucio-38.5.1/tests/test_bb8.py +270 -0
  279. rucio-38.5.1/tests/test_belleii.py +130 -0
  280. rucio-38.5.1/tests/test_bin_rucio.py +1376 -0
  281. rucio-38.5.1/tests/test_cli_client_structure.py +904 -0
  282. rucio-38.5.1/tests/test_clients.py +255 -0
  283. rucio-38.5.1/tests/test_config.py +171 -0
  284. rucio-38.5.1/tests/test_conveyor.py +1811 -0
  285. rucio-38.5.1/tests/test_conveyor_submitter.py +488 -0
  286. rucio-38.5.1/tests/test_counter.py +200 -0
  287. rucio-38.5.1/tests/test_curl.py +151 -0
  288. rucio-38.5.1/tests/test_daemons.py +82 -0
  289. rucio-38.5.1/tests/test_dataset_replicas.py +558 -0
  290. rucio-38.5.1/tests/test_did.py +1301 -0
  291. rucio-38.5.1/tests/test_did_meta_plugins.py +851 -0
  292. rucio-38.5.1/tests/test_download.py +829 -0
  293. rucio-38.5.1/tests/test_dumper.py +47 -0
  294. rucio-38.5.1/tests/test_filter_engine.py +736 -0
  295. rucio-38.5.1/tests/test_gateway_external_representation.py +483 -0
  296. rucio-38.5.1/tests/test_heartbeat.py +194 -0
  297. rucio-38.5.1/tests/test_hermes.py +302 -0
  298. rucio-38.5.1/tests/test_impl_upload_download.py +441 -0
  299. rucio-38.5.1/tests/test_import_export.py +1298 -0
  300. rucio-38.5.1/tests/test_judge_evaluator.py +525 -0
  301. rucio-38.5.1/tests/test_judge_injector.py +232 -0
  302. rucio-38.5.1/tests/test_judge_repairer.py +369 -0
  303. rucio-38.5.1/tests/test_lifetime.py +272 -0
  304. rucio-38.5.1/tests/test_module_import.py +28 -0
  305. rucio-38.5.1/tests/test_multi_vo.py +1106 -0
  306. rucio-38.5.1/tests/test_naming_convention.py +82 -0
  307. rucio-38.5.1/tests/test_oauthmanager.py +291 -0
  308. rucio-38.5.1/tests/test_oidc.py +1991 -0
  309. rucio-38.5.1/tests/test_opendata.py +674 -0
  310. rucio-38.5.1/tests/test_permission.py +79 -0
  311. rucio-38.5.1/tests/test_policy_package.py +174 -0
  312. rucio-38.5.1/tests/test_reaper.py +515 -0
  313. rucio-38.5.1/tests/test_replica.py +1224 -0
  314. rucio-38.5.1/tests/test_replica_recoverer.py +595 -0
  315. rucio-38.5.1/tests/test_replica_sorting.py +531 -0
  316. rucio-38.5.1/tests/test_rse.py +1610 -0
  317. rucio-38.5.1/tests/test_rse_lfn2path.py +219 -0
  318. rucio-38.5.1/tests/test_rse_selector.py +162 -0
  319. rucio-38.5.1/tests/test_rucio_server.py +124 -0
  320. rucio-38.5.1/tests/test_rule.py +1642 -0
  321. rucio-38.5.1/tests/test_scope.py +176 -0
  322. rucio-38.5.1/tests/test_subscription.py +925 -0
  323. rucio-38.5.1/tests/test_throttler.py +1020 -0
  324. rucio-38.5.1/tests/test_tpc.py +125 -0
  325. rucio-38.5.1/tests/test_trace.py +160 -0
  326. rucio-38.5.1/tests/test_transfer_plugins.py +395 -0
  327. rucio-38.5.1/tests/test_undertaker.py +188 -0
  328. rucio-38.5.1/tests/test_upload.py +751 -0
  329. rucio-38.5.1/tests/test_utils.py +260 -0
  330. rucio-38.5.1/tools/reset_database.py +87 -0
  331. rucio-36.0.0rc3/AUTHORS.rst +0 -97
  332. rucio-36.0.0rc3/ChangeLog +0 -1
  333. rucio-36.0.0rc3/PKG-INFO +0 -61
  334. rucio-36.0.0rc3/bin/rucio +0 -2543
  335. rucio-36.0.0rc3/bin/rucio-abacus-account +0 -74
  336. rucio-36.0.0rc3/bin/rucio-abacus-rse +0 -78
  337. rucio-36.0.0rc3/bin/rucio-admin +0 -2447
  338. rucio-36.0.0rc3/bin/rucio-atropos +0 -60
  339. rucio-36.0.0rc3/bin/rucio-auditor +0 -205
  340. rucio-36.0.0rc3/bin/rucio-automatix +0 -50
  341. rucio-36.0.0rc3/bin/rucio-c3po +0 -85
  342. rucio-36.0.0rc3/bin/rucio-cache-client +0 -134
  343. rucio-36.0.0rc3/bin/rucio-conveyor-receiver +0 -43
  344. rucio-36.0.0rc3/bin/rucio-conveyor-throttler +0 -104
  345. rucio-36.0.0rc3/bin/rucio-follower +0 -44
  346. rucio-36.0.0rc3/bin/rucio-judge-cleaner +0 -89
  347. rucio-36.0.0rc3/bin/rucio-kronos +0 -43
  348. rucio-36.0.0rc3/bin/rucio-minos +0 -53
  349. rucio-36.0.0rc3/bin/rucio-minos-temporary-expiration +0 -50
  350. rucio-36.0.0rc3/bin/rucio-necromancer +0 -120
  351. rucio-36.0.0rc3/bin/rucio-reaper +0 -83
  352. rucio-36.0.0rc3/bin/rucio-replica-recoverer +0 -248
  353. rucio-36.0.0rc3/bin/rucio-transmogrifier +0 -77
  354. rucio-36.0.0rc3/bin/rucio-undertaker +0 -76
  355. rucio-36.0.0rc3/etc/alembic.ini.template +0 -71
  356. rucio-36.0.0rc3/etc/alembic_offline.ini.template +0 -74
  357. rucio-36.0.0rc3/etc/rucio.cfg.template +0 -258
  358. rucio-36.0.0rc3/etc/rucio_multi_vo.cfg.template +0 -234
  359. rucio-36.0.0rc3/lib/rucio/alembicrevision.py +0 -15
  360. rucio-36.0.0rc3/lib/rucio/client/accountclient.py +0 -433
  361. rucio-36.0.0rc3/lib/rucio/client/accountlimitclient.py +0 -183
  362. rucio-36.0.0rc3/lib/rucio/client/baseclient.py +0 -976
  363. rucio-36.0.0rc3/lib/rucio/client/client.py +0 -76
  364. rucio-36.0.0rc3/lib/rucio/client/configclient.py +0 -126
  365. rucio-36.0.0rc3/lib/rucio/client/credentialclient.py +0 -59
  366. rucio-36.0.0rc3/lib/rucio/client/didclient.py +0 -866
  367. rucio-36.0.0rc3/lib/rucio/client/diracclient.py +0 -56
  368. rucio-36.0.0rc3/lib/rucio/client/downloadclient.py +0 -1787
  369. rucio-36.0.0rc3/lib/rucio/client/exportclient.py +0 -44
  370. rucio-36.0.0rc3/lib/rucio/client/fileclient.py +0 -50
  371. rucio-36.0.0rc3/lib/rucio/client/importclient.py +0 -42
  372. rucio-36.0.0rc3/lib/rucio/client/lifetimeclient.py +0 -90
  373. rucio-36.0.0rc3/lib/rucio/client/lockclient.py +0 -109
  374. rucio-36.0.0rc3/lib/rucio/client/metaconventionsclient.py +0 -140
  375. rucio-36.0.0rc3/lib/rucio/client/pingclient.py +0 -44
  376. rucio-36.0.0rc3/lib/rucio/client/replicaclient.py +0 -454
  377. rucio-36.0.0rc3/lib/rucio/client/requestclient.py +0 -125
  378. rucio-36.0.0rc3/lib/rucio/client/rseclient.py +0 -746
  379. rucio-36.0.0rc3/lib/rucio/client/ruleclient.py +0 -294
  380. rucio-36.0.0rc3/lib/rucio/client/scopeclient.py +0 -90
  381. rucio-36.0.0rc3/lib/rucio/client/subscriptionclient.py +0 -173
  382. rucio-36.0.0rc3/lib/rucio/client/touchclient.py +0 -82
  383. rucio-36.0.0rc3/lib/rucio/client/uploadclient.py +0 -958
  384. rucio-36.0.0rc3/lib/rucio/common/cache.py +0 -111
  385. rucio-36.0.0rc3/lib/rucio/common/checksum.py +0 -151
  386. rucio-36.0.0rc3/lib/rucio/common/client.py +0 -122
  387. rucio-36.0.0rc3/lib/rucio/common/config.py +0 -796
  388. rucio-36.0.0rc3/lib/rucio/common/constants.py +0 -217
  389. rucio-36.0.0rc3/lib/rucio/common/didtype.py +0 -237
  390. rucio-36.0.0rc3/lib/rucio/common/dumper/__init__.py +0 -335
  391. rucio-36.0.0rc3/lib/rucio/common/dumper/consistency.py +0 -452
  392. rucio-36.0.0rc3/lib/rucio/common/dumper/data_models.py +0 -318
  393. rucio-36.0.0rc3/lib/rucio/common/dumper/path_parsing.py +0 -64
  394. rucio-36.0.0rc3/lib/rucio/common/exception.py +0 -1169
  395. rucio-36.0.0rc3/lib/rucio/common/pcache.py +0 -1408
  396. rucio-36.0.0rc3/lib/rucio/common/plugins.py +0 -185
  397. rucio-36.0.0rc3/lib/rucio/common/policy.py +0 -84
  398. rucio-36.0.0rc3/lib/rucio/common/schema/__init__.py +0 -192
  399. rucio-36.0.0rc3/lib/rucio/common/schema/generic.py +0 -433
  400. rucio-36.0.0rc3/lib/rucio/common/schema/generic_multi_vo.py +0 -412
  401. rucio-36.0.0rc3/lib/rucio/common/test_rucio_server.py +0 -148
  402. rucio-36.0.0rc3/lib/rucio/common/types.py +0 -461
  403. rucio-36.0.0rc3/lib/rucio/common/utils.py +0 -1671
  404. rucio-36.0.0rc3/lib/rucio/core/account.py +0 -496
  405. rucio-36.0.0rc3/lib/rucio/core/account_counter.py +0 -236
  406. rucio-36.0.0rc3/lib/rucio/core/account_limit.py +0 -425
  407. rucio-36.0.0rc3/lib/rucio/core/authentication.py +0 -620
  408. rucio-36.0.0rc3/lib/rucio/core/config.py +0 -437
  409. rucio-36.0.0rc3/lib/rucio/core/credential.py +0 -224
  410. rucio-36.0.0rc3/lib/rucio/core/did.py +0 -3000
  411. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/__init__.py +0 -252
  412. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -331
  413. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -165
  414. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -613
  415. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/json_meta.py +0 -240
  416. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -216
  417. rucio-36.0.0rc3/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -316
  418. rucio-36.0.0rc3/lib/rucio/core/dirac.py +0 -237
  419. rucio-36.0.0rc3/lib/rucio/core/distance.py +0 -187
  420. rucio-36.0.0rc3/lib/rucio/core/exporter.py +0 -59
  421. rucio-36.0.0rc3/lib/rucio/core/importer.py +0 -260
  422. rucio-36.0.0rc3/lib/rucio/core/lifetime_exception.py +0 -377
  423. rucio-36.0.0rc3/lib/rucio/core/lock.py +0 -577
  424. rucio-36.0.0rc3/lib/rucio/core/message.py +0 -282
  425. rucio-36.0.0rc3/lib/rucio/core/meta_conventions.py +0 -203
  426. rucio-36.0.0rc3/lib/rucio/core/monitor.py +0 -448
  427. rucio-36.0.0rc3/lib/rucio/core/naming_convention.py +0 -195
  428. rucio-36.0.0rc3/lib/rucio/core/nongrid_trace.py +0 -136
  429. rucio-36.0.0rc3/lib/rucio/core/oidc.py +0 -1462
  430. rucio-36.0.0rc3/lib/rucio/core/permission/__init__.py +0 -169
  431. rucio-36.0.0rc3/lib/rucio/core/permission/generic.py +0 -1124
  432. rucio-36.0.0rc3/lib/rucio/core/permission/generic_multi_vo.py +0 -1144
  433. rucio-36.0.0rc3/lib/rucio/core/quarantined_replica.py +0 -224
  434. rucio-36.0.0rc3/lib/rucio/core/replica.py +0 -4474
  435. rucio-36.0.0rc3/lib/rucio/core/replica_sorter.py +0 -407
  436. rucio-36.0.0rc3/lib/rucio/core/request.py +0 -3090
  437. rucio-36.0.0rc3/lib/rucio/core/rse.py +0 -1907
  438. rucio-36.0.0rc3/lib/rucio/core/rse_counter.py +0 -186
  439. rucio-36.0.0rc3/lib/rucio/core/rse_selector.py +0 -304
  440. rucio-36.0.0rc3/lib/rucio/core/rule.py +0 -4484
  441. rucio-36.0.0rc3/lib/rucio/core/rule_grouping.py +0 -1620
  442. rucio-36.0.0rc3/lib/rucio/core/scope.py +0 -181
  443. rucio-36.0.0rc3/lib/rucio/core/subscription.py +0 -364
  444. rucio-36.0.0rc3/lib/rucio/core/topology.py +0 -490
  445. rucio-36.0.0rc3/lib/rucio/core/trace.py +0 -375
  446. rucio-36.0.0rc3/lib/rucio/core/transfer.py +0 -1517
  447. rucio-36.0.0rc3/lib/rucio/core/vo.py +0 -169
  448. rucio-36.0.0rc3/lib/rucio/core/volatile_replica.py +0 -151
  449. rucio-36.0.0rc3/lib/rucio/daemons/abacus/account.py +0 -116
  450. rucio-36.0.0rc3/lib/rucio/daemons/abacus/collection_replica.py +0 -124
  451. rucio-36.0.0rc3/lib/rucio/daemons/abacus/rse.py +0 -117
  452. rucio-36.0.0rc3/lib/rucio/daemons/atropos/atropos.py +0 -242
  453. rucio-36.0.0rc3/lib/rucio/daemons/auditor/__init__.py +0 -289
  454. rucio-36.0.0rc3/lib/rucio/daemons/auditor/srmdumps.py +0 -355
  455. rucio-36.0.0rc3/lib/rucio/daemons/automatix/automatix.py +0 -308
  456. rucio-36.0.0rc3/lib/rucio/daemons/badreplicas/minos.py +0 -322
  457. rucio-36.0.0rc3/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -171
  458. rucio-36.0.0rc3/lib/rucio/daemons/badreplicas/necromancer.py +0 -196
  459. rucio-36.0.0rc3/lib/rucio/daemons/bb8/bb8.py +0 -353
  460. rucio-36.0.0rc3/lib/rucio/daemons/bb8/common.py +0 -759
  461. rucio-36.0.0rc3/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -153
  462. rucio-36.0.0rc3/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -153
  463. rucio-36.0.0rc3/lib/rucio/daemons/c3po/algorithms/simple.py +0 -134
  464. rucio-36.0.0rc3/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -128
  465. rucio-36.0.0rc3/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -130
  466. rucio-36.0.0rc3/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -294
  467. rucio-36.0.0rc3/lib/rucio/daemons/c3po/c3po.py +0 -371
  468. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/agis.py +0 -108
  469. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/free_space.py +0 -81
  470. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -57
  471. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -51
  472. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -71
  473. rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors/workload.py +0 -112
  474. rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -50
  475. rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -56
  476. rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -62
  477. rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils/popularity.py +0 -85
  478. rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils/timeseries.py +0 -89
  479. rucio-36.0.0rc3/lib/rucio/daemons/cache/consumer.py +0 -197
  480. rucio-36.0.0rc3/lib/rucio/daemons/common.py +0 -405
  481. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/common.py +0 -562
  482. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/finisher.py +0 -529
  483. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/poller.py +0 -404
  484. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/preparer.py +0 -205
  485. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/receiver.py +0 -249
  486. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/submitter.py +0 -403
  487. rucio-36.0.0rc3/lib/rucio/daemons/conveyor/throttler.py +0 -532
  488. rucio-36.0.0rc3/lib/rucio/daemons/follower/follower.py +0 -101
  489. rucio-36.0.0rc3/lib/rucio/daemons/hermes/hermes.py +0 -774
  490. rucio-36.0.0rc3/lib/rucio/daemons/judge/cleaner.py +0 -159
  491. rucio-36.0.0rc3/lib/rucio/daemons/judge/evaluator.py +0 -185
  492. rucio-36.0.0rc3/lib/rucio/daemons/judge/injector.py +0 -162
  493. rucio-36.0.0rc3/lib/rucio/daemons/judge/repairer.py +0 -154
  494. rucio-36.0.0rc3/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -198
  495. rucio-36.0.0rc3/lib/rucio/daemons/reaper/dark_reaper.py +0 -278
  496. rucio-36.0.0rc3/lib/rucio/daemons/reaper/reaper.py +0 -743
  497. rucio-36.0.0rc3/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -626
  498. rucio-36.0.0rc3/lib/rucio/daemons/storage/consistency/actions.py +0 -846
  499. rucio-36.0.0rc3/lib/rucio/daemons/tracer/kronos.py +0 -536
  500. rucio-36.0.0rc3/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -762
  501. rucio-36.0.0rc3/lib/rucio/daemons/undertaker/undertaker.py +0 -137
  502. rucio-36.0.0rc3/lib/rucio/db/sqla/constants.py +0 -201
  503. rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -91
  504. rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -68
  505. rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -67
  506. rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -55
  507. rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -43
  508. rucio-36.0.0rc3/lib/rucio/db/sqla/models.py +0 -1743
  509. rucio-36.0.0rc3/lib/rucio/db/sqla/session.py +0 -498
  510. rucio-36.0.0rc3/lib/rucio/db/sqla/util.py +0 -543
  511. rucio-36.0.0rc3/lib/rucio/gateway/account.py +0 -345
  512. rucio-36.0.0rc3/lib/rucio/gateway/account_limit.py +0 -363
  513. rucio-36.0.0rc3/lib/rucio/gateway/authentication.py +0 -381
  514. rucio-36.0.0rc3/lib/rucio/gateway/config.py +0 -227
  515. rucio-36.0.0rc3/lib/rucio/gateway/credential.py +0 -70
  516. rucio-36.0.0rc3/lib/rucio/gateway/did.py +0 -984
  517. rucio-36.0.0rc3/lib/rucio/gateway/dirac.py +0 -83
  518. rucio-36.0.0rc3/lib/rucio/gateway/exporter.py +0 -60
  519. rucio-36.0.0rc3/lib/rucio/gateway/heartbeat.py +0 -76
  520. rucio-36.0.0rc3/lib/rucio/gateway/identity.py +0 -207
  521. rucio-36.0.0rc3/lib/rucio/gateway/importer.py +0 -46
  522. rucio-36.0.0rc3/lib/rucio/gateway/lifetime_exception.py +0 -121
  523. rucio-36.0.0rc3/lib/rucio/gateway/lock.py +0 -153
  524. rucio-36.0.0rc3/lib/rucio/gateway/meta_conventions.py +0 -98
  525. rucio-36.0.0rc3/lib/rucio/gateway/permission.py +0 -74
  526. rucio-36.0.0rc3/lib/rucio/gateway/quarantined_replica.py +0 -79
  527. rucio-36.0.0rc3/lib/rucio/gateway/replica.py +0 -538
  528. rucio-36.0.0rc3/lib/rucio/gateway/request.py +0 -330
  529. rucio-36.0.0rc3/lib/rucio/gateway/rse.py +0 -616
  530. rucio-36.0.0rc3/lib/rucio/gateway/rule.py +0 -437
  531. rucio-36.0.0rc3/lib/rucio/gateway/scope.py +0 -100
  532. rucio-36.0.0rc3/lib/rucio/gateway/subscription.py +0 -280
  533. rucio-36.0.0rc3/lib/rucio/gateway/vo.py +0 -126
  534. rucio-36.0.0rc3/lib/rucio/rse/__init__.py +0 -96
  535. rucio-36.0.0rc3/lib/rucio/rse/protocols/bittorrent.py +0 -197
  536. rucio-36.0.0rc3/lib/rucio/rse/protocols/cache.py +0 -122
  537. rucio-36.0.0rc3/lib/rucio/rse/protocols/dummy.py +0 -111
  538. rucio-36.0.0rc3/lib/rucio/rse/protocols/gfal.py +0 -703
  539. rucio-36.0.0rc3/lib/rucio/rse/protocols/globus.py +0 -243
  540. rucio-36.0.0rc3/lib/rucio/rse/protocols/gsiftp.py +0 -107
  541. rucio-36.0.0rc3/lib/rucio/rse/protocols/http_cache.py +0 -82
  542. rucio-36.0.0rc3/lib/rucio/rse/protocols/ngarc.py +0 -209
  543. rucio-36.0.0rc3/lib/rucio/rse/protocols/posix.py +0 -250
  544. rucio-36.0.0rc3/lib/rucio/rse/protocols/protocol.py +0 -312
  545. rucio-36.0.0rc3/lib/rucio/rse/protocols/rfio.py +0 -145
  546. rucio-36.0.0rc3/lib/rucio/rse/protocols/srm.py +0 -338
  547. rucio-36.0.0rc3/lib/rucio/rse/protocols/storm.py +0 -206
  548. rucio-36.0.0rc3/lib/rucio/rse/protocols/webdav.py +0 -550
  549. rucio-36.0.0rc3/lib/rucio/rse/rsemanager.py +0 -767
  550. rucio-36.0.0rc3/lib/rucio/rse/translation.py +0 -268
  551. rucio-36.0.0rc3/lib/rucio/tests/common.py +0 -278
  552. rucio-36.0.0rc3/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -134
  553. rucio-36.0.0rc3/lib/rucio/transfertool/fts3.py +0 -1597
  554. rucio-36.0.0rc3/lib/rucio/transfertool/fts3_plugins.py +0 -152
  555. rucio-36.0.0rc3/lib/rucio/vcsversion.py +0 -11
  556. rucio-36.0.0rc3/lib/rucio/web/rest/__init__.py +0 -13
  557. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/__init__.py +0 -13
  558. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -13
  559. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -236
  560. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -1089
  561. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -102
  562. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -1644
  563. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/common.py +0 -426
  564. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/config.py +0 -304
  565. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -213
  566. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/dids.py +0 -2335
  567. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -116
  568. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/export.py +0 -75
  569. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -127
  570. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -261
  571. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/import.py +0 -132
  572. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -312
  573. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -358
  574. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/main.py +0 -91
  575. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -241
  576. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -36
  577. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -97
  578. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -88
  579. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -366
  580. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -1894
  581. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -998
  582. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -2239
  583. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -854
  584. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -159
  585. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -650
  586. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -100
  587. rucio-36.0.0rc3/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -278
  588. rucio-36.0.0rc3/lib/rucio.egg-info/SOURCES.txt +0 -586
  589. rucio-36.0.0rc3/pylintrc +0 -507
  590. rucio-36.0.0rc3/pyproject.toml +0 -153
  591. rucio-36.0.0rc3/requirements/requirements.server.txt +0 -272
  592. rucio-36.0.0rc3/setup.cfg +0 -19
  593. rucio-36.0.0rc3/setup.py +0 -81
  594. rucio-36.0.0rc3/setuputil.py +0 -174
  595. rucio-36.0.0rc3/tests/test_abacus_account.py +0 -77
  596. rucio-36.0.0rc3/tests/test_abacus_collection_replica.py +0 -180
  597. rucio-36.0.0rc3/tests/test_abacus_rse.py +0 -70
  598. rucio-36.0.0rc3/tests/test_account.py +0 -334
  599. rucio-36.0.0rc3/tests/test_account_limits.py +0 -180
  600. rucio-36.0.0rc3/tests/test_archive.py +0 -250
  601. rucio-36.0.0rc3/tests/test_authentication.py +0 -295
  602. rucio-36.0.0rc3/tests/test_automatix.py +0 -91
  603. rucio-36.0.0rc3/tests/test_bb8.py +0 -270
  604. rucio-36.0.0rc3/tests/test_belleii.py +0 -128
  605. rucio-36.0.0rc3/tests/test_bin_rucio.py +0 -2397
  606. rucio-36.0.0rc3/tests/test_clients.py +0 -212
  607. rucio-36.0.0rc3/tests/test_config.py +0 -151
  608. rucio-36.0.0rc3/tests/test_conveyor.py +0 -1794
  609. rucio-36.0.0rc3/tests/test_conveyor_submitter.py +0 -480
  610. rucio-36.0.0rc3/tests/test_counter.py +0 -173
  611. rucio-36.0.0rc3/tests/test_curl.py +0 -138
  612. rucio-36.0.0rc3/tests/test_daemons.py +0 -84
  613. rucio-36.0.0rc3/tests/test_dataset_replicas.py +0 -543
  614. rucio-36.0.0rc3/tests/test_did.py +0 -1269
  615. rucio-36.0.0rc3/tests/test_did_meta_plugins.py +0 -717
  616. rucio-36.0.0rc3/tests/test_download.py +0 -750
  617. rucio-36.0.0rc3/tests/test_dumper.py +0 -237
  618. rucio-36.0.0rc3/tests/test_dumper_consistency.py +0 -407
  619. rucio-36.0.0rc3/tests/test_dumper_data_model.py +0 -334
  620. rucio-36.0.0rc3/tests/test_dumper_path_parsing.py +0 -47
  621. rucio-36.0.0rc3/tests/test_filter_engine.py +0 -736
  622. rucio-36.0.0rc3/tests/test_gateway_external_representation.py +0 -475
  623. rucio-36.0.0rc3/tests/test_heartbeat.py +0 -192
  624. rucio-36.0.0rc3/tests/test_hermes.py +0 -278
  625. rucio-36.0.0rc3/tests/test_impl_upload_download.py +0 -457
  626. rucio-36.0.0rc3/tests/test_import_export.py +0 -1295
  627. rucio-36.0.0rc3/tests/test_judge_evaluator.py +0 -524
  628. rucio-36.0.0rc3/tests/test_judge_injector.py +0 -231
  629. rucio-36.0.0rc3/tests/test_judge_repairer.py +0 -369
  630. rucio-36.0.0rc3/tests/test_lifetime.py +0 -268
  631. rucio-36.0.0rc3/tests/test_module_import.py +0 -26
  632. rucio-36.0.0rc3/tests/test_multi_vo.py +0 -1075
  633. rucio-36.0.0rc3/tests/test_naming_convention.py +0 -64
  634. rucio-36.0.0rc3/tests/test_oauthmanager.py +0 -293
  635. rucio-36.0.0rc3/tests/test_oidc.py +0 -1991
  636. rucio-36.0.0rc3/tests/test_permission.py +0 -76
  637. rucio-36.0.0rc3/tests/test_policy_package.py +0 -60
  638. rucio-36.0.0rc3/tests/test_reaper.py +0 -514
  639. rucio-36.0.0rc3/tests/test_replica.py +0 -1225
  640. rucio-36.0.0rc3/tests/test_replica_recoverer.py +0 -595
  641. rucio-36.0.0rc3/tests/test_replica_sorting.py +0 -531
  642. rucio-36.0.0rc3/tests/test_rse.py +0 -1597
  643. rucio-36.0.0rc3/tests/test_rse_lfn2path.py +0 -219
  644. rucio-36.0.0rc3/tests/test_rse_selector.py +0 -156
  645. rucio-36.0.0rc3/tests/test_rucio_server.py +0 -23
  646. rucio-36.0.0rc3/tests/test_rule.py +0 -1642
  647. rucio-36.0.0rc3/tests/test_scope.py +0 -172
  648. rucio-36.0.0rc3/tests/test_subscription.py +0 -843
  649. rucio-36.0.0rc3/tests/test_throttler.py +0 -1017
  650. rucio-36.0.0rc3/tests/test_tpc.py +0 -125
  651. rucio-36.0.0rc3/tests/test_trace.py +0 -93
  652. rucio-36.0.0rc3/tests/test_transfer_plugins.py +0 -335
  653. rucio-36.0.0rc3/tests/test_undertaker.py +0 -191
  654. rucio-36.0.0rc3/tests/test_upload.py +0 -436
  655. rucio-36.0.0rc3/tests/test_utils.py +0 -184
  656. rucio-36.0.0rc3/tools/reset_database.py +0 -40
  657. {rucio-36.0.0rc3 → rucio-38.5.1}/LICENSE +0 -0
  658. {rucio-36.0.0rc3 → rucio-38.5.1}/MANIFEST.in +0 -0
  659. {rucio-36.0.0rc3 → rucio-38.5.1}/README.md +0 -0
  660. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-abacus-collection-replica +0 -0
  661. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-bb8 +0 -0
  662. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-cache-consumer +0 -0
  663. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-conveyor-finisher +0 -0
  664. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-conveyor-poller +0 -0
  665. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-conveyor-preparer +0 -0
  666. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-conveyor-stager +0 -0
  667. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-conveyor-submitter +0 -0
  668. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-dark-reaper +0 -0
  669. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-dumper +0 -0
  670. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-hermes +0 -0
  671. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-judge-evaluator +0 -0
  672. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-judge-injector +0 -0
  673. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-judge-repairer +0 -0
  674. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-oauth-manager +0 -0
  675. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-rse-decommissioner +0 -0
  676. {rucio-36.0.0rc3 → rucio-38.5.1}/bin/rucio-storage-consistency-actions +0 -0
  677. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/globus-config.yml.template +0 -0
  678. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/ldap.cfg.template +0 -0
  679. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  680. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  681. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  682. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  683. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  684. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  685. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/rse-accounts.cfg.template +0 -0
  686. {rucio-36.0.0rc3 → rucio-38.5.1}/etc/rucio.cfg.atlas.client.template +0 -0
  687. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/__init__.py +0 -0
  688. {rucio-36.0.0rc3/lib/rucio/common → rucio-38.5.1/lib/rucio/cli/bin_legacy}/__init__.py +0 -0
  689. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/client/__init__.py +0 -0
  690. {rucio-36.0.0rc3/lib/rucio/core → rucio-38.5.1/lib/rucio/common}/__init__.py +0 -0
  691. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/bittorrent.py +0 -0
  692. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/constraints.py +0 -0
  693. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/extra.py +0 -0
  694. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/logging.py +0 -0
  695. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/stomp_utils.py +0 -0
  696. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/common/stopwatch.py +0 -0
  697. {rucio-36.0.0rc3/lib/rucio/daemons → rucio-38.5.1/lib/rucio/core}/__init__.py +0 -0
  698. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/core/heartbeat.py +0 -0
  699. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/core/identity.py +0 -0
  700. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/core/rse_expression_parser.py +0 -0
  701. {rucio-36.0.0rc3/lib/rucio/daemons/abacus → rucio-38.5.1/lib/rucio/daemons}/__init__.py +0 -0
  702. {rucio-36.0.0rc3/lib/rucio/daemons/atropos → rucio-38.5.1/lib/rucio/daemons/abacus}/__init__.py +0 -0
  703. {rucio-36.0.0rc3/lib/rucio/daemons/automatix → rucio-38.5.1/lib/rucio/daemons/atropos}/__init__.py +0 -0
  704. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  705. {rucio-36.0.0rc3/lib/rucio/daemons/badreplicas → rucio-38.5.1/lib/rucio/daemons/automatix}/__init__.py +0 -0
  706. {rucio-36.0.0rc3/lib/rucio/daemons/bb8 → rucio-38.5.1/lib/rucio/daemons/badreplicas}/__init__.py +0 -0
  707. {rucio-36.0.0rc3/lib/rucio/daemons/c3po → rucio-38.5.1/lib/rucio/daemons/bb8}/__init__.py +0 -0
  708. {rucio-36.0.0rc3/lib/rucio/daemons/c3po/algorithms → rucio-38.5.1/lib/rucio/daemons/cache}/__init__.py +0 -0
  709. {rucio-36.0.0rc3/lib/rucio/daemons/c3po/collectors → rucio-38.5.1/lib/rucio/daemons/conveyor}/__init__.py +0 -0
  710. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/conveyor/stager.py +0 -0
  711. {rucio-36.0.0rc3/lib/rucio/daemons/c3po/utils → rucio-38.5.1/lib/rucio/daemons/follower}/__init__.py +0 -0
  712. {rucio-36.0.0rc3/lib/rucio/daemons/cache → rucio-38.5.1/lib/rucio/daemons/hermes}/__init__.py +0 -0
  713. {rucio-36.0.0rc3/lib/rucio/daemons/conveyor → rucio-38.5.1/lib/rucio/daemons/judge}/__init__.py +0 -0
  714. {rucio-36.0.0rc3/lib/rucio/daemons/follower → rucio-38.5.1/lib/rucio/daemons/oauthmanager}/__init__.py +0 -0
  715. {rucio-36.0.0rc3/lib/rucio/daemons/hermes → rucio-38.5.1/lib/rucio/daemons/reaper}/__init__.py +0 -0
  716. {rucio-36.0.0rc3/lib/rucio/daemons/judge → rucio-38.5.1/lib/rucio/daemons/replicarecoverer}/__init__.py +0 -0
  717. {rucio-36.0.0rc3/lib/rucio/daemons/oauthmanager → rucio-38.5.1/lib/rucio/daemons/rsedecommissioner}/__init__.py +0 -0
  718. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
  719. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  720. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  721. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
  722. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  723. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
  724. {rucio-36.0.0rc3/lib/rucio/daemons/reaper → rucio-38.5.1/lib/rucio/daemons/storage}/__init__.py +0 -0
  725. {rucio-36.0.0rc3/lib/rucio/daemons/replicarecoverer → rucio-38.5.1/lib/rucio/daemons/storage/consistency}/__init__.py +0 -0
  726. {rucio-36.0.0rc3/lib/rucio/daemons/rsedecommissioner → rucio-38.5.1/lib/rucio/daemons/tracer}/__init__.py +0 -0
  727. {rucio-36.0.0rc3/lib/rucio/daemons/storage → rucio-38.5.1/lib/rucio/daemons/transmogrifier}/__init__.py +0 -0
  728. {rucio-36.0.0rc3/lib/rucio/daemons/storage/consistency → rucio-38.5.1/lib/rucio/daemons/undertaker}/__init__.py +0 -0
  729. {rucio-36.0.0rc3/lib/rucio/daemons/tracer → rucio-38.5.1/lib/rucio/db}/__init__.py +0 -0
  730. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/__init__.py +0 -0
  731. {rucio-36.0.0rc3/lib/rucio/daemons/transmogrifier → rucio-38.5.1/lib/rucio/db/sqla/migrate_repo}/__init__.py +0 -0
  732. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  733. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  734. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  735. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  736. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  737. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  738. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  739. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  740. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  741. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  742. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  743. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  744. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  745. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  746. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  747. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  748. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  749. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  750. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  751. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  752. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  753. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  754. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  755. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  756. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  757. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  758. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  759. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  760. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  761. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  762. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  763. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  764. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  765. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  766. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  767. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  768. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  769. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  770. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  771. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  772. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  773. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  774. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  775. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  776. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  777. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  778. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  779. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  780. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  781. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  782. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  783. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  784. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  785. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  786. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  787. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  788. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  789. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  790. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  791. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  792. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  793. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  794. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  795. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  796. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  797. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  798. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  799. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  800. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  801. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  802. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  803. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  804. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  805. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  806. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  807. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  808. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  809. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  810. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  811. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  812. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  813. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  814. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  815. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  816. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  817. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  818. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  819. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  820. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  821. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  822. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  823. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  824. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  825. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  826. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  827. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  828. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  829. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b0070f3695c8_add_deletedidmeta_table.py +0 -0
  830. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  831. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b5493606bbf5_fix_primary_key_for_subscription_history.py +0 -0
  832. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  833. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  834. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  835. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  836. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  837. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  838. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  839. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  840. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  841. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  842. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  843. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  844. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  845. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  846. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  847. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  848. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  849. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  850. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  851. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  852. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  853. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  854. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  855. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  856. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/sautils.py +0 -0
  857. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/db/sqla/types.py +0 -0
  858. {rucio-36.0.0rc3/lib/rucio/daemons/undertaker → rucio-38.5.1/lib/rucio/gateway}/__init__.py +0 -0
  859. {rucio-36.0.0rc3/lib/rucio/db → rucio-38.5.1/lib/rucio/rse/protocols}/__init__.py +0 -0
  860. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/rse/protocols/mock.py +0 -0
  861. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/rse/protocols/rclone.py +0 -0
  862. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/rse/protocols/ssh.py +0 -0
  863. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/rse/protocols/xrootd.py +0 -0
  864. {rucio-36.0.0rc3/lib/rucio/db/sqla/migrate_repo → rucio-38.5.1/lib/rucio/tests}/__init__.py +0 -0
  865. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/tests/common_server.py +0 -0
  866. {rucio-36.0.0rc3/lib/rucio/gateway → rucio-38.5.1/lib/rucio/transfertool}/__init__.py +0 -0
  867. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/bittorrent.py +0 -0
  868. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
  869. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/globus.py +0 -0
  870. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/globus_library.py +0 -0
  871. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/mock.py +0 -0
  872. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/transfertool/transfertool.py +0 -0
  873. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/version.py +0 -0
  874. {rucio-36.0.0rc3/lib/rucio/rse/protocols → rucio-38.5.1/lib/rucio/web}/__init__.py +0 -0
  875. {rucio-36.0.0rc3/lib/rucio/transfertool → rucio-38.5.1/lib/rucio/web/rest/flaskapi}/__init__.py +0 -0
  876. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  877. {rucio-36.0.0rc3/lib/rucio/web → rucio-38.5.1/lib/rucio/web/rest/flaskapi/v1}/__init__.py +0 -0
  878. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  879. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  880. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/flaskapi/v1/types.py +0 -0
  881. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/main.py +0 -0
  882. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/metrics.py +0 -0
  883. {rucio-36.0.0rc3 → rucio-38.5.1}/lib/rucio/web/rest/ping.py +0 -0
  884. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_auditor.py +0 -0
  885. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_auditor_hdfs.py +0 -0
  886. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_auditor_srmdumps.py +0 -0
  887. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_bad_replica.py +0 -0
  888. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_boolean.py +0 -0
  889. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_credential.py +0 -0
  890. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_db.py +0 -0
  891. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_identity.py +0 -0
  892. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_judge_cleaner.py +0 -0
  893. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_message.py +0 -0
  894. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_meta_conventions.py +0 -0
  895. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_meta_did.py +0 -0
  896. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_monitor.py +0 -0
  897. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_pfns.py +0 -0
  898. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_ping.py +0 -0
  899. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_preparer.py +0 -0
  900. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_qos.py +0 -0
  901. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_quarantined_replica.py +0 -0
  902. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_redirect.py +0 -0
  903. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_request.py +0 -0
  904. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_root_proxy.py +0 -0
  905. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_expression_parser.py +0 -0
  906. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_gfal2.py +0 -0
  907. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  908. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_posix.py +0 -0
  909. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_rclone.py +0 -0
  910. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_rsync.py +0 -0
  911. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_srm.py +0 -0
  912. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_ssh.py +0 -0
  913. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_webdav.py +0 -0
  914. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_rse_protocol_xrootd.py +0 -0
  915. {rucio-36.0.0rc3 → rucio-38.5.1}/tests/test_transfer.py +0 -0
  916. {rucio-36.0.0rc3 → rucio-38.5.1}/tools/bootstrap.py +0 -0
  917. {rucio-36.0.0rc3 → rucio-38.5.1}/tools/merge_rucio_configs.py +0 -0
@@ -0,0 +1,101 @@
1
+ Individual contributors to the source code
2
+ ------------------------------------------
3
+ - Mario Lassnig <mario.lassnig@cern.ch>, 2012-2019
4
+ - Vincent Garonne <vgaronne@gmail.com>, 2012-2019
5
+ - Angelos Molfetas <Angelos.Molfetas@cern.ch>, 2012
6
+ - Martin Barisits <martin.barisits@cern.ch>, 2012-2019
7
+ - Thomas Beermann <thomas.beermann@cern.ch>, 2012-2019
8
+ - Ralph Vigne <ralph.vigne@cern.ch>, 2012-2016
9
+ - Graeme Stewart <graeme.andrew.stewart@cern.ch>, 2012
10
+ - Yun-Pin Sun <winter0128@gmail.com>, 2012-2013
11
+ - Cedric Serfon <cedric.serfon@cern.ch>, 2012-2020
12
+ - Luis Rodrigues <lfrodrigues@gmail.com>, 2013
13
+ - WeiJen Chang <e4523744@gmail.com>, 2013-2014
14
+ - Gancho Dimitrov <gancho.dimitrov@cern.ch>, 2013
15
+ - Wen Guan <wguan.icedew@gmail.com>, 2014-2017
16
+ - David Cameron <d.g.cameron@gmail.com>, 2014-2016
17
+ - Tomáš Kouba <tomas.kouba@cern.ch>, 2014-2015
18
+ - Cheng-Hsi Chao <cheng-hsi.chao@cern.ch>, 2014
19
+ - Evangelia Liotiri <evangelia.liotiri@cern.ch>, 2014-2015
20
+ - Joaquín Bogado <jbogado@linti.unlp.edu.ar>, 2014-2018
21
+ - Fernando López <fernando.e.lopez@gmail.com>, 2015-2016
22
+ - Sylvain Blunier <sylvain.blunier@cern.ch>, 2016
23
+ - Tomas Javurek <tomas.javurek@cern.ch>, 2016-2019
24
+ - Brian Bockelman <bbockelm@cse.unl.edu>, 2016-2018
25
+ - Tobias Wegner <twegner@cern.ch>, 2017-2019
26
+ - Frank Berghaus <frank.berghaus@cern.ch>, 2017
27
+ - Vitjan Zavrtanik <vitjan.zavrtanik@cern.ch>, 2017
28
+ - Stefan Prenner <stefan.prenner@cern.ch>, 2017-2018
29
+ - Nicolo Magini <Nicolo.Magini@cern.ch>, 2017-2018
30
+ - Oliver Freyermuth <o.freyermuth@googlemail.com>, 2017
31
+ - Eric Vaandering <ericvaandering@gmail.com>, 2018
32
+ - Dimitrios Christidis <dimitrios.christidis@cern.ch>, 2018-2019
33
+ - Igor Mandrichenko <ivm@fnal.gov>, 2018
34
+ - Shreyansh Khajanchi <shreyansh_k@live.com>, 2018
35
+ - Robert Illingworth <illingwo@fnal.gov>, 2018
36
+ - Hannes Hansen <hannes.jakob.hansen@cern.ch>, 2018-2019
37
+ - Gabriele Gaetano Fronzé <gabriele.fronze@to.infn.it>, 2018-2021
38
+ - James Perry <j.perry@epcc.ed.ac.uk>, 2019
39
+ - Vivek Nigam <viveknigam.nigam3@gmail.com>, 2019 - 2020
40
+ - Kaustubh Hiware <hiwarekaustubh@gmail.com>, 2019
41
+ - Florido Paganelli <florido.paganelli@hep.lu.se>, 2019
42
+ - Boris Bauermeister <Boris.Bauermeister@gmail.com> 2019
43
+ - Ruturaj Gujar <ruturaj.gujar23@gmail.com> 2019
44
+ - Andrew Lister <andrew.lister@stfc.ac.uk>, 2019
45
+ - Aristeidis Fkiaras <aristeidis.fkiaras@cern.ch>, 2019
46
+ - Matt Snyder <msnyder@bnl.gov>, 2019
47
+ - Brandon White <bjwhite@fnal.gov> 2019-2023
48
+ - Benedikt Ziemons <benedikt.ziemons@cern.ch>, 2020
49
+ - Muhammad Aditya Hilmy <mhilmy@hey.com>, 2020
50
+ - Eli Chadwick <eli.chadwick@stfc.ac.uk>, 2020
51
+ - Patrick Austin <patrick.austin@stfc.ac.uk>, 2020
52
+ - Rob Barnsley <R.Barnsley@skatelescope.org>, 2020
53
+ - Alan Malta Rodrigues <alan.malta@cern.ch>, 2020
54
+ - Mayank Sharma <mayank.sharma@cern.ch>, 2020
55
+ - Ian Johnson, <ian.johnson@stfc.ac.uk>, 2021
56
+ - Radu Carpa <radu.carpa@cern.ch>, 2021
57
+ - Dhruv Sondhi <dhruvsondhi05@gmail.com>, 2021
58
+ - Simon Fayer <simon.fayer05@imperial.ac.uk>, 2021
59
+ - Ilija Vukotic <ivukotic@uchicago.edu>, 2020-2021
60
+ - David Población Criado <david.poblacion.criado@cern.ch>, 2021
61
+ - Nick Smith <nick.smith@cern.ch>, 2021
62
+ - Rizart Dona <rizart.dona@cern.ch>, 2021
63
+ - Rakshita Varadarajan <rakshitajps@gmail.com>, 2021
64
+ - Fabio Luchetti <fabio.luchetti@cern.ch>, 2021
65
+ - Stefan Piperov <stefan.piperov@cern.ch>, 2021
66
+ - Jensen Zhang <hack@jensen-zhang.site>, 2022
67
+ - Aksel Lunde Aase <aksel.lunde.aase@gmail.com>, 2022
68
+ - Elena Gazzarrini <gazzarrini.elena@gmail.com>, 2022-2023
69
+ - Maximilian Linhoff, <maximilian.linhoff@tu-dortmund.de>, 2024
70
+ - Eric Banzuzi, <eric.banzuzi@gmail.com>, 2024
71
+ - Paul Millar, <paul.millar@desy.de>, 2025
72
+ - Vimalan S <vimalan.github@gmail.com>, 2025
73
+
74
+ Organisations employing contributors
75
+ ------------------------------------
76
+ - European Organisation for Nuclear Research (Switzerland)
77
+ - University of Oslo (Norway)
78
+ - University of Wisconsin Madison (USA)
79
+ - National University of La Plata (Argentina)
80
+ - Albert Ludwigs Universität Freiburg (Germany)
81
+ - University of Nebraska Lincoln (USA)
82
+ - Bergische Universität Wuppertal (Germany)
83
+ - University of Victoria (Canada)
84
+ - INFN e Universita Genova (Italy)
85
+ - University of Bonn (Germany)
86
+ - Fermi National Accelerator Laboratory (USA)
87
+ - Leopold-Franzens Universität Innsbruck (Austria)
88
+ - Academia Sinica (Taiwan)
89
+ - University of Edinburgh (UK)
90
+ - Birla Institute of Technology, Mesra (India)
91
+ - Indian Institute of Technology, Kharagpur (India)
92
+ - Stockholm University, Stockholm (Sweden)
93
+ - Dwarkadas J. Sanghvi College of Engineering (India)
94
+ - Science and Technology Facilities Council (UK)
95
+ - Brookhaven National Laboratory (USA)
96
+ - Institut Teknologi Bandung (Indonesia)
97
+ - Imperial College London (UK)
98
+ - University of Chicago (USA)
99
+ - Purdue University (USA)
100
+ - TU Dortmund University (Germany)
101
+ - Deutsches Elektronen-Synchrotron DESY (Germany)
rucio-38.5.1/ChangeLog ADDED
@@ -0,0 +1 @@
1
+ Release notes may be found at: https://rucio.cern.ch/documentation/release-notes/
rucio-38.5.1/PKG-INFO ADDED
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: rucio
3
+ Version: 38.5.1
4
+ Summary: Rucio Package
5
+ Home-page: https://rucio.cern.ch/
6
+ Author: Rucio
7
+ Author-email: rucio-dev@cern.ch
8
+ License: Apache License, Version 2.0
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Intended Audience :: Information Technology
12
+ Classifier: Intended Audience :: System Administrators
13
+ Classifier: Operating System :: POSIX :: Linux
14
+ Classifier: Natural Language :: English
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Environment :: No Input/Output (Daemon)
20
+ Requires-Python: >=3.9, <4
21
+ License-File: LICENSE
22
+ License-File: AUTHORS.rst
23
+ Requires-Dist: requests<=2.32.3
24
+ Requires-Dist: urllib3<=1.26.19
25
+ Requires-Dist: dogpile-cache<=1.2.2
26
+ Requires-Dist: packaging<=24.1
27
+ Requires-Dist: tabulate<=0.9.0
28
+ Requires-Dist: jsonschema<=4.23.0
29
+ Requires-Dist: rich<=13.9.4
30
+ Requires-Dist: typing_extensions<=4.12.2
31
+ Requires-Dist: argcomplete<=3.5.3
32
+ Requires-Dist: boto
33
+ Requires-Dist: python-magic<=0.4.27
34
+ Requires-Dist: paramiko<=3.5.1
35
+ Requires-Dist: boto3<=1.37.5
36
+ Requires-Dist: sqlalchemy<=2.0.38
37
+ Requires-Dist: alembic<=1.14.1
38
+ Requires-Dist: pymemcache<=4.0.0
39
+ Requires-Dist: python-dateutil<=2.9.0.post0
40
+ Requires-Dist: stomp-py<=8.2.0
41
+ Requires-Dist: statsd<=4.0.1
42
+ Requires-Dist: geoip2<=5.0.1
43
+ Requires-Dist: google-auth<=2.38.0
44
+ Requires-Dist: redis<=5.2.1
45
+ Requires-Dist: flask<=3.1.0
46
+ Requires-Dist: oic<=1.7.0
47
+ Requires-Dist: prometheus_client<=0.21.1
48
+ Provides-Extra: oracle
49
+ Requires-Dist: oracledb<=3.1.1; extra == "oracle"
50
+ Provides-Extra: mongo
51
+ Requires-Dist: pymongo<=4.11.2; extra == "mongo"
52
+ Provides-Extra: elastic
53
+ Requires-Dist: elasticsearch<=8.15.1; extra == "elastic"
54
+ Provides-Extra: postgresql
55
+ Requires-Dist: psycopg<=3.2.3; extra == "postgresql"
56
+ Requires-Dist: psycopg-binary<=3.2.3; extra == "postgresql"
57
+ Requires-Dist: psycopg-pool<=3.2.3; extra == "postgresql"
58
+ Provides-Extra: mysql
59
+ Requires-Dist: PyMySQL<=1.1.1; extra == "mysql"
60
+ Provides-Extra: kerberos
61
+ Requires-Dist: kerberos<=1.3.1; extra == "kerberos"
62
+ Requires-Dist: pykerberos<=1.2.4; extra == "kerberos"
63
+ Requires-Dist: requests-kerberos<=0.15.0; extra == "kerberos"
64
+ Provides-Extra: globus
65
+ Requires-Dist: PyYAML<=6.0.2; extra == "globus"
66
+ Requires-Dist: globus-sdk<=3.41.0; extra == "globus"
67
+ Provides-Extra: saml
68
+ Requires-Dist: python3-saml<=1.16.0; extra == "saml"
69
+ Provides-Extra: dev
70
+ Requires-Dist: pytest; extra == "dev"
71
+ Requires-Dist: pytest-xdist; extra == "dev"
72
+ Requires-Dist: pytest-cov; extra == "dev"
73
+ Requires-Dist: pyflakes; extra == "dev"
74
+ Requires-Dist: flake8; extra == "dev"
75
+ Requires-Dist: pylint; extra == "dev"
76
+ Requires-Dist: isort; extra == "dev"
77
+ Requires-Dist: xmltodict; extra == "dev"
78
+ Requires-Dist: pytz; extra == "dev"
79
+ Requires-Dist: pycodestyle; extra == "dev"
80
+ Requires-Dist: pydoc-markdown; extra == "dev"
81
+ Requires-Dist: docspec_python; extra == "dev"
82
+ Requires-Dist: sh; extra == "dev"
83
+ Requires-Dist: PyYAML; extra == "dev"
84
+ Dynamic: author
85
+ Dynamic: author-email
86
+ Dynamic: classifier
87
+ Dynamic: home-page
88
+ Dynamic: license
89
+ Dynamic: license-file
90
+ Dynamic: provides-extra
91
+ Dynamic: requires-dist
92
+ Dynamic: requires-python
93
+ Dynamic: summary
rucio-38.5.1/bin/rucio ADDED
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env python
2
+ # Copyright European Organization for Nuclear Research (CERN) since 2012
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ import argparse
17
+ import sys
18
+ from typing import TYPE_CHECKING, Optional
19
+
20
+ from rucio.cli.bin_legacy.rucio import get_parser
21
+ from rucio.cli.bin_legacy.rucio import main as main_legacy
22
+ from rucio.cli.command import main
23
+ from rucio.common.utils import setup_logger
24
+
25
+ if TYPE_CHECKING:
26
+ from logging import Logger
27
+
28
+
29
+ def _get_first_command(args: list[str]) -> Optional[str]:
30
+ return next(
31
+ (
32
+ arg for arg in args
33
+ if arg != 'rucio' and (arg[0] != "-" or arg in ("-h", "--help", "--version"))
34
+ ),
35
+ None
36
+ )
37
+
38
+
39
+ def make_warning(logger: "Logger") -> None:
40
+ base_warning = "This method is being deprecated."
41
+ new_command = map_legacy_command()
42
+ if new_command is not None:
43
+ warning = f"{base_warning} Please replace your command with `rucio {' '.join(new_command)}`"
44
+ else:
45
+ warning = base_warning + " Please view rucio -h for an updated help menu."
46
+
47
+ logger.warning(warning)
48
+
49
+
50
+ def map_legacy_command() -> Optional[list[str]]:
51
+ command = _get_first_command(sys.argv[1:])
52
+
53
+ new_command = None
54
+ if command not in ("-h", "--version", None):
55
+ command_map = {
56
+ "list-file-replicas": ["replica", "list", "file"],
57
+ "list-dataset-replicas": ["replica", "list", "dataset"],
58
+ "list-datasets-rse": ["replica", "list", "dataset", "--rse"],
59
+ "add-dataset": ["did", "add", "--type dataset"],
60
+ "add-container": ["did", "add", "--type container"],
61
+ "attach": ["did", "content", "add"],
62
+ "detach": ["did", "content", "remove"],
63
+ "ls": ["did", "list"],
64
+ "list-dids": ["did", "list"],
65
+ "list-parent-dids": ["did", "list", "--parent"],
66
+ "list-scopes": ["scope", "list"],
67
+ "close": ["did", "update", "--close"],
68
+ "reopen": ["did", "update", "--open"],
69
+ "stat": ["did", "show"],
70
+ "erase": ["did", "remove"],
71
+ "list-content": ["did", "content", "list"],
72
+ "list-content-history": ["did", "content", "history"],
73
+ "upload": ["upload"],
74
+ "get": ["download"],
75
+ "download": ["download"],
76
+ "get-metadata": ["did", "metadata", "list"],
77
+ "set-metadata": ["did", "metadata", "add"],
78
+ "delete-metadata": ["did", "metadata", "remove"],
79
+ "list-rse-usage": ["rse", "show"],
80
+ "list-account-usage": ["account", "limit", "list"],
81
+ "list-account-limits": ["account", "limit", "list"],
82
+ "add-rule": ["rule", "add"],
83
+ "delete-rule": ["rule", "remove"],
84
+ "rule-info": ["rule", "show"],
85
+ "list-rules": ["rule", "list"],
86
+ "list-rules-history": ["rule", "history"],
87
+ "update-rule": ["rule", "update"],
88
+ "move-rule": ["rule", "move"],
89
+ "list-rses": ["rse", "list"],
90
+ "list-suspicious-replicas": ["replica", "state", "suspicious"],
91
+ "list-rse-attributes": ["rse", "attribute", "list"],
92
+ "touch": ["did", "update", "--touch"],
93
+ "add-lifetime-exception": ["lifetime-exception", "add"],
94
+ }
95
+ new_command = command_map.get(command)
96
+
97
+ return new_command
98
+
99
+
100
+ if __name__ == "__main__":
101
+ commands = ("account", "config", "did", "replica", "rse", "rule", "scope", "subscription", "ping", "whoami", "test-server", "lifetime-exception", "upload", "download", "opendata")
102
+
103
+ parser = argparse.ArgumentParser(add_help=False)
104
+ # Check for legacy flag
105
+ parser.add_argument("--legacy", action="store_true")
106
+ # Check for commands in the new command list
107
+ parser.add_argument("-h", "--help", action="store_true")
108
+ parser.add_argument("--version", action="store_true")
109
+
110
+ args, _ = parser.parse_known_args()
111
+
112
+ logger = setup_logger(module_name=__name__)
113
+
114
+ if args.legacy:
115
+ make_warning(logger)
116
+ sys.argv.pop(sys.argv.index('--legacy'))
117
+ main_legacy()
118
+
119
+ elif (any(arg in commands for arg in sys.argv)) or args.help or args.version:
120
+ main() # pylint: disable=E1120
121
+
122
+ else:
123
+ try:
124
+ get_parser().parse_args()
125
+ make_warning(logger)
126
+ main_legacy()
127
+
128
+ # Make a custom warning - show the new help menu when invalid commands are called.
129
+ except argparse.ArgumentError:
130
+ logger.error("Invalid argument(s) - %s " % sys.argv[1:])
131
+ command = map_legacy_command()
132
+ if command is not None:
133
+ sys.argv = ["rucio"] + command + ["-h"]
134
+ else:
135
+ sys.argv = ["rucio", "-h"]
136
+
137
+ main() # pylint: disable=E1120
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright European Organization for Nuclear Research (CERN) since 2012
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ """
17
+ Abacus account is a daemon to update account counters.
18
+ """
19
+
20
+ import argparse
21
+ import signal
22
+
23
+ from rucio.daemons.abacus.account import run, stop
24
+
25
+
26
+ def get_parser():
27
+ """
28
+ Returns the argparse parser.
29
+ """
30
+ description = (
31
+ "The Abacus-Account daemon is responsible for updating account usages. "
32
+ "It checks if there are new entries in the UpdatedAccountCounter table "
33
+ "and updates the account counters in the AccountCounter table by adding "
34
+ "or subtracting the amount and size of files and recalculating the quotas."
35
+ )
36
+
37
+ parser = argparse.ArgumentParser(description=description, epilog='''
38
+ Upload a file::
39
+
40
+ $ rucio upload --rse MOCK --scope mock filename.txt
41
+
42
+ Check account usage::
43
+
44
+ $ rucio list-account-usage username
45
+ +-------+---------+---------+--------------+
46
+ | RSE | USAGE | LIMIT | QUOTA LEFT |
47
+ |-------+---------+---------+--------------|
48
+ +-------+---------+---------+--------------+
49
+
50
+ Run the daemon::
51
+
52
+ $ rucio-abacus-account --run-once
53
+
54
+ Check account usage again::
55
+
56
+ $ rucio list-account-usage username
57
+ +-------+------------+---------+--------------+
58
+ | RSE | USAGE | LIMIT | QUOTA LEFT |
59
+ |-------+------------+---------+--------------|
60
+ | MOCK | 211.724 kB | 0.000 B | 0.000 B |
61
+ +-------+------------+---------+--------------+
62
+
63
+ ''', formatter_class=argparse.RawDescriptionHelpFormatter)
64
+ parser.add_argument("--run-once", action="store_true", default=False, help='One iteration only')
65
+ parser.add_argument("--threads", action="store", default=1, type=int, help='Concurrency control: total number of threads on this process')
66
+ parser.add_argument("--enable-history", action="store_true", default=False, help='Record account usage into history table every hour.')
67
+ parser.add_argument('--sleep-time', action="store", default=10, type=int, help='Concurrency control: thread sleep time after each chunk of work')
68
+
69
+ return parser
70
+
71
+
72
+ if __name__ == "__main__":
73
+
74
+ signal.signal(signal.SIGTERM, stop)
75
+
76
+ parser = get_parser()
77
+ args = parser.parse_args()
78
+ try:
79
+ run(once=args.run_once, threads=args.threads, fill_history_table=args.enable_history, sleep_time=args.sleep_time)
80
+ except KeyboardInterrupt:
81
+ stop()
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright European Organization for Nuclear Research (CERN) since 2012
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ """
17
+ Abacus rse is a daemon to update rse counters.
18
+ """
19
+
20
+ import argparse
21
+ import signal
22
+
23
+ from rucio.daemons.abacus.rse import run, stop
24
+
25
+
26
+ def get_parser():
27
+ """
28
+ Returns the argparse parser.
29
+ """
30
+ description = (
31
+ "The Abacus-RSE daemon is responsible for updating RSE usages. "
32
+ "It checks if there are new entries in the UpdatedRSECounter table "
33
+ "and updates the RSE counter in the RSECounter table "
34
+ "by adding or subtracting the amount of files and the size."
35
+ )
36
+
37
+ parser = argparse.ArgumentParser(description=description, epilog='''
38
+ Upload a file to your RSE::
39
+
40
+ $ rucio upload --rse MOCK --scope mock filename.txt
41
+
42
+ Check RSE usage::
43
+
44
+ $ rucio list-rse-usage MOCK
45
+ USAGE:
46
+ ------
47
+ files: 0
48
+ used: 0.000 B
49
+ rse: MOCK
50
+ updated_at: 2018-11-30 14:28:34
51
+ source: rucio
52
+ ------
53
+
54
+ Run the daemon::
55
+
56
+ $ rucio-abacus-rse --run-once
57
+
58
+ Check RSE usage again::
59
+
60
+ $ rucio list-rse-usage MOCK
61
+ USAGE:
62
+ ------
63
+ files: 1
64
+ used: 213.481 kB
65
+ rse: MOCK
66
+ updated_at: 2018-12-03 08:58:33
67
+ source: rucio
68
+ ------
69
+ ''', formatter_class=argparse.RawDescriptionHelpFormatter)
70
+ parser.add_argument("--run-once", action="store_true", default=False, help='One iteration only')
71
+ parser.add_argument("--threads", action="store", default=1, type=int, help='Concurrency control: total number of threads on this process')
72
+ parser.add_argument("--enable-history", action="store_true", default=False, help='Record RSE usage into history table every hour.')
73
+ parser.add_argument('--sleep-time', action="store", default=10, type=int, help='Concurrency control: thread sleep time after each chunk of work')
74
+ return parser
75
+
76
+
77
+ if __name__ == "__main__":
78
+
79
+ signal.signal(signal.SIGTERM, stop)
80
+ parser = get_parser()
81
+ args = parser.parse_args()
82
+ try:
83
+ run(once=args.run_once, threads=args.threads, fill_history_table=args.enable_history, sleep_time=args.sleep_time)
84
+ except KeyboardInterrupt:
85
+ stop()
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env python
2
+ # Copyright European Organization for Nuclear Research (CERN) since 2012
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ import sys
17
+
18
+ from rucio.cli.bin_legacy.rucio_admin import main as main_legacy
19
+ from rucio.common.utils import setup_logger
20
+
21
+
22
+ def make_warning():
23
+ logger = setup_logger(module_name=__name__)
24
+
25
+ base_warning = "This method is being deprecated."
26
+ args = [arg for arg in sys.argv if arg[0] != "-" or arg in ("-h", "--help", "--version")]
27
+ try:
28
+ first_command = args[1]
29
+ except IndexError:
30
+ first_command = None
31
+ try:
32
+ second_command = args[2]
33
+ except IndexError:
34
+ second_command = "-h"
35
+
36
+ if (first_command not in ("-h", "--version", "--help")) and (first_command is not None):
37
+ command_map = {
38
+ "data": {"import": "upload", "export": "download"},
39
+ "account": {
40
+ "-h": "account -h",
41
+ "add": "account add",
42
+ "delete": "account remove",
43
+ "info": "account show",
44
+ "update": "account update",
45
+ "set-limits": "account limit add",
46
+ "get-limits": "account limit list",
47
+ "delete-limits": "account limit remove",
48
+ "ban": "account update --ban",
49
+ "unban": "account update --unban",
50
+ "list-attributes": "account attribute list",
51
+ "add-attribute": "account attribute add",
52
+ "delete-attribute": "account attribute remove",
53
+ },
54
+ "identity": {"-h": "account identity -h", "add": "account identity add", "delete": "account identity remove"},
55
+ "rse": {
56
+ "-h": "rse -h",
57
+ "add": "rse add",
58
+ "list": "rse list",
59
+ "update": "rse update",
60
+ "info": "rse show",
61
+ "set-attribute": "rse attribute add",
62
+ "delete-attribute": "rse attribute remove",
63
+ "delete-distance": "rse distance remove",
64
+ "get-distance": "rse distance show",
65
+ "set-distance": "rse distance update",
66
+ "get-attribute": "rse attribute list",
67
+ "add-protocol": "rse protocol add",
68
+ "delete-protocol": "rse protocol remove",
69
+ "delete": "rse remove",
70
+ "add-qos-policy": "rse qos add",
71
+ "add-distance": "rse distance add",
72
+ "delete-qos-policy": "rse qos remove",
73
+ "list-qos-policies": "rse qos list",
74
+ "set-limit": "rse limit add",
75
+ "delete-limit": "rse limit remove",
76
+ },
77
+ "scope": {"-h": "scope -h", "add": "scope add", "list": "scope list"},
78
+ "config": {"-h": "config -h", "get": "config list", "set": "config add", "delete": "config remove"},
79
+ "subscription": {"-h": "subscription -h", "add": "subscription add", "list": "subscription", "update": "subscription update", "reevaluate": "subscription touch"},
80
+ "replicas": {"-h": "replica -h", "quarantine": "replica state update quarantine", "declare-bad": "replica state update bad", "declare-temporary-unavailable": "replica state update unavailable", "set-tombstone": "replica remove"},
81
+ }
82
+ try:
83
+ new_command = command_map[first_command]
84
+ new_command = new_command[second_command]
85
+ except KeyError:
86
+ new_command = "-h"
87
+
88
+ warning = f"{base_warning} Please replace your command with `rucio {new_command}`"
89
+ else:
90
+ warning = base_warning + " Please view rucio -h for an updated help menu."
91
+
92
+ logger.warning(warning)
93
+
94
+
95
+ if __name__ == "__main__":
96
+ make_warning()
97
+ main_legacy()
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright European Organization for Nuclear Research (CERN) since 2012
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ """
17
+ Atropos Daemon : End the life of the rules according to the Lifetime Model
18
+ """
19
+
20
+ import argparse
21
+ import datetime
22
+ import signal
23
+
24
+ from rucio.daemons.atropos.atropos import run, stop
25
+
26
+
27
+ def get_parser() -> argparse.ArgumentParser:
28
+ """
29
+ Returns the argparse parser.
30
+ """
31
+ parser = argparse.ArgumentParser(description='The Atropos Daemon is responsible for the deletion of rules with expired eol_at (end the life at), according to the Lifetime Model. Once the rule is deleted, the replicas covered by the rule will not be protected anymore and eventually, will be deleted by another daemon.') # noqa E501
32
+ parser.add_argument("--run-once", action="store_true", default=False, help='Runs one loop iteration')
33
+ parser.add_argument("--dry-run", action="store_true", default=False, help='Dry run mode')
34
+ parser.add_argument("--threads", action="store", default=1, type=int, help='Concurrency control: number of threads')
35
+ parser.add_argument("--grace-period", action="store", default=86400, type=int, help='Grace period for the rules. In seconds !!!')
36
+ parser.add_argument("--date-check", action="store", help='Date when the lifetime model will be applied. Cannot be used for a date in the future if dry-run is not enabled',
37
+ default=datetime.datetime.utcnow(), type=lambda d: datetime.datetime.strptime(d, '%Y-%m-%d'))
38
+ parser.add_argument("--unlock-rules", action="store_true", default=False, help='Automatically unlock affected rules')
39
+ parser.add_argument("--spread-period", action="store", default=0, type=int, help='Set the rules to randomly expire over a period (in seconds). Uses a uniform distribution')
40
+ parser.add_argument("--purge-replicas", action="store_true", default=False, help='Set the replicas to be deleted instead of secondarised')
41
+ parser.add_argument('--sleep-time', action="store", default=60, type=int, help='Concurrency control: thread sleep time after each chunk of work')
42
+ return parser
43
+
44
+
45
+ if __name__ == "__main__":
46
+
47
+ # Bind our callback to the SIGTERM signal and run the daemon:
48
+ signal.signal(signal.SIGTERM, stop)
49
+
50
+ parser = get_parser()
51
+ args = parser.parse_args()
52
+ try:
53
+ run(threads=args.threads, date_check=args.date_check,
54
+ dry_run=args.dry_run, grace_period=args.grace_period,
55
+ once=args.run_once, unlock=args.unlock_rules,
56
+ spread_period=args.spread_period,
57
+ purge_replicas=args.purge_replicas,
58
+ sleep_time=args.sleep_time)
59
+ except KeyboardInterrupt:
60
+ stop()