rucio 37.7.1__py3-none-any.whl → 38.0.0rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rucio might be problematic. Click here for more details.

Files changed (121) hide show
  1. rucio/alembicrevision.py +1 -1
  2. rucio/cli/bin_legacy/rucio.py +51 -107
  3. rucio/cli/bin_legacy/rucio_admin.py +26 -26
  4. rucio/cli/command.py +1 -0
  5. rucio/cli/did.py +2 -2
  6. rucio/cli/opendata.py +132 -0
  7. rucio/cli/replica.py +15 -5
  8. rucio/cli/rule.py +7 -2
  9. rucio/cli/scope.py +3 -2
  10. rucio/cli/utils.py +28 -4
  11. rucio/client/baseclient.py +9 -1
  12. rucio/client/client.py +2 -0
  13. rucio/client/diracclient.py +73 -12
  14. rucio/client/opendataclient.py +249 -0
  15. rucio/client/subscriptionclient.py +30 -0
  16. rucio/client/uploadclient.py +10 -13
  17. rucio/common/constants.py +4 -1
  18. rucio/common/exception.py +55 -0
  19. rucio/common/plugins.py +45 -8
  20. rucio/common/schema/generic.py +5 -3
  21. rucio/common/schema/generic_multi_vo.py +4 -2
  22. rucio/common/types.py +8 -7
  23. rucio/common/utils.py +176 -11
  24. rucio/core/dirac.py +5 -5
  25. rucio/core/opendata.py +744 -0
  26. rucio/core/rule.py +63 -8
  27. rucio/core/transfer.py +1 -1
  28. rucio/db/sqla/constants.py +6 -0
  29. rucio/db/sqla/migrate_repo/versions/a62db546a1f1_opendata_initial_model.py +85 -0
  30. rucio/db/sqla/models.py +67 -0
  31. rucio/db/sqla/util.py +2 -2
  32. rucio/gateway/dirac.py +1 -1
  33. rucio/gateway/opendata.py +190 -0
  34. rucio/gateway/subscription.py +5 -3
  35. rucio/rse/protocols/protocol.py +9 -5
  36. rucio/rse/translation.py +17 -6
  37. rucio/transfertool/fts3.py +1 -0
  38. rucio/transfertool/fts3_plugins.py +6 -1
  39. rucio/vcsversion.py +4 -4
  40. rucio/web/rest/flaskapi/v1/common.py +34 -14
  41. rucio/web/rest/flaskapi/v1/config.py +1 -1
  42. rucio/web/rest/flaskapi/v1/dids.py +447 -160
  43. rucio/web/rest/flaskapi/v1/heartbeats.py +1 -1
  44. rucio/web/rest/flaskapi/v1/identities.py +1 -1
  45. rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +1 -1
  46. rucio/web/rest/flaskapi/v1/locks.py +1 -1
  47. rucio/web/rest/flaskapi/v1/main.py +3 -8
  48. rucio/web/rest/flaskapi/v1/meta_conventions.py +1 -16
  49. rucio/web/rest/flaskapi/v1/nongrid_traces.py +1 -1
  50. rucio/web/rest/flaskapi/v1/opendata.py +391 -0
  51. rucio/web/rest/flaskapi/v1/opendata_public.py +146 -0
  52. rucio/web/rest/flaskapi/v1/requests.py +1 -1
  53. rucio/web/rest/flaskapi/v1/rses.py +1 -1
  54. rucio/web/rest/flaskapi/v1/rules.py +1 -1
  55. rucio/web/rest/flaskapi/v1/scopes.py +1 -1
  56. rucio/web/rest/flaskapi/v1/subscriptions.py +6 -9
  57. rucio/web/rest/flaskapi/v1/traces.py +1 -1
  58. rucio/web/rest/flaskapi/v1/vos.py +1 -1
  59. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/alembic.ini.template +1 -1
  60. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/alembic_offline.ini.template +1 -1
  61. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/rucio.cfg.template +2 -2
  62. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/rucio_multi_vo.cfg.template +3 -3
  63. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/requirements.server.txt +6 -3
  64. rucio-38.0.0rc1.data/data/rucio/tools/reset_database.py +87 -0
  65. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio +2 -1
  66. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/METADATA +36 -36
  67. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/RECORD +119 -113
  68. rucio/client/fileclient.py +0 -57
  69. rucio-37.7.1.data/data/rucio/tools/reset_database.py +0 -40
  70. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/globus-config.yml.template +0 -0
  71. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/ldap.cfg.template +0 -0
  72. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
  73. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  74. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
  75. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  76. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
  77. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  78. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
  79. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
  80. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/tools/bootstrap.py +0 -0
  81. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
  82. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-abacus-account +0 -0
  83. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-abacus-collection-replica +0 -0
  84. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-abacus-rse +0 -0
  85. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-admin +0 -0
  86. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-atropos +0 -0
  87. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-auditor +0 -0
  88. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-automatix +0 -0
  89. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-bb8 +0 -0
  90. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-cache-client +0 -0
  91. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-cache-consumer +0 -0
  92. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-finisher +0 -0
  93. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-poller +0 -0
  94. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-preparer +0 -0
  95. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-receiver +0 -0
  96. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-stager +0 -0
  97. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-submitter +0 -0
  98. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-conveyor-throttler +0 -0
  99. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-dark-reaper +0 -0
  100. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-dumper +0 -0
  101. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-follower +0 -0
  102. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-hermes +0 -0
  103. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-judge-cleaner +0 -0
  104. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-judge-evaluator +0 -0
  105. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-judge-injector +0 -0
  106. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-judge-repairer +0 -0
  107. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-kronos +0 -0
  108. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-minos +0 -0
  109. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-minos-temporary-expiration +0 -0
  110. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-necromancer +0 -0
  111. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-oauth-manager +0 -0
  112. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-reaper +0 -0
  113. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-replica-recoverer +0 -0
  114. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-rse-decommissioner +0 -0
  115. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-storage-consistency-actions +0 -0
  116. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-transmogrifier +0 -0
  117. {rucio-37.7.1.data → rucio-38.0.0rc1.data}/scripts/rucio-undertaker +0 -0
  118. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/WHEEL +0 -0
  119. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/licenses/AUTHORS.rst +0 -0
  120. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/licenses/LICENSE +0 -0
  121. {rucio-37.7.1.dist-info → rucio-38.0.0rc1.dist-info}/top_level.txt +0 -0
rucio/core/dirac.py CHANGED
@@ -114,7 +114,7 @@ def add_files(
114
114
  for lfn in lfns:
115
115
  # First check if the file exists
116
116
  filename = lfn['lfn']
117
- lfn_scope, _ = extract_scope(filename, scopes)
117
+ lfn_scope, _ = extract_scope(filename, scopes, vo=vo)
118
118
  lfn_scope = InternalScope(lfn_scope, vo=vo)
119
119
 
120
120
  exists, did_type = _exists(lfn_scope, filename)
@@ -129,7 +129,7 @@ def add_files(
129
129
 
130
130
  # The parent must be a dataset. Register it as well as the rule
131
131
  dsn_name = lpns[0]
132
- dsn_scope, _ = extract_scope(dsn_name, scopes)
132
+ dsn_scope, _ = extract_scope(dsn_name, scopes, vo=vo)
133
133
  dsn_scope = InternalScope(dsn_scope, vo=vo)
134
134
  dsn_meta = parents_metadata.get(dsn_name, {})
135
135
 
@@ -162,7 +162,7 @@ def add_files(
162
162
  session=session)
163
163
  exist_lfn.append(dsn_name)
164
164
  parent_name = lpns[1]
165
- parent_scope, _ = extract_scope(parent_name, scopes)
165
+ parent_scope, _ = extract_scope(parent_name, scopes, vo=vo)
166
166
  parent_scope = InternalScope(parent_scope, vo=vo)
167
167
  attachments.append({'scope': parent_scope, 'name': parent_name, 'dids': [{'scope': dsn_scope, 'name': dsn_name}]})
168
168
  rule_extension_list.append((dsn_scope, dsn_name))
@@ -207,7 +207,7 @@ def add_files(
207
207
 
208
208
  # Now loop over the ascendants of the dataset and created them
209
209
  for lpn in lpns[1:]:
210
- child_scope, _ = extract_scope(lpn, scopes)
210
+ child_scope, _ = extract_scope(lpn, scopes, vo=vo)
211
211
  child_scope = InternalScope(child_scope, vo=vo)
212
212
  exists, did_type = _exists(child_scope, lpn)
213
213
  child_meta = parents_metadata.get(lpn, {})
@@ -228,7 +228,7 @@ def add_files(
228
228
  session=session)
229
229
  exist_lfn.append(lpn)
230
230
  parent_name = lpns[lpns.index(lpn) + 1]
231
- parent_scope, _ = extract_scope(parent_name, scopes)
231
+ parent_scope, _ = extract_scope(parent_name, scopes, vo=vo)
232
232
  parent_scope = InternalScope(parent_scope, vo=vo)
233
233
  attachments.append({'scope': parent_scope, 'name': parent_name, 'dids': [{'scope': child_scope, 'name': lpn}]})
234
234
  # Finally attach everything