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.
- rucio/client/downloadclient.py +1 -1
- rucio/client/requestclient.py +6 -5
- rucio/common/constants.py +14 -17
- rucio/common/utils.py +18 -2
- rucio/core/permission/generic.py +3 -0
- rucio/core/replica.py +1 -1
- rucio/core/request.py +2 -2
- rucio/core/transfer.py +4 -5
- rucio/daemons/conveyor/throttler.py +2 -1
- rucio/db/sqla/constants.py +3 -3
- rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +1 -1
- rucio/db/sqla/models.py +1 -1
- rucio/gateway/request.py +13 -12
- rucio/rse/rsemanager.py +2 -2
- rucio/vcsversion.py +3 -3
- rucio/web/rest/flaskapi/v1/accountlimits.py +22 -22
- rucio/web/rest/flaskapi/v1/accounts.py +157 -157
- rucio/web/rest/flaskapi/v1/archives.py +10 -10
- rucio/web/rest/flaskapi/v1/auth.py +106 -106
- rucio/web/rest/flaskapi/v1/config.py +37 -37
- rucio/web/rest/flaskapi/v1/credentials.py +25 -25
- rucio/web/rest/flaskapi/v1/dids.py +381 -381
- rucio/web/rest/flaskapi/v1/dirac.py +8 -8
- rucio/web/rest/flaskapi/v1/export.py +6 -6
- rucio/web/rest/flaskapi/v1/heartbeats.py +14 -14
- rucio/web/rest/flaskapi/v1/identities.py +25 -25
- rucio/web/rest/flaskapi/v1/import.py +19 -19
- rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +54 -54
- rucio/web/rest/flaskapi/v1/locks.py +60 -60
- rucio/web/rest/flaskapi/v1/meta_conventions.py +29 -29
- rucio/web/rest/flaskapi/v1/nongrid_traces.py +4 -4
- rucio/web/rest/flaskapi/v1/ping.py +4 -4
- rucio/web/rest/flaskapi/v1/redirect.py +16 -16
- rucio/web/rest/flaskapi/v1/replicas.py +281 -281
- rucio/web/rest/flaskapi/v1/requests.py +274 -270
- rucio/web/rest/flaskapi/v1/rses.py +427 -427
- rucio/web/rest/flaskapi/v1/rules.py +129 -129
- rucio/web/rest/flaskapi/v1/scopes.py +21 -21
- rucio/web/rest/flaskapi/v1/subscriptions.py +113 -113
- rucio/web/rest/flaskapi/v1/traces.py +18 -18
- rucio/web/rest/flaskapi/v1/vos.py +32 -32
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/requirements.server.txt +1 -1
- {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/METADATA +1 -1
- {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/RECORD +102 -102
- {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/WHEEL +1 -1
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic.ini.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic_offline.ini.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/globus-config.yml.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/ldap.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio_multi_vo.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/bootstrap.py +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/data/rucio/tools/reset_database.py +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-account +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-collection-replica +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-rse +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-admin +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-atropos +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-auditor +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-automatix +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-bb8 +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-cache-client +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-cache-consumer +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-finisher +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-poller +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-preparer +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-receiver +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-stager +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-submitter +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-throttler +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-dark-reaper +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-dumper +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-follower +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-hermes +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-cleaner +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-evaluator +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-injector +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-judge-repairer +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-kronos +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-minos +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-minos-temporary-expiration +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-necromancer +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-oauth-manager +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-reaper +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-replica-recoverer +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-rse-decommissioner +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-storage-consistency-actions +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-transmogrifier +0 -0
- {rucio-37.4.0.data → rucio-37.5.0.data}/scripts/rucio-undertaker +0 -0
- {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
- {rucio-37.4.0.dist-info → rucio-37.5.0.dist-info}/licenses/LICENSE +0 -0
- {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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1023
|
+
description: "Maximum waiting time in hours until a dataset gets released."
|
|
1022
1024
|
type: integer
|
|
1023
1025
|
strategy:
|
|
1024
|
-
description:
|
|
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
|
-
|
|
1044
|
-
|
|
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
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
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
|
-
|
|
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
|
|