rucio 37.4.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 (102) hide show
  1. rucio/client/downloadclient.py +1 -1
  2. rucio/client/requestclient.py +6 -5
  3. rucio/common/constants.py +14 -17
  4. rucio/common/utils.py +18 -2
  5. rucio/core/permission/generic.py +3 -0
  6. rucio/core/replica.py +1 -1
  7. rucio/core/request.py +2 -2
  8. rucio/core/transfer.py +4 -5
  9. rucio/daemons/conveyor/throttler.py +2 -1
  10. rucio/db/sqla/constants.py +3 -3
  11. rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +1 -1
  12. rucio/db/sqla/models.py +1 -1
  13. rucio/gateway/request.py +13 -12
  14. rucio/rse/rsemanager.py +2 -2
  15. rucio/vcsversion.py +3 -3
  16. rucio/web/rest/flaskapi/v1/accountlimits.py +22 -22
  17. rucio/web/rest/flaskapi/v1/accounts.py +157 -157
  18. rucio/web/rest/flaskapi/v1/archives.py +10 -10
  19. rucio/web/rest/flaskapi/v1/auth.py +106 -106
  20. rucio/web/rest/flaskapi/v1/config.py +37 -37
  21. rucio/web/rest/flaskapi/v1/credentials.py +25 -25
  22. rucio/web/rest/flaskapi/v1/dids.py +381 -381
  23. rucio/web/rest/flaskapi/v1/dirac.py +8 -8
  24. rucio/web/rest/flaskapi/v1/export.py +6 -6
  25. rucio/web/rest/flaskapi/v1/heartbeats.py +14 -14
  26. rucio/web/rest/flaskapi/v1/identities.py +25 -25
  27. rucio/web/rest/flaskapi/v1/import.py +19 -19
  28. rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +54 -54
  29. rucio/web/rest/flaskapi/v1/locks.py +60 -60
  30. rucio/web/rest/flaskapi/v1/meta_conventions.py +29 -29
  31. rucio/web/rest/flaskapi/v1/nongrid_traces.py +4 -4
  32. rucio/web/rest/flaskapi/v1/ping.py +4 -4
  33. rucio/web/rest/flaskapi/v1/redirect.py +16 -16
  34. rucio/web/rest/flaskapi/v1/replicas.py +281 -281
  35. rucio/web/rest/flaskapi/v1/requests.py +274 -270
  36. rucio/web/rest/flaskapi/v1/rses.py +427 -427
  37. rucio/web/rest/flaskapi/v1/rules.py +129 -129
  38. rucio/web/rest/flaskapi/v1/scopes.py +21 -21
  39. rucio/web/rest/flaskapi/v1/subscriptions.py +113 -113
  40. rucio/web/rest/flaskapi/v1/traces.py +18 -18
  41. rucio/web/rest/flaskapi/v1/vos.py +32 -32
  42. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/requirements.server.txt +1 -1
  43. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/METADATA +1 -1
  44. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/RECORD +102 -102
  45. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/WHEEL +1 -1
  46. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic.ini.template +0 -0
  47. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic_offline.ini.template +0 -0
  48. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/globus-config.yml.template +0 -0
  49. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/ldap.cfg.template +0 -0
  50. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
  51. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  52. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
  53. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  54. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
  55. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  56. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
  57. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
  58. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.template +0 -0
  59. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio_multi_vo.cfg.template +0 -0
  60. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/bootstrap.py +0 -0
  61. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
  62. {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/reset_database.py +0 -0
  63. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio +0 -0
  64. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-account +0 -0
  65. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-collection-replica +0 -0
  66. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-rse +0 -0
  67. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-admin +0 -0
  68. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-atropos +0 -0
  69. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-auditor +0 -0
  70. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-automatix +0 -0
  71. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-bb8 +0 -0
  72. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-cache-client +0 -0
  73. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-cache-consumer +0 -0
  74. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-finisher +0 -0
  75. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-poller +0 -0
  76. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-preparer +0 -0
  77. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-receiver +0 -0
  78. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-stager +0 -0
  79. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-submitter +0 -0
  80. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-throttler +0 -0
  81. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-dark-reaper +0 -0
  82. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-dumper +0 -0
  83. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-follower +0 -0
  84. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-hermes +0 -0
  85. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-cleaner +0 -0
  86. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-evaluator +0 -0
  87. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-injector +0 -0
  88. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-repairer +0 -0
  89. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-kronos +0 -0
  90. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-minos +0 -0
  91. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-minos-temporary-expiration +0 -0
  92. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-necromancer +0 -0
  93. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-oauth-manager +0 -0
  94. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-reaper +0 -0
  95. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-replica-recoverer +0 -0
  96. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-rse-decommissioner +0 -0
  97. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-storage-consistency-actions +0 -0
  98. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-transmogrifier +0 -0
  99. {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-undertaker +0 -0
  100. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
  101. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/licenses/LICENSE +0 -0
  102. {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/top_level.txt +0 -0
@@ -18,10 +18,11 @@ from typing import TYPE_CHECKING, Union, cast
18
18
  import flask
19
19
  from flask import Flask, Response
20
20
 
21
+ from rucio.common.constants import TransferLimitDirection
21
22
  from rucio.common.exception import AccessDenied, RequestNotFound
22
23
  from rucio.common.utils import APIEncoder, render_json
23
24
  from rucio.core.rse import get_rses_with_attribute_value
24
- from rucio.db.sqla.constants import RequestState, TransferLimitDirection
25
+ from rucio.db.sqla.constants import RequestState
25
26
  from rucio.gateway import request
26
27
  from rucio.web.rest.flaskapi.authenticated_bp import AuthenticatedBlueprint
27
28
  from rucio.web.rest.flaskapi.v1.common import ErrorHandlingMethodView, check_accept_header_wrapper_flask, generate_http_error_flask, json_parameters, param_get, parse_scope_name, response_headers, try_stream
@@ -38,144 +39,144 @@ class RequestGet(ErrorHandlingMethodView):
38
39
  """
39
40
  ---
40
41
  summary: Get Request
41
- description: Get a request for a given DID to a destination RSE.
42
+ description: "Get a request for a given DID to a destination RSE."
42
43
  tags:
43
44
  - Requests
44
45
  parameters:
45
46
  - name: scope_name
46
47
  in: path
47
- description: Data identifier (scope)/(name).
48
+ description: "Data identifier (scope)/(name)."
48
49
  schema:
49
50
  type: string
50
51
  style: simple
51
52
  - name: rse
52
53
  in: path
53
- description: Destination rse.
54
+ description: "Destination rse."
54
55
  schema:
55
56
  type: string
56
57
  style: simple
57
58
  responses:
58
59
  200:
59
- description: OK
60
+ description: "OK"
60
61
  content:
61
62
  application/json:
62
63
  schema:
63
- description: The request associated with the DID and destination RSE.
64
+ description: "The request associated with the DID and destination RSE."
64
65
  type: object
65
66
  properties:
66
67
  id:
67
- description: The id of the request.
68
+ description: "The id of the request."
68
69
  type: string
69
70
  request_type:
70
- description: The request type.
71
+ description: "The request type."
71
72
  type: string
72
73
  enum: ["T", "U", "D", "I", "O"]
73
74
  scope:
74
- description: The scope of the transfer.
75
+ description: "The scope of the transfer."
75
76
  type: string
76
77
  name:
77
- description: The name of the transfer.
78
+ description: "The name of the transfer."
78
79
  type: string
79
80
  did_type:
80
- description: The did type.
81
+ description: "The did type."
81
82
  type: string
82
83
  dest_rse_id:
83
- description: The destination RSE id.
84
+ description: "The destination RSE id."
84
85
  type: string
85
86
  source_rse_id:
86
- description: The source RSE id.
87
+ description: "The source RSE id."
87
88
  type: string
88
89
  attributes:
89
- description: All attributes associated with the request.
90
+ description: "All attributes associated with the request."
90
91
  type: string
91
92
  state:
92
- description: The state of the request.
93
+ description: "The state of the request."
93
94
  type: string
94
95
  enum: ["Q", "G", "S", "F", "D", "L", "N", "O", "A", "M", "U", "W", "P"]
95
96
  external_id:
96
- description: External id of the request.
97
+ description: "External id of the request."
97
98
  type: string
98
99
  external_host:
99
- description: External host of the request.
100
+ description: "External host of the request."
100
101
  type: string
101
102
  retry_count:
102
- description: The numbers of attempted retires.
103
+ description: "The numbers of attempted retries."
103
104
  type: integer
104
105
  err_msg:
105
- description: An error message if one occurred.
106
+ description: "An error message if one occurred."
106
107
  type: string
107
108
  previous_attempt_id:
108
- description: The id of the previous attempt.
109
+ description: "The id of the previous attempt."
109
110
  type: string
110
111
  rule_id:
111
- description: The id of the associated replication rule.
112
+ description: "The id of the associated replication rule."
112
113
  type: string
113
114
  activity:
114
- description: The activity of the request.
115
+ description: "The activity of the request."
115
116
  type: string
116
117
  bytes:
117
- description: The size of the did in bytes.
118
+ description: "The size of the did in bytes."
118
119
  type: integer
119
120
  md5:
120
- description: The md5 checksum of the did to transfer.
121
+ description: "The md5 checksum of the did to transfer."
121
122
  type: string
122
123
  adler32:
123
- description: The adler32 checksum of the did to transfer.
124
+ description: "The adler32 checksum of the did to transfer."
124
125
  type: string
125
126
  dest_url:
126
- description: The destination url.
127
+ description: "The destination url."
127
128
  type: string
128
129
  submitted_at:
129
- description: The time the request got submitted.
130
+ description: "The time the request got submitted."
130
131
  type: string
131
132
  started_at:
132
- description: The time the request got started.
133
+ description: "The time the request got started."
133
134
  type: string
134
135
  transferred_at:
135
- description: The time the request got transferred.
136
+ description: "The time the request got transferred."
136
137
  type: string
137
138
  estimated_at:
138
- description: The time the request got estimated.
139
+ description: "The time the request got estimated."
139
140
  type: string
140
141
  submitter_id:
141
- description: The id of the submitter.
142
+ description: "The id of the submitter."
142
143
  type: string
143
144
  estimated_stated_at:
144
- description: The estimation of the started at value.
145
+ description: "The estimation of the started at value."
145
146
  type: string
146
147
  estimated_transferred_at:
147
- description: The estimation of the transferred at value.
148
+ description: "The estimation of the transferred at value."
148
149
  type: string
149
150
  staging_started_at:
150
- description: The time the staging got started.
151
+ description: "The time the staging got started."
151
152
  type: string
152
153
  staging_finished_at:
153
- description: The time the staging got finished.
154
+ description: "The time the staging got finished."
154
155
  type: string
155
156
  account:
156
- description: The account which issued the request.
157
+ description: "The account which issued the request."
157
158
  type: string
158
159
  requested_at:
159
- description: The time the request got requested.
160
+ description: "The time the request got requested."
160
161
  type: string
161
162
  priority:
162
- description: The priority of the request.
163
+ description: "The priority of the request."
163
164
  type: integer
164
165
  transfertool:
165
- description: The transfertool used.
166
+ description: "The transfertool used."
166
167
  type: string
167
168
  source_rse:
168
- description: The name of the source RSE.
169
+ description: "The name of the source RSE."
169
170
  type: string
170
171
  dest_rse:
171
- description: The name of the destination RSE.
172
+ description: "The name of the destination RSE."
172
173
  type: string
173
174
  401:
174
- description: Invalid Auth Token
175
+ description: "Invalid Auth Token"
175
176
  404:
176
- description: Not found
177
+ description: "Not found"
177
178
  406:
178
- description: Not acceptable
179
+ description: "Not acceptable"
179
180
  """
180
181
  try:
181
182
  scope, name = parse_scope_name(scope_name, flask.request.environ['vo'])
@@ -203,144 +204,144 @@ class RequestHistoryGet(ErrorHandlingMethodView):
203
204
  """
204
205
  ---
205
206
  summary: Get Historical Request
206
- description: List a historical request for a given DID to a destination RSE.
207
+ description: "List a historical request for a given DID to a destination RSE."
207
208
  tags:
208
209
  - Requests
209
210
  parameters:
210
211
  - name: scope_name
211
212
  in: path
212
- description: Data identifier (scope)/(name).
213
+ description: "Data identifier (scope)/(name)."
213
214
  schema:
214
215
  type: string
215
216
  style: simple
216
217
  - name: rse
217
218
  in: path
218
- description: Destination rse.
219
+ description: "Destination rse."
219
220
  schema:
220
221
  type: string
221
222
  style: simple
222
223
  responses:
223
224
  200:
224
- description: OK
225
+ description: "OK"
225
226
  content:
226
227
  application/json:
227
228
  schema:
228
- description: The request associated with the DID and destination RSE.
229
+ description: "The request associated with the DID and destination RSE."
229
230
  type: object
230
231
  properties:
231
232
  id:
232
- description: The id of the request.
233
+ description: "The id of the request."
233
234
  type: string
234
235
  request_type:
235
- description: The request type.
236
+ description: "The request type."
236
237
  type: string
237
238
  enum: ["T", "U", "D", "I", "O"]
238
239
  scope:
239
- description: The scope of the transfer.
240
+ description: "The scope of the transfer."
240
241
  type: string
241
242
  name:
242
- description: The name of the transfer.
243
+ description: "The name of the transfer."
243
244
  type: string
244
245
  did_type:
245
- description: The did type.
246
+ description: "The did type."
246
247
  type: string
247
248
  dest_rse_id:
248
- description: The destination RSE id.
249
+ description: "The destination RSE id."
249
250
  type: string
250
251
  source_rse_id:
251
- description: The source RSE id.
252
+ description: "The source RSE id."
252
253
  type: string
253
254
  attributes:
254
- description: All attributes associated with the request.
255
+ description: "All attributes associated with the request."
255
256
  type: string
256
257
  state:
257
- description: The state of the request.
258
+ description: "The state of the request."
258
259
  type: string
259
260
  enum: ["Q", "G", "S", "F", "D", "L", "N", "O", "A", "M", "U", "W", "P"]
260
261
  external_id:
261
- description: External id of the request.
262
+ description: "External id of the request."
262
263
  type: string
263
264
  external_host:
264
- description: External host of the request.
265
+ description: "External host of the request."
265
266
  type: string
266
267
  retry_count:
267
- description: The numbers of attempted retires.
268
+ description: "The numbers of attempted retries."
268
269
  type: integer
269
270
  err_msg:
270
- description: An error message if one occurred.
271
+ description: "An error message if one occurred."
271
272
  type: string
272
273
  previous_attempt_id:
273
- description: The id of the previous attempt.
274
+ description: "The id of the previous attempt."
274
275
  type: string
275
276
  rule_id:
276
- description: The id of the associated replication rule.
277
+ description: "The id of the associated replication rule."
277
278
  type: string
278
279
  activity:
279
- description: The activity of the request.
280
+ description: "The activity of the request."
280
281
  type: string
281
282
  bytes:
282
- description: The size of the did in bytes.
283
+ description: "The size of the did in bytes."
283
284
  type: integer
284
285
  md5:
285
- description: The md5 checksum of the did to transfer.
286
+ description: "The md5 checksum of the did to transfer."
286
287
  type: string
287
288
  adler32:
288
- description: The adler32 checksum of the did to transfer.
289
+ description: "The adler32 checksum of the did to transfer."
289
290
  type: string
290
291
  dest_url:
291
- description: The destination url.
292
+ description: "The destination url."
292
293
  type: string
293
294
  submitted_at:
294
- description: The time the request got submitted.
295
+ description: "The time the request got submitted."
295
296
  type: string
296
297
  started_at:
297
- description: The time the request got started.
298
+ description: "The time the request got started."
298
299
  type: string
299
300
  transferred_at:
300
- description: The time the request got transferred.
301
+ description: "The time the request got transferred."
301
302
  type: string
302
303
  estimated_at:
303
- description: The time the request got estimated.
304
+ description: "The time the request got estimated."
304
305
  type: string
305
306
  submitter_id:
306
- description: The id of the submitter.
307
+ description: "The id of the submitter."
307
308
  type: string
308
309
  estimated_stated_at:
309
- description: The estimation of the started at value.
310
+ description: "The estimation of the started at value."
310
311
  type: string
311
312
  estimated_transferred_at:
312
- description: The estimation of the transferred at value.
313
+ description: "The estimation of the transferred at value."
313
314
  type: string
314
315
  staging_started_at:
315
- description: The time the staging got started.
316
+ description: "The time the staging got started."
316
317
  type: string
317
318
  staging_finished_at:
318
- description: The time the staging got finished.
319
+ description: "The time the staging got finished."
319
320
  type: string
320
321
  account:
321
- description: The account which issued the request.
322
+ description: "The account which issued the request."
322
323
  type: string
323
324
  requested_at:
324
- description: The time the request got requested.
325
+ description: "The time the request got requested."
325
326
  type: string
326
327
  priority:
327
- description: The priority of the request.
328
+ description: "The priority of the request."
328
329
  type: integer
329
330
  transfertool:
330
- description: The transfertool used.
331
+ description: "The transfertool used."
331
332
  type: string
332
333
  source_rse:
333
- description: The name of the source RSE.
334
+ description: "The name of the source RSE."
334
335
  type: string
335
336
  dest_rse:
336
- description: The name of the destination RSE.
337
+ description: "The name of the destination RSE."
337
338
  type: string
338
339
  401:
339
- description: Invalid Auth Token
340
+ description: "Invalid Auth Token"
340
341
  404:
341
- description: Not found
342
+ description: "Not found"
342
343
  406:
343
- description: Not acceptable
344
+ description: "Not acceptable"
344
345
  """
345
346
  try:
346
347
  scope, name = parse_scope_name(scope_name, flask.request.environ['vo'])
@@ -368,13 +369,13 @@ class RequestList(ErrorHandlingMethodView):
368
369
  """
369
370
  ---
370
371
  summary: List Requests
371
- description: List requests for a given source and destination RSE or site.
372
+ description: "List requests for a given source and destination RSE or site."
372
373
  tags:
373
374
  - Requests
374
375
  parameters:
375
376
  - name: src_rse
376
377
  in: query
377
- description: The source rse.
378
+ description: "The source rse."
378
379
  schema:
379
380
  type: array
380
381
  items:
@@ -383,11 +384,11 @@ class RequestList(ErrorHandlingMethodView):
383
384
  - rse_id
384
385
  properties:
385
386
  rse_id:
386
- description: The id of the rse.
387
+ description: "The id of the rse."
387
388
  type: string
388
389
  - name: dest_rse
389
390
  in: query
390
- description: The destination rse.
391
+ description: "The destination rse."
391
392
  schema:
392
393
  type: array
393
394
  items:
@@ -396,148 +397,148 @@ class RequestList(ErrorHandlingMethodView):
396
397
  - rse_id
397
398
  properties:
398
399
  rse_id:
399
- description: The id of the rse.
400
+ description: "The id of the rse."
400
401
  type: string
401
402
  - name: src_site
402
403
  in: query
403
- description: The source site.
404
+ description: "The source site."
404
405
  schema:
405
406
  type: string
406
407
  - name: dest_site
407
408
  in: query
408
- description: The destination site.
409
+ description: "The destination site."
409
410
  schema:
410
411
  type: string
411
412
  - name: request_states
412
413
  in: query
413
- description: The accepted request states. Delimited by comma.
414
+ description: "The accepted request states. Delimited by comma."
414
415
  schema:
415
416
  type: string
416
417
  responses:
417
418
  200:
418
- description: OK
419
+ description: "OK"
419
420
  content:
420
421
  application/x-json-stream:
421
422
  schema:
422
- description: All requests matching the arguments. Separated by the new line character.
423
+ description: "All requests matching the arguments. Separated by the new line character."
423
424
  type: array
424
425
  items:
425
- description: A request.
426
+ description: "A request."
426
427
  type: object
427
428
  properties:
428
429
  id:
429
- description: The id of the request.
430
+ description: "The id of the request."
430
431
  type: string
431
432
  request_type:
432
- description: The request type.
433
+ description: "The request type."
433
434
  type: string
434
435
  enum: ["T", "U", "D", "I", "O"]
435
436
  scope:
436
- description: The scope of the transfer.
437
+ description: "The scope of the transfer."
437
438
  type: string
438
439
  name:
439
- description: The name of the transfer.
440
+ description: "The name of the transfer."
440
441
  type: string
441
442
  did_type:
442
- description: The did type.
443
+ description: "The did type."
443
444
  type: string
444
445
  dest_rse_id:
445
- description: The destination RSE id.
446
+ description: "The destination RSE id."
446
447
  type: string
447
448
  source_rse_id:
448
- description: The source RSE id.
449
+ description: "The source RSE id."
449
450
  type: string
450
451
  attributes:
451
- description: All attributes associated with the request.
452
+ description: "All attributes associated with the request."
452
453
  type: string
453
454
  state:
454
- description: The state of the request.
455
+ description: "The state of the request."
455
456
  type: string
456
457
  enum: ["Q", "G", "S", "F", "D", "L", "N", "O", "A", "M", "U", "W", "P"]
457
458
  external_id:
458
- description: External id of the request.
459
+ description: "External id of the request."
459
460
  type: string
460
461
  external_host:
461
- description: External host of the request.
462
+ description: "External host of the request."
462
463
  type: string
463
464
  retry_count:
464
- description: The numbers of attempted retires.
465
+ description: "The numbers of attempted retries."
465
466
  type: integer
466
467
  err_msg:
467
- description: An error message if one occurred.
468
+ description: "An error message if one occurred."
468
469
  type: string
469
470
  previous_attempt_id:
470
- description: The id of the previous attempt.
471
+ description: "The id of the previous attempt."
471
472
  type: string
472
473
  rule_id:
473
- description: The id of the associated replication rule.
474
+ description: "The id of the associated replication rule."
474
475
  type: string
475
476
  activity:
476
- description: The activity of the request.
477
+ description: "The activity of the request."
477
478
  type: string
478
479
  bytes:
479
- description: The size of the did in bytes.
480
+ description: "The size of the did in bytes."
480
481
  type: integer
481
482
  md5:
482
- description: The md5 checksum of the did to transfer.
483
+ description: "The md5 checksum of the did to transfer."
483
484
  type: string
484
485
  adler32:
485
- description: The adler32 checksum of the did to transfer.
486
+ description: "The adler32 checksum of the did to transfer."
486
487
  type: string
487
488
  dest_url:
488
- description: The destination url.
489
+ description: "The destination url."
489
490
  type: string
490
491
  submitted_at:
491
- description: The time the request got submitted.
492
+ description: "The time the request got submitted."
492
493
  type: string
493
494
  started_at:
494
- description: The time the request got started.
495
+ description: "The time the request got started."
495
496
  type: string
496
497
  transferred_at:
497
- description: The time the request got transferred.
498
+ description: "The time the request got transferred."
498
499
  type: string
499
500
  estimated_at:
500
- description: The time the request got estimated.
501
+ description: "The time the request got estimated."
501
502
  type: string
502
503
  submitter_id:
503
- description: The id of the submitter.
504
+ description: "The id of the submitter."
504
505
  type: string
505
506
  estimated_stated_at:
506
- description: The estimation of the started at value.
507
+ description: "The estimation of the started at value."
507
508
  type: string
508
509
  estimated_transferred_at:
509
- description: The estimation of the transferred at value.
510
+ description: "The estimation of the transferred at value."
510
511
  type: string
511
512
  staging_started_at:
512
- description: The time the staging got started.
513
+ description: "The time the staging got started."
513
514
  type: string
514
515
  staging_finished_at:
515
- description: The time the staging got finished.
516
+ description: "The time the staging got finished."
516
517
  type: string
517
518
  account:
518
- description: The account which issued the request.
519
+ description: "The account which issued the request."
519
520
  type: string
520
521
  requested_at:
521
- description: The time the request got requested.
522
+ description: "The time the request got requested."
522
523
  type: string
523
524
  priority:
524
- description: The priority of the request.
525
+ description: "The priority of the request."
525
526
  type: integer
526
527
  transfertool:
527
- description: The transfertool used.
528
+ description: "The transfertool used."
528
529
  type: string
529
530
  source_rse:
530
- description: The name of the source RSE.
531
+ description: "The name of the source RSE."
531
532
  type: string
532
533
  dest_rse:
533
- description: The name of the destination RSE.
534
+ description: "The name of the destination RSE."
534
535
  type: string
535
536
  401:
536
- description: Invalid Auth Token
537
+ description: "Invalid Auth Token"
537
538
  404:
538
- description: Not found
539
+ description: "Not found"
539
540
  406:
540
- description: Not acceptable
541
+ description: "Not acceptable"
541
542
  """
542
543
  src_rse = flask.request.args.get('src_rse', default=None)
543
544
  dst_rse = flask.request.args.get('dst_rse', default=None)
@@ -595,13 +596,13 @@ class RequestHistoryList(ErrorHandlingMethodView):
595
596
  """
596
597
  ---
597
598
  summary: List Historic Requests
598
- description: List historical requests for a given source and destination RSE or site.
599
+ description: "List historical requests for a given source and destination RSE or site."
599
600
  tags:
600
601
  - Requests
601
602
  parameters:
602
603
  - name: src_rse
603
604
  in: query
604
- description: The source rse.
605
+ description: "The source rse."
605
606
  schema:
606
607
  type: array
607
608
  items:
@@ -610,11 +611,11 @@ class RequestHistoryList(ErrorHandlingMethodView):
610
611
  - rse_id
611
612
  properties:
612
613
  rse_id:
613
- description: The id of the rse.
614
+ description: "The id of the rse."
614
615
  type: string
615
616
  - name: dest_rse
616
617
  in: query
617
- description: The destination rse.
618
+ description: "The destination rse."
618
619
  schema:
619
620
  type: array
620
621
  items:
@@ -623,160 +624,160 @@ class RequestHistoryList(ErrorHandlingMethodView):
623
624
  - rse_id
624
625
  properties:
625
626
  rse_id:
626
- description: The id of the rse.
627
+ description: "The id of the rse."
627
628
  type: string
628
629
  - name: src_site
629
630
  in: query
630
- description: The source site.
631
+ description: "The source site."
631
632
  schema:
632
633
  type: string
633
634
  - name: dest_site
634
635
  in: query
635
- description: The destination site.
636
+ description: "The destination site."
636
637
  schema:
637
638
  type: string
638
639
  - name: request_states
639
640
  in: query
640
- description: The accepted request states. Delimited by comma.
641
+ description: "The accepted request states. Delimited by comma."
641
642
  schema:
642
643
  type: string
643
644
  - name: offset
644
645
  in: query
645
- description: The offset of the list.
646
+ description: "The offset of the list."
646
647
  schema:
647
648
  type: integer
648
649
  default: 0
649
650
  - name: limit
650
651
  in: query
651
- description: The maximum number of items to return.
652
+ description: "The maximum number of items to return."
652
653
  schema:
653
654
  type: integer
654
655
  default: 100
655
656
  responses:
656
657
  200:
657
- description: OK
658
+ description: "OK"
658
659
  content:
659
660
  application/x-json-stream:
660
661
  schema:
661
- description: All requests matching the arguments. Separated by a new line character.
662
+ description: "All requests matching the arguments. Separated by a new line character."
662
663
  type: array
663
664
  items:
664
- description: A request.
665
+ description: "A request."
665
666
  type: object
666
667
  properties:
667
668
  id:
668
- description: The id of the request.
669
+ description: "The id of the request."
669
670
  type: string
670
671
  request_type:
671
- description: The request type.
672
+ description: "The request type."
672
673
  type: string
673
674
  enum: ["T", "U", "D", "I", "O"]
674
675
  scope:
675
- description: The scope of the transfer.
676
+ description: "The scope of the transfer."
676
677
  type: string
677
678
  name:
678
- description: The name of the transfer.
679
+ description: "The name of the transfer."
679
680
  type: string
680
681
  did_type:
681
- description: The did type.
682
+ description: "The did type."
682
683
  type: string
683
684
  dest_rse_id:
684
- description: The destination RSE id.
685
+ description: "The destination RSE id."
685
686
  type: string
686
687
  source_rse_id:
687
- description: The source RSE id.
688
+ description: "The source RSE id."
688
689
  type: string
689
690
  attributes:
690
- description: All attributes associated with the request.
691
+ description: "All attributes associated with the request."
691
692
  type: string
692
693
  state:
693
- description: The state of the request.
694
+ description: "The state of the request."
694
695
  type: string
695
696
  enum: ["Q", "G", "S", "F", "D", "L", "N", "O", "A", "M", "U", "W", "P"]
696
697
  external_id:
697
- description: External id of the request.
698
+ description: "External id of the request."
698
699
  type: string
699
700
  external_host:
700
- description: External host of the request.
701
+ description: "External host of the request."
701
702
  type: string
702
703
  retry_count:
703
- description: The numbers of attempted retires.
704
+ description: "The numbers of attempted retries."
704
705
  type: integer
705
706
  err_msg:
706
- description: An error message if one occurred.
707
+ description: "An error message if one occurred."
707
708
  type: string
708
709
  previous_attempt_id:
709
- description: The id of the previous attempt.
710
+ description: "The id of the previous attempt."
710
711
  type: string
711
712
  rule_id:
712
- description: The id of the associated replication rule.
713
+ description: "The id of the associated replication rule."
713
714
  type: string
714
715
  activity:
715
- description: The activity of the request.
716
+ description: "The activity of the request."
716
717
  type: string
717
718
  bytes:
718
- description: The size of the did in bytes.
719
+ description: "The size of the did in bytes."
719
720
  type: integer
720
721
  md5:
721
- description: The md5 checksum of the did to transfer.
722
+ description: "The md5 checksum of the did to transfer."
722
723
  type: string
723
724
  adler32:
724
- description: The adler32 checksum of the did to transfer.
725
+ description: "The adler32 checksum of the did to transfer."
725
726
  type: string
726
727
  dest_url:
727
- description: The destination url.
728
+ description: "The destination url."
728
729
  type: string
729
730
  submitted_at:
730
- description: The time the request got submitted.
731
+ description: "The time the request got submitted."
731
732
  type: string
732
733
  started_at:
733
- description: The time the request got started.
734
+ description: "The time the request got started."
734
735
  type: string
735
736
  transferred_at:
736
- description: The time the request got transferred.
737
+ description: "The time the request got transferred."
737
738
  type: string
738
739
  estimated_at:
739
- description: The time the request got estimated.
740
+ description: "The time the request got estimated."
740
741
  type: string
741
742
  submitter_id:
742
- description: The id of the submitter.
743
+ description: "The id of the submitter."
743
744
  type: string
744
745
  estimated_stated_at:
745
- description: The estimation of the started at value.
746
+ description: "The estimation of the started at value."
746
747
  type: string
747
748
  estimated_transferred_at:
748
- description: The estimation of the transferred at value.
749
+ description: "The estimation of the transferred at value."
749
750
  type: string
750
751
  staging_started_at:
751
- description: The time the staging got started.
752
+ description: "The time the staging got started."
752
753
  type: string
753
754
  staging_finished_at:
754
- description: The time the staging got finished.
755
+ description: "The time the staging got finished."
755
756
  type: string
756
757
  account:
757
- description: The account which issued the request.
758
+ description: "The account which issued the request."
758
759
  type: string
759
760
  requested_at:
760
- description: The time the request got requested.
761
+ description: "The time the request got requested."
761
762
  type: string
762
763
  priority:
763
- description: The priority of the request.
764
+ description: "The priority of the request."
764
765
  type: integer
765
766
  transfertool:
766
- description: The transfertool used.
767
+ description: "The transfertool used."
767
768
  type: string
768
769
  source_rse:
769
- description: The name of the source RSE.
770
+ description: "The name of the source RSE."
770
771
  type: string
771
772
  dest_rse:
772
- description: The name of the destination RSE.
773
+ description: "The name of the destination RSE."
773
774
  type: string
774
775
  401:
775
- description: Invalid Auth Token
776
+ description: "Invalid Auth Token"
776
777
  404:
777
- description: Not found
778
+ description: "Not found"
778
779
  406:
779
- description: Not acceptable
780
+ description: "Not acceptable"
780
781
  """
781
782
  src_rse = flask.request.args.get('src_rse', default=None)
782
783
  dst_rse = flask.request.args.get('dst_rse', default=None)
@@ -836,72 +837,72 @@ class RequestMetricsGet(ErrorHandlingMethodView):
836
837
  """
837
838
  ---
838
839
  summary: Get Request Statistics
839
- description: Get statistics of requests grouped by source, destination, and activity.
840
+ description: "Get statistics of requests grouped by source, destination, and activity."
840
841
  tags:
841
842
  - Requests
842
843
  parameters:
843
844
  - name: dest_rse
844
845
  in: query
845
- description: The destination RSE name
846
+ description: "The destination RSE name"
846
847
  schema:
847
848
  type: string
848
849
  - name: source_rse
849
850
  in: query
850
- description: The source RSE name
851
+ description: "The source RSE name"
851
852
  schema:
852
853
  type: string
853
854
  - name: activity
854
855
  in: query
855
- description: The activity
856
+ description: "The activity"
856
857
  schema:
857
858
  type: string
858
859
  - name: group_by_rse_attribute
859
860
  in: query
860
- description: The parameter to group the RSEs by.
861
+ description: "The parameter to group the RSEs by."
861
862
  schema:
862
863
  type: string
863
864
  responses:
864
865
  200:
865
- description: OK
866
+ description: "OK"
866
867
  content:
867
868
  application/x-json-stream:
868
869
  schema:
869
- description: Statistics of requests by source, destination, and activity.
870
+ description: "Statistics of requests by source, destination, and activity."
870
871
  type: array
871
872
  items:
872
- description: Statistics of the request group for a given (source, destination, activity) tuple.
873
+ description: "Statistics of the request group for a given (source, destination, activity) tuple."
873
874
  type: object
874
875
  properties:
875
876
  src_rse:
876
877
  type: string
877
- description: The name of this links source RSE
878
+ description: "The name of this links source RSE"
878
879
  dst_rse:
879
880
  type: string
880
- description: The name of this links destination RSE
881
+ description: "The name of this links destination RSE"
881
882
  distance:
882
883
  type: integer
883
- description: The distance between the source and destination RSE
884
+ description: "The distance between the source and destination RSE"
884
885
  files:
885
886
  type: object
886
887
  properties:
887
888
  done-total-1h:
888
889
  type: integer
889
- description: The total number of files successfully transferred in the last 1 hour
890
+ description: "The total number of files successfully transferred in the last 1 hour"
890
891
  done-total-6h:
891
892
  type: integer
892
- description: The total number of files successfully transferred in the last 6 hours
893
+ description: "The total number of files successfully transferred in the last 6 hours"
893
894
  failed-total-1h:
894
895
  type: integer
895
- description: The total number of transfer failures in the last 1 hour
896
+ description: "The total number of transfer failures in the last 1 hour"
896
897
  failed-total-6h:
897
898
  type: integer
898
- description: The total number of transfer failures in the last 6 hours
899
+ description: "The total number of transfer failures in the last 6 hours"
899
900
  queued-total:
900
901
  type: integer
901
- description: The total number of files queued in rucio
902
+ description: "The total number of files queued in rucio"
902
903
  queued:
903
904
  type: object
904
- description: Per-activity number of queued files
905
+ description: "Per-activity number of queued files"
905
906
  additionalProperties:
906
907
  type: integer
907
908
  done:
@@ -915,7 +916,7 @@ class RequestMetricsGet(ErrorHandlingMethodView):
915
916
  type: integer
916
917
  failed:
917
918
  type: object
918
- description: Per-activity number of transfer failures in the last 1 and 6 hours
919
+ description: "Per-activity number of transfer failures in the last 1 and 6 hours"
919
920
  additionalProperties:
920
921
  type: object
921
922
  properties:
@@ -928,21 +929,21 @@ class RequestMetricsGet(ErrorHandlingMethodView):
928
929
  properties:
929
930
  done-total-1h:
930
931
  type: integer
931
- description: The total number of bytes successfully transferred in the last 1 hour
932
+ description: "The total number of bytes successfully transferred in the last 1 hour"
932
933
  done-total-6h:
933
934
  type: integer
934
- description: The total number of bytes successfully transferred in the last 6 hours
935
+ description: "The total number of bytes successfully transferred in the last 6 hours"
935
936
  queued-total:
936
937
  type: integer
937
- description: The total number of bytes queued to be transferred by rucio
938
+ description: "The total number of bytes queued to be transferred by rucio"
938
939
  queued:
939
940
  type: object
940
- description: Per-activity amount of queued bytes
941
+ description: "Per-activity amount of queued bytes"
941
942
  additionalProperties:
942
943
  type: integer
943
944
  done:
944
945
  type: object
945
- description: Per-activity number of transferred bytes in the last 1 and 6 hours
946
+ description: "Per-activity number of transferred bytes in the last 1 and 6 hours"
946
947
  additionalProperties:
947
948
  type: object
948
949
  properties:
@@ -955,7 +956,7 @@ class RequestMetricsGet(ErrorHandlingMethodView):
955
956
  - src_rse
956
957
  - dst_rse
957
958
  401:
958
- description: Invalid Auth Token
959
+ description: "Invalid Auth Token"
959
960
  """
960
961
  dst_rse = flask.request.args.get('dst_rse', default=None)
961
962
  src_rse = flask.request.args.get('src_rse', default=None)
@@ -980,6 +981,7 @@ class RequestMetricsGet(ErrorHandlingMethodView):
980
981
  yield render_json(**result) + '\n'
981
982
  return try_stream(generate())
982
983
 
984
+
983
985
  class TransferLimits(ErrorHandlingMethodView):
984
986
  """ REST API to get, set or delete transfer limits. """
985
987
 
@@ -988,67 +990,68 @@ class TransferLimits(ErrorHandlingMethodView):
988
990
  """
989
991
  ---
990
992
  summary: Get Transfer Limits
991
- description: Get all the transfer limits.
993
+ description: "Get all the transfer limits."
992
994
  tags:
993
995
  - Requests
994
996
  responses:
995
997
  200:
996
- description: OK
998
+ description: "OK"
997
999
  content:
998
1000
  application/x-json-stream:
999
1001
  schema:
1000
- description: All the transfer limits
1002
+ description: "All the transfer limits"
1001
1003
  type: array
1002
1004
  items:
1003
1005
  type: object
1004
1006
  properties:
1005
1007
  id:
1006
- description: The transfer limit id.
1008
+ description: "The transfer limit id."
1007
1009
  type: string
1008
1010
  rse_expression:
1009
- description: The RSE expression for which the limit applies.
1011
+ description: "The RSE expression for which the limit applies."
1010
1012
  type: string
1011
1013
  direction:
1012
- description: The direction in which this limit applies (source/destination)
1014
+ description: "The direction in which this limit applies (source/destination)"
1013
1015
  type: string
1014
1016
  max_transfers:
1015
- description: Maximum number of transfers allowed.
1017
+ description: "Maximum number of transfers allowed."
1016
1018
  type: integer
1017
1019
  volume:
1018
- description: Maximum transfer volume in bytes.
1020
+ description: "Maximum transfer volume in bytes."
1019
1021
  type: integer
1020
1022
  deadline:
1021
- description: Maximum waiting time in hours until a datasets gets released.
1023
+ description: "Maximum waiting time in hours until a dataset gets released."
1022
1024
  type: integer
1023
1025
  strategy:
1024
- description: defines how to handle datasets: `fifo` (each file released separately) or `grouped_fifo` (wait for the entire dataset to fit)
1026
+ description: "Defines how to handle datasets: `fifo` (each file released separately) or `grouped_fifo` (wait for the entire dataset to fit)"
1025
1027
  type: string
1026
1028
  transfers:
1027
- description: Current number of active transfers
1029
+ description: "Current number of active transfers"
1028
1030
  type: integer
1029
1031
  waitings:
1030
- description: Current number of waiting transfers
1032
+ description: "Current number of waiting transfers"
1031
1033
  type: integer
1032
1034
  updated_at:
1033
- description: Datetime of the last update.
1035
+ description: "Datetime of the last update."
1034
1036
  type: string
1035
1037
  created_at:
1036
- description: Datetime of the creation of the transfer limit.
1038
+ description: "Datetime of the creation of the transfer limit."
1037
1039
  type: string
1038
1040
  401:
1039
- description: Invalid Auth Token
1041
+ description: "Invalid Auth Token"
1040
1042
  """
1041
1043
  transfer_limits = request.list_transfer_limits(issuer=flask.request.environ['issuer'], vo=flask.request.environ['vo'])
1044
+
1042
1045
  def generate() -> "Iterator[str]":
1043
- for limit in transfer_limits:
1044
- yield json.dumps(limit, cls=APIEncoder) + '\n'
1046
+ for limit in transfer_limits:
1047
+ yield json.dumps(limit, cls=APIEncoder) + '\n'
1045
1048
  return try_stream(generate())
1046
1049
 
1047
1050
  def put(self) -> Union[flask.Response, tuple[str, int]]:
1048
1051
  """
1049
1052
  ---
1050
1053
  summary: Set Transfer Limit
1051
- description: Create or update a transfer limit for a specific RSE expression and activity.
1054
+ description: "Create or update a transfer limit for a specific RSE expression and activity."
1052
1055
  tags:
1053
1056
  - Requests
1054
1057
  requestBody:
@@ -1062,63 +1065,63 @@ class TransferLimits(ErrorHandlingMethodView):
1062
1065
  properties:
1063
1066
  rse_expression:
1064
1067
  type: string
1065
- description: The RSE expression for which the transfer limit is being set.
1068
+ description: "The RSE expression for which the transfer limit is being set."
1066
1069
  activity:
1067
1070
  type: string
1068
- description: The activity to which the transfer limit applies.
1071
+ description: "The activity to which the transfer limit applies."
1069
1072
  max_transfers:
1070
1073
  type: integer
1071
- description: The maximum number of transfers allowed.
1074
+ description: "The maximum number of transfers allowed."
1072
1075
  direction:
1073
1076
  type: string
1074
- description: The direction of the transfer limit (source or destination).
1077
+ description: "The direction of the transfer limit (source or destination)."
1075
1078
  enum: ["SOURCE", "DESTINATION"]
1076
1079
  default: "DESTINATION"
1077
1080
  volume:
1078
1081
  type: integer
1079
- description: The maximum transfer volume in bytes.
1082
+ description: "The maximum transfer volume in bytes."
1080
1083
  deadline:
1081
1084
  type: integer
1082
- description: The maximum waiting time in hours until a dataset is released.
1085
+ description: "The maximum waiting time in hours until a dataset is released."
1083
1086
  strategy:
1084
1087
  type: string
1085
- description: The strategy for handling datasets (e.g., `fifo` or `grouped_fifo`).
1088
+ description: "The strategy for handling datasets (e.g., `fifo` or `grouped_fifo`)."
1086
1089
  transfers:
1087
1090
  type: integer
1088
- description: The current number of active transfers.
1091
+ description: "The current number of active transfers."
1089
1092
  waitings:
1090
1093
  type: integer
1091
- description: The current number of waiting transfers.
1094
+ description: "The current number of waiting transfers."
1092
1095
  responses:
1093
1096
  201:
1094
- description: Transfer limit set successfully.
1097
+ description: "Transfer limit set successfully."
1095
1098
  400:
1096
- description: Invalid input data.
1099
+ description: "Invalid input data."
1097
1100
  401:
1098
- description: Invalid Auth Token.
1101
+ description: "Invalid Auth Token."
1099
1102
  500:
1100
- description: Internal server error.
1103
+ description: "Internal server error."
1101
1104
  """
1102
1105
  parameters = json_parameters()
1103
1106
  rse_expression = param_get(parameters, 'rse_expression')
1104
1107
  max_transfers = param_get(parameters, 'max_transfers')
1105
1108
 
1106
1109
  try:
1107
- request.set_transfer_limit(
1108
- rse_expression=rse_expression,
1109
- max_transfers=max_transfers,
1110
- activity=param_get(parameters, 'activity', default=None),
1111
- direction=param_get(parameters, 'direction', default=TransferLimitDirection.DESTINATION),
1112
- volume=param_get(parameters, 'volume', default=None),
1113
- deadline=param_get(parameters, 'deadline', default=None),
1114
- strategy=param_get(parameters, 'strategy', default=None),
1115
- transfers=param_get(parameters, 'transfers', default=None),
1116
- waitings=param_get(parameters, 'waitings', default=None),
1117
- issuer=flask.request.environ['issuer'],
1118
- vo=flask.request.environ['vo']
1119
- )
1110
+ request.set_transfer_limit(
1111
+ rse_expression=rse_expression,
1112
+ max_transfers=max_transfers,
1113
+ activity=param_get(parameters, 'activity', default=None),
1114
+ direction=param_get(parameters, 'direction', default=TransferLimitDirection.DESTINATION),
1115
+ volume=param_get(parameters, 'volume', default=None),
1116
+ deadline=param_get(parameters, 'deadline', default=None),
1117
+ strategy=param_get(parameters, 'strategy', default=None),
1118
+ transfers=param_get(parameters, 'transfers', default=None),
1119
+ waitings=param_get(parameters, 'waitings', default=None),
1120
+ issuer=flask.request.environ['issuer'],
1121
+ vo=flask.request.environ['vo']
1122
+ )
1120
1123
  except AccessDenied as error:
1121
- return generate_http_error_flask(401, error)
1124
+ return generate_http_error_flask(401, error)
1122
1125
 
1123
1126
  return '', 201
1124
1127
 
@@ -1126,42 +1129,43 @@ class TransferLimits(ErrorHandlingMethodView):
1126
1129
  """
1127
1130
  ---
1128
1131
  summary: Delete Transfer Limit
1129
- description: Delete a transfer limit for an RSE expression.
1132
+ description: "Delete a transfer limit for an RSE expression."
1130
1133
  tags:
1131
1134
  - Requests
1132
1135
  parameters:
1133
1136
  - name: rse_expression
1134
1137
  in: query
1135
- description: The RSE expression to delete the limit for.
1138
+ description: "The RSE expression to delete the limit for."
1136
1139
  required: true
1137
1140
  schema:
1138
1141
  type: string
1139
1142
  responses:
1140
1143
  200:
1141
- description: Transfer limit deleted successfully.
1144
+ description: "Transfer limit deleted successfully."
1142
1145
  400:
1143
- description: Invalid input data.
1146
+ description: "Invalid input data."
1144
1147
  401:
1145
- description: Invalid Auth Token.
1148
+ description: "Invalid Auth Token."
1146
1149
  500:
1147
- description: Internal server error.
1150
+ description: "Internal server error."
1148
1151
  """
1149
1152
  parameters = json_parameters()
1150
1153
  rse_expression = param_get(parameters, 'rse_expression')
1151
1154
 
1152
1155
  try:
1153
- request.delete_transfer_limit(
1154
- rse_expression=rse_expression,
1155
- activity=param_get(parameters, 'activity', default=None),
1156
- direction=param_get(parameters, 'direction', default=TransferLimitDirection.DESTINATION),
1157
- issuer=flask.request.environ['issuer'],
1158
- vo=flask.request.environ['vo']
1159
- )
1156
+ request.delete_transfer_limit(
1157
+ rse_expression=rse_expression,
1158
+ activity=param_get(parameters, 'activity', default=None),
1159
+ direction=param_get(parameters, 'direction', default=TransferLimitDirection.DESTINATION),
1160
+ issuer=flask.request.environ['issuer'],
1161
+ vo=flask.request.environ['vo']
1162
+ )
1160
1163
  except AccessDenied as error:
1161
- return generate_http_error_flask(401, error)
1164
+ return generate_http_error_flask(401, error)
1162
1165
 
1163
1166
  return '', 200
1164
1167
 
1168
+
1165
1169
  def blueprint():
1166
1170
  bp = AuthenticatedBlueprint('requests', __name__, url_prefix='/requests')
1167
1171