rucio 37.3.0__py3-none-any.whl → 37.5.0__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 (128) hide show
  1. rucio/cli/rule.py +1 -1
  2. rucio/client/accountclient.py +205 -60
  3. rucio/client/accountlimitclient.py +84 -25
  4. rucio/client/baseclient.py +85 -48
  5. rucio/client/client.py +49 -41
  6. rucio/client/configclient.py +36 -13
  7. rucio/client/credentialclient.py +16 -6
  8. rucio/client/didclient.py +321 -133
  9. rucio/client/diracclient.py +13 -6
  10. rucio/client/downloadclient.py +435 -165
  11. rucio/client/exportclient.py +8 -2
  12. rucio/client/fileclient.py +10 -3
  13. rucio/client/importclient.py +4 -1
  14. rucio/client/lifetimeclient.py +48 -31
  15. rucio/client/lockclient.py +22 -7
  16. rucio/client/metaconventionsclient.py +59 -21
  17. rucio/client/pingclient.py +3 -1
  18. rucio/client/replicaclient.py +213 -96
  19. rucio/client/requestclient.py +124 -16
  20. rucio/client/rseclient.py +385 -160
  21. rucio/client/ruleclient.py +147 -51
  22. rucio/client/scopeclient.py +35 -10
  23. rucio/client/subscriptionclient.py +60 -27
  24. rucio/client/touchclient.py +16 -7
  25. rucio/common/constants.py +14 -17
  26. rucio/common/utils.py +18 -2
  27. rucio/core/permission/generic.py +40 -1
  28. rucio/core/replica.py +6 -6
  29. rucio/core/request.py +2 -2
  30. rucio/core/rule.py +5 -3
  31. rucio/core/transfer.py +4 -5
  32. rucio/daemons/conveyor/throttler.py +2 -1
  33. rucio/daemons/judge/evaluator.py +1 -1
  34. rucio/db/sqla/constants.py +3 -3
  35. rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +1 -1
  36. rucio/db/sqla/models.py +1 -1
  37. rucio/gateway/replica.py +129 -41
  38. rucio/gateway/request.py +177 -103
  39. rucio/gateway/subscription.py +90 -108
  40. rucio/rse/rsemanager.py +2 -2
  41. rucio/vcsversion.py +3 -3
  42. rucio/web/rest/flaskapi/v1/accountlimits.py +22 -22
  43. rucio/web/rest/flaskapi/v1/accounts.py +157 -157
  44. rucio/web/rest/flaskapi/v1/archives.py +10 -10
  45. rucio/web/rest/flaskapi/v1/auth.py +106 -106
  46. rucio/web/rest/flaskapi/v1/config.py +37 -37
  47. rucio/web/rest/flaskapi/v1/credentials.py +25 -25
  48. rucio/web/rest/flaskapi/v1/dids.py +381 -381
  49. rucio/web/rest/flaskapi/v1/dirac.py +8 -8
  50. rucio/web/rest/flaskapi/v1/export.py +6 -6
  51. rucio/web/rest/flaskapi/v1/heartbeats.py +14 -14
  52. rucio/web/rest/flaskapi/v1/identities.py +25 -25
  53. rucio/web/rest/flaskapi/v1/import.py +19 -19
  54. rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +54 -54
  55. rucio/web/rest/flaskapi/v1/locks.py +60 -60
  56. rucio/web/rest/flaskapi/v1/meta_conventions.py +29 -29
  57. rucio/web/rest/flaskapi/v1/nongrid_traces.py +4 -4
  58. rucio/web/rest/flaskapi/v1/ping.py +4 -4
  59. rucio/web/rest/flaskapi/v1/redirect.py +17 -17
  60. rucio/web/rest/flaskapi/v1/replicas.py +282 -282
  61. rucio/web/rest/flaskapi/v1/requests.py +424 -229
  62. rucio/web/rest/flaskapi/v1/rses.py +427 -427
  63. rucio/web/rest/flaskapi/v1/rules.py +129 -129
  64. rucio/web/rest/flaskapi/v1/scopes.py +21 -21
  65. rucio/web/rest/flaskapi/v1/subscriptions.py +122 -122
  66. rucio/web/rest/flaskapi/v1/traces.py +18 -18
  67. rucio/web/rest/flaskapi/v1/vos.py +32 -32
  68. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.template +0 -1
  69. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio_multi_vo.cfg.template +0 -1
  70. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/requirements.server.txt +1 -1
  71. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/METADATA +1 -1
  72. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/RECORD +128 -128
  73. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/WHEEL +1 -1
  74. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic.ini.template +0 -0
  75. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic_offline.ini.template +0 -0
  76. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/globus-config.yml.template +0 -0
  77. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/ldap.cfg.template +0 -0
  78. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
  79. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  80. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
  81. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  82. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
  83. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  84. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
  85. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
  86. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/bootstrap.py +0 -0
  87. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
  88. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/reset_database.py +0 -0
  89. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio +0 -0
  90. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-account +0 -0
  91. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-collection-replica +0 -0
  92. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-rse +0 -0
  93. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-admin +0 -0
  94. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-atropos +0 -0
  95. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-auditor +0 -0
  96. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-automatix +0 -0
  97. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-bb8 +0 -0
  98. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-cache-client +0 -0
  99. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-cache-consumer +0 -0
  100. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-finisher +0 -0
  101. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-poller +0 -0
  102. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-preparer +0 -0
  103. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-receiver +0 -0
  104. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-stager +0 -0
  105. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-submitter +0 -0
  106. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-throttler +0 -0
  107. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-dark-reaper +0 -0
  108. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-dumper +0 -0
  109. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-follower +0 -0
  110. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-hermes +0 -0
  111. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-cleaner +0 -0
  112. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-evaluator +0 -0
  113. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-injector +0 -0
  114. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-repairer +0 -0
  115. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-kronos +0 -0
  116. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-minos +0 -0
  117. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-minos-temporary-expiration +0 -0
  118. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-necromancer +0 -0
  119. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-oauth-manager +0 -0
  120. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-reaper +0 -0
  121. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-replica-recoverer +0 -0
  122. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-rse-decommissioner +0 -0
  123. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-storage-consistency-actions +0 -0
  124. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-transmogrifier +0 -0
  125. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-undertaker +0 -0
  126. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
  127. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/licenses/LICENSE +0 -0
  128. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/top_level.txt +0 -0
@@ -32,19 +32,19 @@ class MetaConventions(ErrorHandlingMethodView):
32
32
  - Meta
33
33
  responses:
34
34
  200:
35
- description: OK
35
+ description: "OK"
36
36
  content:
37
37
  application/json:
38
38
  schema:
39
39
  type: array
40
- description: List of all DID keys.
40
+ description: "List of all DID keys."
41
41
  items:
42
42
  type: string
43
- description: Data Itentifier key
43
+ description: "Data Itentifier key"
44
44
  401:
45
- description: Invalid Auth Token
45
+ description: "Invalid Auth Token"
46
46
  406:
47
- description: Not acceptable
47
+ description: "Not acceptable"
48
48
  """
49
49
  return jsonify(list_keys())
50
50
 
@@ -52,13 +52,13 @@ class MetaConventions(ErrorHandlingMethodView):
52
52
  """
53
53
  ---
54
54
  summary: Create key
55
- description: Creates a new allowed key (value is NULL).
55
+ description: "Creates a new allowed key (value is NULL)."
56
56
  tags:
57
57
  - Meta
58
58
  parameters:
59
59
  - name: key
60
60
  in: path
61
- description: The name of the key.
61
+ description: "The name of the key."
62
62
  schema:
63
63
  type: string
64
64
  style: simple
@@ -69,28 +69,28 @@ class MetaConventions(ErrorHandlingMethodView):
69
69
  type: object
70
70
  properties:
71
71
  key_type:
72
- description: The key type.
72
+ description: "The key type."
73
73
  type: string
74
74
  value_type:
75
- description: The value type.
75
+ description: "The value type."
76
76
  type: string
77
77
  value_regexp:
78
- description: The value regexpression.
78
+ description: "The value regexpression."
79
79
  type: string
80
80
  responses:
81
81
  201:
82
- description: OK
82
+ description: "OK"
83
83
  content:
84
84
  application/json:
85
85
  schema:
86
86
  type: string
87
87
  enum: ['Created']
88
88
  400:
89
- description: Cannot decode json parameter list / Unsupported value type.
89
+ description: "Cannot decode json parameter list / Unsupported value type."
90
90
  401:
91
- description: Invalid Auth Token.
91
+ description: "Invalid Auth Token."
92
92
  409:
93
- description: Key already exists.
93
+ description: "Key already exists."
94
94
  """
95
95
  parameters = json_parameters()
96
96
 
@@ -119,31 +119,31 @@ class Values(ErrorHandlingMethodView):
119
119
  """
120
120
  ---
121
121
  summary: Get value for key
122
- description: List all values for a key.
122
+ description: "List all values for a key."
123
123
  tags:
124
124
  - Meta
125
125
  parameters:
126
126
  - name: key
127
127
  in: path
128
- description: The reference key.
128
+ description: "The reference key."
129
129
  schema:
130
130
  type: string
131
131
  style: simple
132
132
  responses:
133
133
  200:
134
- description: OK
134
+ description: "OK"
135
135
  content:
136
136
  application/json:
137
137
  schema:
138
- description: List of all key values.
138
+ description: "List of all key values."
139
139
  type: array
140
140
  items:
141
141
  type: string
142
- description: A value associated with a key.
142
+ description: "A value associated with a key."
143
143
  401:
144
- description: Invalid Auth Token
144
+ description: "Invalid Auth Token"
145
145
  406:
146
- description: Not acceptable
146
+ description: "Not acceptable"
147
147
  """
148
148
  return jsonify(list_values(key=key))
149
149
 
@@ -151,13 +151,13 @@ class Values(ErrorHandlingMethodView):
151
151
  """
152
152
  ---
153
153
  summary: Create value for key
154
- description: Creates a new value for a key.
154
+ description: "Creates a new value for a key."
155
155
  tags:
156
156
  - Meta
157
157
  parameters:
158
158
  - name: key
159
159
  in: path
160
- description: The reference key.
160
+ description: "The reference key."
161
161
  schema:
162
162
  type: string
163
163
  style: simple
@@ -170,24 +170,24 @@ class Values(ErrorHandlingMethodView):
170
170
  - value
171
171
  properties:
172
172
  value:
173
- description: The new value associated with a key.
173
+ description: "The new value associated with a key."
174
174
  type: string
175
175
  responses:
176
176
  201:
177
- description: OK
177
+ description: "OK"
178
178
  content:
179
179
  application/json:
180
180
  schema:
181
181
  type: string
182
182
  enum: ['Created']
183
183
  400:
184
- description: Cannot decode json parameter list / Invalid value for key.
184
+ description: "Cannot decode json parameter list / Invalid value for key."
185
185
  401:
186
- description: Invalid Auth Token
186
+ description: "Invalid Auth Token"
187
187
  404:
188
- description: Key not found
188
+ description: "Key not found"
189
189
  409:
190
- description: Value already exists.
190
+ description: "Value already exists."
191
191
  """
192
192
  parameters = json_parameters()
193
193
  value = param_get(parameters, 'value')
@@ -42,7 +42,7 @@ class XAODTrace(ErrorHandlingMethodView):
42
42
  """
43
43
  ---
44
44
  summary: Trace endpoints
45
- description: Trace endpoint used by the XAOD framework to post data access information.
45
+ description: "Trace endpoint used by the XAOD framework to post data access information."
46
46
  tags:
47
47
  - Nongrid traces
48
48
  requestBody:
@@ -52,18 +52,18 @@ class XAODTrace(ErrorHandlingMethodView):
52
52
  type: object
53
53
  properties:
54
54
  payload:
55
- description: Dictionary containing the trace information.
55
+ description: "Dictionary containing the trace information."
56
56
  type: object
57
57
  responses:
58
58
  201:
59
- description: OK
59
+ description: "OK"
60
60
  content:
61
61
  application/json:
62
62
  schema:
63
63
  type: string
64
64
  enum: ["Created"]
65
65
  400:
66
- description: Cannot decode json data.
66
+ description: "Cannot decode json data."
67
67
  """
68
68
  headers = self.get_headers()
69
69
 
@@ -45,22 +45,22 @@ class Ping(ErrorHandlingMethodView):
45
45
  """
46
46
  ---
47
47
  summary: Ping
48
- description: Ping the server and get data about it.
48
+ description: "Ping the server and get data about it."
49
49
  tags:
50
50
  - Ping
51
51
  responses:
52
52
  200:
53
- description: OK
53
+ description: "OK"
54
54
  content:
55
55
  application/json:
56
56
  schema:
57
57
  type: object
58
58
  properties:
59
59
  version:
60
- description: The server version.
60
+ description: "The server version."
61
61
  type: string
62
62
  406:
63
- description: Not acceptable
63
+ description: "Not acceptable"
64
64
  """
65
65
  headers = self.get_headers()
66
66
  response = jsonify(version=version.version_string())
@@ -45,19 +45,19 @@ class MetaLinkRedirector(ErrorHandlingMethodView):
45
45
  """
46
46
  ---
47
47
  summary: Metalink redirect
48
- description: Get Metalink redirect.
48
+ description: "Get Metalink redirect."
49
49
  tags:
50
50
  - Redirect
51
51
  parameters:
52
52
  - name: scope_name
53
53
  in: path
54
- description: The data identifier (scope)/(name).
54
+ description: "The data identifier (scope)/(name)."
55
55
  schema:
56
56
  type: string
57
57
  style: simple
58
58
  - name: ip
59
59
  in: query
60
- description: The client ip.
60
+ description: "The client ip."
61
61
  schema:
62
62
  type: string
63
63
  style: simple
@@ -94,18 +94,18 @@ class MetaLinkRedirector(ErrorHandlingMethodView):
94
94
  required: false
95
95
  responses:
96
96
  200:
97
- description: OK
97
+ description: "OK"
98
98
  content:
99
99
  application/metalink4+xml:
100
100
  schema:
101
- description: The metalink file.
101
+ description: "The metalink file."
102
102
  type: string
103
103
  401:
104
- description: Invalid Auth Token
104
+ description: "Invalid Auth Token"
105
105
  404:
106
- description: Rse or did not found
106
+ description: "Rse or did not found"
107
107
  406:
108
- description: Not acceptable
108
+ description: "Not acceptable"
109
109
  """
110
110
  headers = self.get_headers()
111
111
 
@@ -197,19 +197,19 @@ class HeaderRedirector(ErrorHandlingMethodView):
197
197
  """
198
198
  ---
199
199
  summary: Header redirect
200
- description: Get the header redirect.
200
+ description: "Get the header redirect."
201
201
  tags:
202
202
  - Redirect
203
203
  parameters:
204
204
  - name: scope_name
205
205
  in: path
206
- description: The data identifier (scope)/(name).
206
+ description: "The data identifier (scope)/(name)."
207
207
  schema:
208
208
  type: string
209
209
  style: simple
210
210
  - name: ip
211
211
  in: query
212
- description: The client ip.
212
+ description: "The client ip."
213
213
  schema:
214
214
  type: string
215
215
  style: simple
@@ -252,18 +252,18 @@ class HeaderRedirector(ErrorHandlingMethodView):
252
252
  required: false
253
253
  responses:
254
254
  200:
255
- description: OK
255
+ description: "OK"
256
256
  303:
257
- description: OK
257
+ description: "OK"
258
258
  content:
259
259
  application/json:
260
260
  schema:
261
- description: The redirect url.
261
+ description: "The redirect url."
262
262
  type: string
263
263
  401:
264
- description: Invalid Auth Token
264
+ description: "Invalid Auth Token"
265
265
  404:
266
- description: Rse or did not found
266
+ description: "Rse or did not found"
267
267
  """
268
268
  headers = self.get_headers()
269
269
 
@@ -296,7 +296,7 @@ class HeaderRedirector(ErrorHandlingMethodView):
296
296
  vo = extract_vo(request.headers)
297
297
 
298
298
  replicas = list(
299
- list_replicas( # type: ignore (session parameter missing)
299
+ list_replicas(
300
300
  dids=[{'scope': scope, 'name': name, 'type': 'FILE'}],
301
301
  schemes=schemes,
302
302
  client_location=client_location,