rucio 37.4.0__py3-none-any.whl → 37.6.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/cli/bin_legacy/rucio.py +1 -1
- rucio/cli/bin_legacy/rucio_admin.py +1 -1
- rucio/cli/did.py +2 -2
- rucio/cli/rse.py +2 -3
- rucio/cli/subscription.py +1 -1
- rucio/client/baseclient.py +5 -1
- rucio/client/didclient.py +16 -16
- rucio/client/downloadclient.py +15 -15
- rucio/client/lockclient.py +3 -3
- rucio/client/replicaclient.py +2 -2
- rucio/client/requestclient.py +6 -5
- rucio/client/touchclient.py +1 -1
- rucio/client/uploadclient.py +725 -181
- rucio/common/config.py +1 -2
- rucio/common/constants.py +16 -17
- rucio/common/didtype.py +2 -2
- rucio/common/dumper/__init__.py +1 -1
- rucio/common/pcache.py +20 -25
- rucio/common/plugins.py +10 -17
- rucio/common/schema/__init__.py +7 -5
- rucio/common/utils.py +19 -3
- rucio/core/authentication.py +1 -1
- rucio/core/credential.py +1 -1
- rucio/core/did.py +54 -54
- rucio/core/did_meta_plugins/__init__.py +10 -10
- rucio/core/did_meta_plugins/did_column_meta.py +9 -9
- rucio/core/did_meta_plugins/did_meta_plugin_interface.py +3 -3
- rucio/core/did_meta_plugins/elasticsearch_meta.py +7 -7
- rucio/core/did_meta_plugins/json_meta.py +2 -2
- rucio/core/did_meta_plugins/mongo_meta.py +9 -9
- rucio/core/did_meta_plugins/postgres_meta.py +7 -7
- rucio/core/dirac.py +1 -1
- rucio/core/lifetime_exception.py +2 -2
- rucio/core/lock.py +7 -7
- rucio/core/meta_conventions.py +2 -2
- rucio/core/monitor.py +1 -1
- rucio/core/naming_convention.py +1 -1
- rucio/core/nongrid_trace.py +2 -2
- rucio/core/oidc.py +2 -2
- rucio/core/permission/__init__.py +7 -5
- rucio/core/permission/generic.py +5 -2
- rucio/core/permission/generic_multi_vo.py +2 -2
- rucio/core/replica.py +18 -18
- rucio/core/request.py +2 -2
- rucio/core/rule.py +30 -30
- rucio/core/rule_grouping.py +2 -3
- rucio/core/scope.py +1 -1
- rucio/core/trace.py +2 -2
- rucio/core/transfer.py +4 -5
- rucio/daemons/auditor/__init__.py +1 -1
- rucio/daemons/badreplicas/minos.py +9 -3
- rucio/daemons/badreplicas/minos_temporary_expiration.py +5 -2
- rucio/daemons/badreplicas/necromancer.py +9 -3
- rucio/daemons/bb8/common.py +1 -1
- rucio/daemons/bb8/nuclei_background_rebalance.py +1 -1
- rucio/daemons/bb8/t2_background_rebalance.py +1 -1
- rucio/daemons/cache/consumer.py +1 -1
- rucio/daemons/conveyor/finisher.py +13 -4
- rucio/daemons/conveyor/poller.py +5 -2
- rucio/daemons/conveyor/receiver.py +1 -1
- rucio/daemons/conveyor/throttler.py +2 -1
- rucio/daemons/follower/follower.py +1 -1
- rucio/daemons/hermes/hermes.py +2 -2
- rucio/daemons/judge/cleaner.py +2 -2
- rucio/daemons/judge/evaluator.py +7 -7
- rucio/daemons/judge/injector.py +2 -2
- rucio/daemons/judge/repairer.py +2 -2
- rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +1 -1
- rucio/daemons/storage/consistency/actions.py +3 -3
- rucio/daemons/transmogrifier/transmogrifier.py +1 -1
- rucio/daemons/undertaker/undertaker.py +6 -6
- rucio/db/sqla/constants.py +4 -3
- rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +1 -1
- rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +1 -1
- rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +1 -1
- rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +1 -1
- rucio/db/sqla/models.py +2 -2
- rucio/db/sqla/session.py +7 -7
- rucio/gateway/account.py +65 -90
- rucio/gateway/did.py +26 -26
- rucio/gateway/dirac.py +1 -1
- rucio/gateway/lifetime_exception.py +1 -1
- rucio/gateway/replica.py +2 -2
- rucio/gateway/request.py +13 -12
- rucio/rse/protocols/ngarc.py +2 -2
- rucio/rse/protocols/srm.py +1 -1
- rucio/rse/protocols/webdav.py +8 -1
- rucio/rse/rsemanager.py +2 -2
- rucio/tests/common.py +4 -4
- rucio/vcsversion.py +3 -3
- rucio/web/rest/flaskapi/v1/accountlimits.py +22 -22
- rucio/web/rest/flaskapi/v1/accounts.py +177 -177
- rucio/web/rest/flaskapi/v1/archives.py +10 -10
- rucio/web/rest/flaskapi/v1/auth.py +106 -106
- rucio/web/rest/flaskapi/v1/common.py +1 -1
- 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 +391 -391
- 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 +62 -62
- rucio/web/rest/flaskapi/v1/main.py +1 -0
- 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 +282 -282
- 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 +120 -120
- 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.6.0.data}/data/rucio/requirements.server.txt +1 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-abacus-account +8 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-abacus-rse +8 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-auditor +1 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-throttler +7 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-follower +1 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-judge-cleaner +9 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-necromancer +7 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-replica-recoverer +31 -9
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-undertaker +8 -2
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/METADATA +1 -1
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/RECORD +179 -179
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/WHEEL +1 -1
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/alembic.ini.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/alembic_offline.ini.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/globus-config.yml.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/ldap.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/rucio.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/etc/rucio_multi_vo.cfg.template +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/tools/bootstrap.py +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/data/rucio/tools/reset_database.py +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-abacus-collection-replica +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-admin +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-atropos +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-automatix +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-bb8 +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-cache-client +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-cache-consumer +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-finisher +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-poller +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-preparer +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-receiver +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-stager +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-conveyor-submitter +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-dark-reaper +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-dumper +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-hermes +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-judge-evaluator +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-judge-injector +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-judge-repairer +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-kronos +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-minos +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-minos-temporary-expiration +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-oauth-manager +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-reaper +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-rse-decommissioner +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-storage-consistency-actions +0 -0
- {rucio-37.4.0.data → rucio-37.6.0.data}/scripts/rucio-transmogrifier +0 -0
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/licenses/AUTHORS.rst +0 -0
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/licenses/LICENSE +0 -0
- {rucio-37.4.0.dist-info → rucio-37.6.0.dist-info}/top_level.txt +0 -0
|
@@ -32,80 +32,80 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
32
32
|
"""
|
|
33
33
|
---
|
|
34
34
|
summary: Get Subscription
|
|
35
|
-
description: Retrieve a subscription.
|
|
35
|
+
description: "Retrieve a subscription."
|
|
36
36
|
tags:
|
|
37
|
-
-
|
|
37
|
+
- Subscription
|
|
38
38
|
parameters:
|
|
39
39
|
- name: account
|
|
40
40
|
in: path
|
|
41
|
-
description: The account name.
|
|
41
|
+
description: "The account name."
|
|
42
42
|
schema:
|
|
43
43
|
type: string
|
|
44
44
|
style: simple
|
|
45
45
|
- name: name
|
|
46
46
|
in: path
|
|
47
|
-
description: The subscription name.
|
|
47
|
+
description: "The subscription name."
|
|
48
48
|
schema:
|
|
49
49
|
type: string
|
|
50
50
|
style: simple
|
|
51
51
|
responses:
|
|
52
52
|
200:
|
|
53
|
-
description: OK
|
|
53
|
+
description: "OK"
|
|
54
54
|
content:
|
|
55
55
|
application/x-json-stream:
|
|
56
56
|
schema:
|
|
57
|
-
description: A list of subscriptions.
|
|
57
|
+
description: "A list of subscriptions."
|
|
58
58
|
type: array
|
|
59
59
|
items:
|
|
60
|
-
description: A subscription.
|
|
60
|
+
description: "A subscription."
|
|
61
61
|
type: object
|
|
62
62
|
properties:
|
|
63
63
|
id:
|
|
64
|
-
description: The id of the subscription.
|
|
64
|
+
description: "The id of the subscription."
|
|
65
65
|
type: string
|
|
66
66
|
name:
|
|
67
|
-
description: The name of the subscription.
|
|
67
|
+
description: "The name of the subscription."
|
|
68
68
|
type: string
|
|
69
69
|
filter:
|
|
70
|
-
description: The filter for the subscription.
|
|
70
|
+
description: "The filter for the subscription."
|
|
71
71
|
type: string
|
|
72
72
|
replication_rules:
|
|
73
|
-
description: The replication rules for the subscription.
|
|
73
|
+
description: "The replication rules for the subscription."
|
|
74
74
|
type: string
|
|
75
75
|
policyid:
|
|
76
|
-
description: The policyid for the subscription.
|
|
76
|
+
description: "The policyid for the subscription."
|
|
77
77
|
type: integer
|
|
78
78
|
state:
|
|
79
|
-
description: The state of the subscription.
|
|
79
|
+
description: "The state of the subscription."
|
|
80
80
|
type: string
|
|
81
81
|
enum: ["A", "I", "N", "U", "B"]
|
|
82
82
|
last_processed:
|
|
83
|
-
description: The time the subscription was processed last.
|
|
83
|
+
description: "The time the subscription was processed last."
|
|
84
84
|
type: string
|
|
85
85
|
format: date-time
|
|
86
86
|
account:
|
|
87
|
-
description: The account for the subscription.
|
|
87
|
+
description: "The account for the subscription."
|
|
88
88
|
type: string
|
|
89
89
|
lifetime:
|
|
90
|
-
description: The lifetime for the subscription.
|
|
90
|
+
description: "The lifetime for the subscription."
|
|
91
91
|
type: string
|
|
92
92
|
format: date-time
|
|
93
93
|
comments:
|
|
94
|
-
description: The comments for the subscription.
|
|
94
|
+
description: "The comments for the subscription."
|
|
95
95
|
type: string
|
|
96
96
|
retroactive:
|
|
97
|
-
description: If the subscription is retroactive.
|
|
97
|
+
description: "If the subscription is retroactive."
|
|
98
98
|
type: boolean
|
|
99
99
|
expired_at:
|
|
100
|
-
description: The date-time of the expiration for the subscription.
|
|
100
|
+
description: "The date-time of the expiration for the subscription."
|
|
101
101
|
type: string
|
|
102
102
|
format: date-time
|
|
103
103
|
401:
|
|
104
|
-
description: Invalid Auth Token
|
|
104
|
+
description: "Invalid Auth Token"
|
|
105
105
|
404:
|
|
106
|
-
description: Subscription Not found
|
|
106
|
+
description: "Subscription Not found"
|
|
107
107
|
406:
|
|
108
|
-
description: Not acceptable
|
|
108
|
+
description: "Not acceptable"
|
|
109
109
|
"""
|
|
110
110
|
try:
|
|
111
111
|
def generate(vo):
|
|
@@ -120,20 +120,20 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
120
120
|
"""
|
|
121
121
|
---
|
|
122
122
|
summary: Update subscription
|
|
123
|
-
description: Update an existing subscription.
|
|
123
|
+
description: "Update an existing subscription."
|
|
124
124
|
tags:
|
|
125
|
-
-
|
|
125
|
+
- Subscription
|
|
126
126
|
parameters:
|
|
127
127
|
- name: account
|
|
128
128
|
in: path
|
|
129
|
-
description: The account name.
|
|
129
|
+
description: "The account name."
|
|
130
130
|
schema:
|
|
131
131
|
type: string
|
|
132
132
|
style: simple
|
|
133
133
|
required: true
|
|
134
134
|
- name: name
|
|
135
135
|
in: path
|
|
136
|
-
description: The subscription name.
|
|
136
|
+
description: "The subscription name."
|
|
137
137
|
schema:
|
|
138
138
|
type: string
|
|
139
139
|
style: simple
|
|
@@ -147,37 +147,37 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
147
147
|
- options
|
|
148
148
|
properties:
|
|
149
149
|
options:
|
|
150
|
-
description: The values for the new subscription.
|
|
150
|
+
description: "The values for the new subscription."
|
|
151
151
|
type: object
|
|
152
152
|
properties:
|
|
153
153
|
filter:
|
|
154
|
-
description: The filter for the subscription.
|
|
154
|
+
description: "The filter for the subscription."
|
|
155
155
|
type: string
|
|
156
156
|
replication_rules:
|
|
157
|
-
description: The replication rules for the subscription.
|
|
157
|
+
description: "The replication rules for the subscription."
|
|
158
158
|
type: string
|
|
159
159
|
comments:
|
|
160
|
-
description: The comments for the subscription.
|
|
160
|
+
description: "The comments for the subscription."
|
|
161
161
|
type: string
|
|
162
162
|
lifetime:
|
|
163
|
-
description: The lifetime for the subscription.
|
|
163
|
+
description: "The lifetime for the subscription."
|
|
164
164
|
type: string
|
|
165
165
|
format: date-time
|
|
166
166
|
retroactive:
|
|
167
|
-
description: If the retroactive is activated for a subscription.
|
|
167
|
+
description: "If the retroactive is activated for a subscription."
|
|
168
168
|
type: boolean
|
|
169
169
|
priority:
|
|
170
|
-
description: The priority/policyid for the subscription. Stored as policyid.
|
|
170
|
+
description: "The priority/policyid for the subscription. Stored as policyid."
|
|
171
171
|
type: integer
|
|
172
172
|
responses:
|
|
173
173
|
201:
|
|
174
|
-
description: OK
|
|
174
|
+
description: "OK"
|
|
175
175
|
400:
|
|
176
|
-
description: Cannot decode json parameter list.
|
|
176
|
+
description: "Cannot decode json parameter list."
|
|
177
177
|
401:
|
|
178
|
-
description: Invalid Auth Token
|
|
178
|
+
description: "Invalid Auth Token"
|
|
179
179
|
404:
|
|
180
|
-
description: Not found
|
|
180
|
+
description: "Not found"
|
|
181
181
|
"""
|
|
182
182
|
parameters = json_parameters()
|
|
183
183
|
options = param_get(parameters, 'options')
|
|
@@ -207,20 +207,20 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
207
207
|
"""
|
|
208
208
|
---
|
|
209
209
|
summary: Create subscription
|
|
210
|
-
description: Create a new subscription
|
|
210
|
+
description: "Create a new subscription"
|
|
211
211
|
tags:
|
|
212
|
-
-
|
|
212
|
+
- Subscription
|
|
213
213
|
parameters:
|
|
214
214
|
- name: account
|
|
215
215
|
in: path
|
|
216
|
-
description: The account name.
|
|
216
|
+
description: "The account name."
|
|
217
217
|
schema:
|
|
218
218
|
type: string
|
|
219
219
|
style: simple
|
|
220
220
|
required: true
|
|
221
221
|
- name: name
|
|
222
222
|
in: path
|
|
223
|
-
description: The subscription name.
|
|
223
|
+
description: "The subscription name."
|
|
224
224
|
schema:
|
|
225
225
|
type: string
|
|
226
226
|
style: simple
|
|
@@ -234,7 +234,7 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
234
234
|
- options
|
|
235
235
|
properties:
|
|
236
236
|
options:
|
|
237
|
-
description: The values for the new subscription.
|
|
237
|
+
description: "The values for the new subscription."
|
|
238
238
|
type: object
|
|
239
239
|
required:
|
|
240
240
|
- filter
|
|
@@ -244,44 +244,44 @@ class Subscription(ErrorHandlingMethodView):
|
|
|
244
244
|
- retroactive
|
|
245
245
|
properties:
|
|
246
246
|
filter:
|
|
247
|
-
description: The filter for the subscription.
|
|
247
|
+
description: "The filter for the subscription."
|
|
248
248
|
type: string
|
|
249
249
|
replication_rules:
|
|
250
|
-
description: The replication rules for the subscription.
|
|
250
|
+
description: "The replication rules for the subscription."
|
|
251
251
|
type: string
|
|
252
252
|
comments:
|
|
253
|
-
description: The comments for the subscription.
|
|
253
|
+
description: "The comments for the subscription."
|
|
254
254
|
type: string
|
|
255
255
|
lifetime:
|
|
256
|
-
description: The lifetime for the subscription.
|
|
256
|
+
description: "The lifetime for the subscription."
|
|
257
257
|
type: string
|
|
258
258
|
format: date-time
|
|
259
259
|
retroactive:
|
|
260
|
-
description: If the retroactive is activated for a subscription.
|
|
260
|
+
description: "If the retroactive is activated for a subscription."
|
|
261
261
|
type: boolean
|
|
262
262
|
priority:
|
|
263
|
-
description: The priority/policyid for the subscription. Stored as policyid.
|
|
263
|
+
description: "The priority/policyid for the subscription. Stored as policyid."
|
|
264
264
|
type: integer
|
|
265
265
|
dry_run:
|
|
266
|
-
description: The priority/policyid for the subscription. Stored as policyid.
|
|
266
|
+
description: "The priority/policyid for the subscription. Stored as policyid."
|
|
267
267
|
type: boolean
|
|
268
268
|
default: false
|
|
269
269
|
responses:
|
|
270
270
|
200:
|
|
271
|
-
description: OK
|
|
271
|
+
description: "OK"
|
|
272
272
|
content:
|
|
273
273
|
application/json:
|
|
274
274
|
schema:
|
|
275
|
-
description: The subscription Id for the new subscription.
|
|
275
|
+
description: "The subscription Id for the new subscription."
|
|
276
276
|
type: string
|
|
277
277
|
400:
|
|
278
|
-
description: Cannot decode json parameter list.
|
|
278
|
+
description: "Cannot decode json parameter list."
|
|
279
279
|
401:
|
|
280
|
-
description: Invalid Auth Token
|
|
280
|
+
description: "Invalid Auth Token"
|
|
281
281
|
404:
|
|
282
|
-
description: Not found
|
|
282
|
+
description: "Not found"
|
|
283
283
|
406:
|
|
284
|
-
description: Not acceptable
|
|
284
|
+
description: "Not acceptable"
|
|
285
285
|
"""
|
|
286
286
|
parameters = json_parameters()
|
|
287
287
|
options = param_get(parameters, 'options')
|
|
@@ -326,74 +326,74 @@ class SubscriptionName(ErrorHandlingMethodView):
|
|
|
326
326
|
"""
|
|
327
327
|
---
|
|
328
328
|
summary: Get Subscription by Name
|
|
329
|
-
description: Retrieve a subscription by name.
|
|
329
|
+
description: "Retrieve a subscription by name."
|
|
330
330
|
tags:
|
|
331
|
-
-
|
|
331
|
+
- Subscription
|
|
332
332
|
parameters:
|
|
333
333
|
- name: name
|
|
334
334
|
in: path
|
|
335
|
-
description: The subscription name.
|
|
335
|
+
description: "The subscription name."
|
|
336
336
|
schema:
|
|
337
337
|
type: string
|
|
338
338
|
style: simple
|
|
339
339
|
responses:
|
|
340
340
|
200:
|
|
341
|
-
description: OK
|
|
341
|
+
description: "OK"
|
|
342
342
|
content:
|
|
343
343
|
application/x-json-stream:
|
|
344
344
|
schema:
|
|
345
|
-
description: A list of subscriptions.
|
|
345
|
+
description: "A list of subscriptions."
|
|
346
346
|
type: array
|
|
347
347
|
items:
|
|
348
|
-
description: A subscription.
|
|
348
|
+
description: "A subscription."
|
|
349
349
|
type: object
|
|
350
350
|
properties:
|
|
351
351
|
id:
|
|
352
|
-
description: The id of the subscription.
|
|
352
|
+
description: "The id of the subscription."
|
|
353
353
|
type: string
|
|
354
354
|
name:
|
|
355
|
-
description: The name of the subscription.
|
|
355
|
+
description: "The name of the subscription."
|
|
356
356
|
type: string
|
|
357
357
|
filter:
|
|
358
|
-
description: The filter for the subscription.
|
|
358
|
+
description: "The filter for the subscription."
|
|
359
359
|
type: string
|
|
360
360
|
replication_rules:
|
|
361
|
-
description: The replication rules for the subscription.
|
|
361
|
+
description: "The replication rules for the subscription."
|
|
362
362
|
type: string
|
|
363
363
|
policyid:
|
|
364
|
-
description: The policyid for the subscription.
|
|
364
|
+
description: "The policyid for the subscription."
|
|
365
365
|
type: integer
|
|
366
366
|
state:
|
|
367
|
-
description: The state of the subscription.
|
|
367
|
+
description: "The state of the subscription."
|
|
368
368
|
type: string
|
|
369
369
|
enum: ["A", "I", "N", "U", "B"]
|
|
370
370
|
last_processed:
|
|
371
|
-
description: The time the subscription was processed last.
|
|
371
|
+
description: "The time the subscription was processed last."
|
|
372
372
|
type: string
|
|
373
373
|
format: date-time
|
|
374
374
|
account:
|
|
375
|
-
description: The account for the subscription.
|
|
375
|
+
description: "The account for the subscription."
|
|
376
376
|
type: string
|
|
377
377
|
lifetime:
|
|
378
|
-
description: The lifetime for the subscription.
|
|
378
|
+
description: "The lifetime for the subscription."
|
|
379
379
|
type: string
|
|
380
380
|
format: date-time
|
|
381
381
|
comments:
|
|
382
|
-
description: The comments for the subscription.
|
|
382
|
+
description: "The comments for the subscription."
|
|
383
383
|
type: string
|
|
384
384
|
retroactive:
|
|
385
|
-
description: If the subscription is retroactive.
|
|
385
|
+
description: "If the subscription is retroactive."
|
|
386
386
|
type: boolean
|
|
387
387
|
expired_at:
|
|
388
|
-
description: The date-time of the expiration for the subscription.
|
|
388
|
+
description: "The date-time of the expiration for the subscription."
|
|
389
389
|
type: string
|
|
390
390
|
format: date-time
|
|
391
391
|
401:
|
|
392
|
-
description: Invalid Auth Token
|
|
392
|
+
description: "Invalid Auth Token"
|
|
393
393
|
404:
|
|
394
|
-
description: Not found
|
|
394
|
+
description: "Not found"
|
|
395
395
|
406:
|
|
396
|
-
description: Not acceptable
|
|
396
|
+
description: "Not acceptable"
|
|
397
397
|
"""
|
|
398
398
|
try:
|
|
399
399
|
def generate(vo):
|
|
@@ -412,45 +412,45 @@ class Rules(ErrorHandlingMethodView):
|
|
|
412
412
|
"""
|
|
413
413
|
---
|
|
414
414
|
summary: Get Replication Rules
|
|
415
|
-
description: Return all rules of a given subscription id.
|
|
415
|
+
description: "Return all rules of a given subscription id."
|
|
416
416
|
tags:
|
|
417
|
-
-
|
|
417
|
+
- Subscription
|
|
418
418
|
parameters:
|
|
419
419
|
- name: account
|
|
420
420
|
in: path
|
|
421
|
-
description: The account name.
|
|
421
|
+
description: "The account name."
|
|
422
422
|
schema:
|
|
423
423
|
type: string
|
|
424
424
|
style: simple
|
|
425
425
|
required: true
|
|
426
426
|
- name: name
|
|
427
427
|
in: path
|
|
428
|
-
description: The subscription name.
|
|
428
|
+
description: "The subscription name."
|
|
429
429
|
schema:
|
|
430
430
|
type: string
|
|
431
431
|
style: simple
|
|
432
432
|
required: true
|
|
433
433
|
- name: state
|
|
434
434
|
in: query
|
|
435
|
-
description: The subscription state to filter for.
|
|
435
|
+
description: "The subscription state to filter for."
|
|
436
436
|
schema:
|
|
437
437
|
type: string
|
|
438
438
|
responses:
|
|
439
439
|
200:
|
|
440
|
-
description: OK
|
|
440
|
+
description: "OK"
|
|
441
441
|
content:
|
|
442
442
|
application/x-json-stream:
|
|
443
443
|
schema:
|
|
444
|
-
description: A list with the associated replication rules.
|
|
444
|
+
description: "A list with the associated replication rules."
|
|
445
445
|
type: array
|
|
446
446
|
items:
|
|
447
|
-
description: A subscription rule.
|
|
447
|
+
description: "A subscription rule."
|
|
448
448
|
401:
|
|
449
|
-
description: Invalid Auth Token
|
|
449
|
+
description: "Invalid Auth Token"
|
|
450
450
|
404:
|
|
451
|
-
description: Rule or Subscription not found
|
|
451
|
+
description: "Rule or Subscription not found"
|
|
452
452
|
406:
|
|
453
|
-
description: Not acceptable
|
|
453
|
+
description: "Not acceptable"
|
|
454
454
|
"""
|
|
455
455
|
state = request.args.get('state', default=None)
|
|
456
456
|
try:
|
|
@@ -477,53 +477,53 @@ class States(ErrorHandlingMethodView):
|
|
|
477
477
|
"""
|
|
478
478
|
---
|
|
479
479
|
summary: Get states
|
|
480
|
-
description: Return a summary of the states of all rules of a given subscription id.
|
|
480
|
+
description: "Return a summary of the states of all rules of a given subscription id."
|
|
481
481
|
tags:
|
|
482
|
-
-
|
|
482
|
+
- Subscription
|
|
483
483
|
parameters:
|
|
484
484
|
- name: account
|
|
485
485
|
in: path
|
|
486
|
-
description: The account name.
|
|
486
|
+
description: "The account name."
|
|
487
487
|
schema:
|
|
488
488
|
type: string
|
|
489
489
|
style: simple
|
|
490
490
|
required: true
|
|
491
491
|
- name: name
|
|
492
492
|
in: path
|
|
493
|
-
description: The subscription name.
|
|
493
|
+
description: "The subscription name."
|
|
494
494
|
schema:
|
|
495
495
|
type: string
|
|
496
496
|
style: simple
|
|
497
497
|
responses:
|
|
498
498
|
200:
|
|
499
|
-
description: OK
|
|
499
|
+
description: "OK"
|
|
500
500
|
content:
|
|
501
501
|
application/x-json-stream:
|
|
502
502
|
schema:
|
|
503
|
-
description: A list of rule states with counts for each subscription.
|
|
503
|
+
description: "A list of rule states with counts for each subscription."
|
|
504
504
|
type: array
|
|
505
505
|
items:
|
|
506
506
|
type: object
|
|
507
507
|
properties:
|
|
508
508
|
account:
|
|
509
|
-
description: The account for the subscription.
|
|
509
|
+
description: "The account for the subscription."
|
|
510
510
|
type: string
|
|
511
511
|
name:
|
|
512
|
-
description: The name of the subscription.
|
|
512
|
+
description: "The name of the subscription."
|
|
513
513
|
type: string
|
|
514
514
|
state:
|
|
515
|
-
description: The state of the rules.
|
|
515
|
+
description: "The state of the rules."
|
|
516
516
|
type: string
|
|
517
517
|
enum: ["R", "O", "S", "U", "W", "I"]
|
|
518
518
|
count:
|
|
519
|
-
description: The number of rules with that state.
|
|
519
|
+
description: "The number of rules with that state."
|
|
520
520
|
type: integer
|
|
521
521
|
401:
|
|
522
|
-
description: Invalid Auth Token
|
|
522
|
+
description: "Invalid Auth Token"
|
|
523
523
|
404:
|
|
524
|
-
description: Not found
|
|
524
|
+
description: "Not found"
|
|
525
525
|
406:
|
|
526
|
-
description: Not acceptable
|
|
526
|
+
description: "Not acceptable"
|
|
527
527
|
"""
|
|
528
528
|
def generate(vo):
|
|
529
529
|
for row in list_subscription_rule_states(name=name, account=account, vo=vo):
|
|
@@ -539,72 +539,72 @@ class SubscriptionId(ErrorHandlingMethodView):
|
|
|
539
539
|
"""
|
|
540
540
|
---
|
|
541
541
|
summary: Get Subscription from ID
|
|
542
|
-
description: Retrieve a subscription matching the given subscription id.
|
|
542
|
+
description: "Retrieve a subscription matching the given subscription id."
|
|
543
543
|
tags:
|
|
544
|
-
-
|
|
544
|
+
- Subscription
|
|
545
545
|
parameters:
|
|
546
546
|
- name: subscription_id
|
|
547
547
|
in: path
|
|
548
|
-
description: The subscription id.
|
|
548
|
+
description: "The subscription id."
|
|
549
549
|
schema:
|
|
550
550
|
type: string
|
|
551
551
|
style: simple
|
|
552
552
|
required: true
|
|
553
553
|
responses:
|
|
554
554
|
200:
|
|
555
|
-
description: OK
|
|
555
|
+
description: "OK"
|
|
556
556
|
content:
|
|
557
557
|
application/json:
|
|
558
558
|
schema:
|
|
559
|
-
description: The subscription.
|
|
559
|
+
description: "The subscription."
|
|
560
560
|
type: object
|
|
561
561
|
properties:
|
|
562
562
|
id:
|
|
563
|
-
description: The id of the subscription.
|
|
563
|
+
description: "The id of the subscription."
|
|
564
564
|
type: string
|
|
565
565
|
name:
|
|
566
|
-
description: The name of the subscription.
|
|
566
|
+
description: "The name of the subscription."
|
|
567
567
|
type: string
|
|
568
568
|
filter:
|
|
569
|
-
description: The filter for the subscription.
|
|
569
|
+
description: "The filter for the subscription."
|
|
570
570
|
type: string
|
|
571
571
|
replication_rules:
|
|
572
|
-
description: The replication rules for the subscription.
|
|
572
|
+
description: "The replication rules for the subscription."
|
|
573
573
|
type: string
|
|
574
574
|
policyid:
|
|
575
|
-
description: The policyid for the subscription.
|
|
575
|
+
description: "The policyid for the subscription."
|
|
576
576
|
type: integer
|
|
577
577
|
state:
|
|
578
|
-
description: The state of the subscription.
|
|
578
|
+
description: "The state of the subscription."
|
|
579
579
|
type: string
|
|
580
580
|
enum: ["A", "I", "N", "U", "B"]
|
|
581
581
|
last_processed:
|
|
582
|
-
description: The time the subscription was processed last.
|
|
582
|
+
description: "The time the subscription was processed last."
|
|
583
583
|
type: string
|
|
584
584
|
format: date-time
|
|
585
585
|
account:
|
|
586
|
-
description: The account for the subscription.
|
|
586
|
+
description: "The account for the subscription."
|
|
587
587
|
type: string
|
|
588
588
|
lifetime:
|
|
589
|
-
description: The lifetime for the subscription.
|
|
589
|
+
description: "The lifetime for the subscription."
|
|
590
590
|
type: string
|
|
591
591
|
format: date-time
|
|
592
592
|
comments:
|
|
593
|
-
description: The comments for the subscription.
|
|
593
|
+
description: "The comments for the subscription."
|
|
594
594
|
type: string
|
|
595
595
|
retroactive:
|
|
596
|
-
description: If the subscription is retroactive.
|
|
596
|
+
description: "If the subscription is retroactive."
|
|
597
597
|
type: boolean
|
|
598
598
|
expired_at:
|
|
599
|
-
description: The date-time of the expiration for the subscription.
|
|
599
|
+
description: "The date-time of the expiration for the subscription."
|
|
600
600
|
type: string
|
|
601
601
|
format: date-time
|
|
602
602
|
401:
|
|
603
|
-
description: Invalid Auth Token
|
|
603
|
+
description: "Invalid Auth Token"
|
|
604
604
|
404:
|
|
605
|
-
description: Subscription not found
|
|
605
|
+
description: "Subscription not found"
|
|
606
606
|
406:
|
|
607
|
-
description: Not acceptable
|
|
607
|
+
description: "Not acceptable"
|
|
608
608
|
"""
|
|
609
609
|
try:
|
|
610
610
|
subscription = get_subscription_by_id(subscription_id, vo=request.environ['vo'])
|
|
@@ -42,7 +42,7 @@ class Trace(ErrorHandlingMethodView):
|
|
|
42
42
|
"""
|
|
43
43
|
---
|
|
44
44
|
summary: Trace
|
|
45
|
-
description: Trace endpoint used by the pilot and CLI clients to post data access information.
|
|
45
|
+
description: "Trace endpoint used by the pilot and CLI clients to post data access information."
|
|
46
46
|
tags:
|
|
47
47
|
- Trace
|
|
48
48
|
parameters:
|
|
@@ -59,49 +59,49 @@ class Trace(ErrorHandlingMethodView):
|
|
|
59
59
|
oneOf:
|
|
60
60
|
ObjectSchema:
|
|
61
61
|
- requires: [eventType, clientState, account]
|
|
62
|
-
- description:
|
|
62
|
+
- description: "Touch one or more DIDs"
|
|
63
63
|
UploadSchema:
|
|
64
64
|
- requires: [eventType, hostname, account, eventVersion, uuid, scope, dataset, remoteSite, filesize, protocol, transferStart]
|
|
65
|
-
- description:
|
|
65
|
+
- description: "Upload method"
|
|
66
66
|
DownloadSchema:
|
|
67
67
|
- requires: [eventType, hostname, localSite, account, eventVersion, uuid, scope, filename, dataset, filesize, clientState, stateReason]
|
|
68
|
-
- description:
|
|
68
|
+
- description: "Download method"
|
|
69
69
|
GetSchema:
|
|
70
70
|
- requires: [eventType, localSite, eventVersion, uuid, scope, filename, dataset]
|
|
71
|
-
- description:
|
|
71
|
+
- description: "Get method, mainly sent by pilots"
|
|
72
72
|
PutSchema:
|
|
73
73
|
- requires: [eventType, localSite, eventVersion, uuid, scope, filename, dataset]
|
|
74
|
-
- description:
|
|
74
|
+
- description: "Put method, mainly sent by pilots"
|
|
75
75
|
SpecialSchema:
|
|
76
76
|
- requires: [eventType, clientState, account]
|
|
77
|
-
- description: A special schema to capture most unsupported eventTypes
|
|
77
|
+
- description: "A special schema to capture most unsupported eventTypes"
|
|
78
78
|
- type: array
|
|
79
79
|
items:
|
|
80
80
|
type: object
|
|
81
81
|
oneOf:
|
|
82
82
|
ObjectSchema:
|
|
83
83
|
- requires: [eventType, clientState, account]
|
|
84
|
-
- description:
|
|
84
|
+
- description: "Touch one or more DIDs"
|
|
85
85
|
UploadSchema:
|
|
86
86
|
- requires: [eventType, hostname, account, eventVersion, uuid, scope, dataset, remoteSite, filesize, protocol, transferStart]
|
|
87
|
-
- description:
|
|
87
|
+
- description: "Upload method"
|
|
88
88
|
DownloadSchema:
|
|
89
89
|
- requires: [eventType, hostname, localSite, account, eventVersion, uuid, scope, filename, dataset, filesize, clientState, stateReason]
|
|
90
|
-
- description:
|
|
90
|
+
- description: "Download method"
|
|
91
91
|
GetSchema:
|
|
92
92
|
- requires: [eventType, localSite, eventVersion, uuid, scope, filename, dataset]
|
|
93
|
-
- description:
|
|
93
|
+
- description: "Get method, mainly sent by pilots"
|
|
94
94
|
PutSchema:
|
|
95
95
|
- requires: [eventType, localSite, eventVersion, uuid, scope, filename, dataset]
|
|
96
|
-
- description:
|
|
96
|
+
- description: "Put method, mainly sent by pilots"
|
|
97
97
|
SpecialSchema:
|
|
98
98
|
- requires: [eventType, clientState, account]
|
|
99
|
-
- description: A special schema to capture most unsupported eventTypes
|
|
99
|
+
- description: "A special schema to capture most unsupported eventTypes"
|
|
100
100
|
responses:
|
|
101
101
|
201:
|
|
102
|
-
description: OK
|
|
102
|
+
description: "OK"
|
|
103
103
|
400:
|
|
104
|
-
description: Cannot decode json data.
|
|
104
|
+
description: "Cannot decode json data."
|
|
105
105
|
"""
|
|
106
106
|
headers = self.get_headers()
|
|
107
107
|
parameters = request.data
|
|
@@ -112,10 +112,10 @@ class Trace(ErrorHandlingMethodView):
|
|
|
112
112
|
# Trace gateway handles all errors and sends them to a log - no need for any error checking
|
|
113
113
|
trace_ip = request.headers.get("X-Forwarded-For", default=request.remote_addr)
|
|
114
114
|
try:
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
trace(request=parameters, trace_ip=trace_ip)
|
|
116
|
+
return Response("Created", 201, headers)
|
|
117
117
|
except JSONDecodeError as err:
|
|
118
|
-
|
|
118
|
+
return generate_http_error_flask(400, err)
|
|
119
119
|
|
|
120
120
|
|
|
121
121
|
def blueprint():
|