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
|
@@ -68,23 +68,23 @@ class Rule(ErrorHandlingMethodView):
|
|
|
68
68
|
parameters:
|
|
69
69
|
- name: rule_id
|
|
70
70
|
in: path
|
|
71
|
-
description: The id of the replication rule.
|
|
71
|
+
description: "The id of the replication rule."
|
|
72
72
|
schema:
|
|
73
73
|
type: string
|
|
74
74
|
style: simple
|
|
75
75
|
responses:
|
|
76
76
|
200:
|
|
77
|
-
description: OK
|
|
77
|
+
description: "OK"
|
|
78
78
|
content:
|
|
79
79
|
application/json:
|
|
80
80
|
schema:
|
|
81
81
|
type: string
|
|
82
82
|
406:
|
|
83
|
-
description: Not Acceptable
|
|
83
|
+
description: "Not Acceptable"
|
|
84
84
|
401:
|
|
85
|
-
description: Invalid Auth Token
|
|
85
|
+
description: "Invalid Auth Token"
|
|
86
86
|
404:
|
|
87
|
-
description: No rule found for the given id
|
|
87
|
+
description: "No rule found for the given id"
|
|
88
88
|
"""
|
|
89
89
|
parameters = json_parameters(optional=True)
|
|
90
90
|
estimate_ttc = param_get(parameters, 'estimate_ttc', default=False)
|
|
@@ -107,12 +107,12 @@ class Rule(ErrorHandlingMethodView):
|
|
|
107
107
|
parameters:
|
|
108
108
|
- name: rule_id
|
|
109
109
|
in: path
|
|
110
|
-
description: The id of the replication rule.
|
|
110
|
+
description: "The id of the replication rule."
|
|
111
111
|
schema:
|
|
112
112
|
type: string
|
|
113
113
|
style: simple
|
|
114
114
|
requestBody:
|
|
115
|
-
description: Parameters for the new rule.
|
|
115
|
+
description: "Parameters for the new rule."
|
|
116
116
|
content:
|
|
117
117
|
'application/json':
|
|
118
118
|
schema:
|
|
@@ -121,58 +121,58 @@ class Rule(ErrorHandlingMethodView):
|
|
|
121
121
|
- options
|
|
122
122
|
properties:
|
|
123
123
|
options:
|
|
124
|
-
description: The parameters to change.
|
|
124
|
+
description: "The parameters to change."
|
|
125
125
|
type: object
|
|
126
126
|
properties:
|
|
127
127
|
lifetime:
|
|
128
|
-
description: The time in which the rule will expire in seconds.
|
|
128
|
+
description: "The time in which the rule will expire in seconds."
|
|
129
129
|
type: integer
|
|
130
130
|
account:
|
|
131
|
-
description: The account of the replication rule.
|
|
131
|
+
description: "The account of the replication rule."
|
|
132
132
|
type: string
|
|
133
133
|
state:
|
|
134
|
-
description: The state of the replication rule.
|
|
134
|
+
description: "The state of the replication rule."
|
|
135
135
|
type: string
|
|
136
136
|
cancel_requests:
|
|
137
|
-
description: Cancels all requests if used together with state.
|
|
137
|
+
description: "Cancels all requests if used together with state."
|
|
138
138
|
type: boolean
|
|
139
139
|
priority:
|
|
140
|
-
description: The priority of a rule.
|
|
140
|
+
description: "The priority of a rule."
|
|
141
141
|
type: integer
|
|
142
142
|
child_rule_id:
|
|
143
|
-
description: The child rule. Parent and child rule must be on the same dataset.
|
|
143
|
+
description: "The child rule. Parent and child rule must be on the same dataset."
|
|
144
144
|
type: string
|
|
145
145
|
meta:
|
|
146
|
-
description: The meta of a rule.
|
|
146
|
+
description: "The meta of a rule."
|
|
147
147
|
type: object
|
|
148
148
|
boost_rule:
|
|
149
|
-
description: Boosts the processing of a rule.
|
|
149
|
+
description: "Boosts the processing of a rule."
|
|
150
150
|
type: object
|
|
151
151
|
locked:
|
|
152
|
-
description: The locked state of the replication rule.
|
|
152
|
+
description: "The locked state of the replication rule."
|
|
153
153
|
type: boolean
|
|
154
154
|
comment:
|
|
155
|
-
description: The comment of the replication rule.
|
|
155
|
+
description: "The comment of the replication rule."
|
|
156
156
|
type: string
|
|
157
157
|
activity:
|
|
158
|
-
description: The activity of a replication rule.
|
|
158
|
+
description: "The activity of a replication rule."
|
|
159
159
|
type: string
|
|
160
160
|
source_replica_expression:
|
|
161
|
-
description: The source replica expression of a replication rule.
|
|
161
|
+
description: "The source replica expression of a replication rule."
|
|
162
162
|
type: string
|
|
163
163
|
eol_at:
|
|
164
|
-
description: The end of life of a replication rule.
|
|
164
|
+
description: "The end of life of a replication rule."
|
|
165
165
|
type: string
|
|
166
166
|
purge_replicas:
|
|
167
|
-
description: Purge replicas
|
|
167
|
+
description: "Purge replicas"
|
|
168
168
|
type: boolean
|
|
169
169
|
responses:
|
|
170
170
|
200:
|
|
171
|
-
description: OK
|
|
171
|
+
description: "OK"
|
|
172
172
|
401:
|
|
173
|
-
description: Invalid Auth Token
|
|
173
|
+
description: "Invalid Auth Token"
|
|
174
174
|
404:
|
|
175
|
-
description: No rule found for the given id
|
|
175
|
+
description: "No rule found for the given id"
|
|
176
176
|
"""
|
|
177
177
|
parameters = json_parameters()
|
|
178
178
|
options: dict[str, Any] = param_get(parameters, 'options')
|
|
@@ -197,17 +197,17 @@ class Rule(ErrorHandlingMethodView):
|
|
|
197
197
|
parameters:
|
|
198
198
|
- name: rule_id
|
|
199
199
|
in: path
|
|
200
|
-
description: The id of the replication rule.
|
|
200
|
+
description: "The id of the replication rule."
|
|
201
201
|
schema:
|
|
202
202
|
type: string
|
|
203
203
|
style: simple
|
|
204
204
|
responses:
|
|
205
205
|
200:
|
|
206
|
-
description: OK
|
|
206
|
+
description: "OK"
|
|
207
207
|
401:
|
|
208
|
-
description: Invalid Auth Token
|
|
208
|
+
description: "Invalid Auth Token"
|
|
209
209
|
404:
|
|
210
|
-
description: No rule found for the given id
|
|
210
|
+
description: "No rule found for the given id"
|
|
211
211
|
"""
|
|
212
212
|
parameters = json_parameters()
|
|
213
213
|
purge_replicas = param_get(parameters, 'purge_replicas', default=None)
|
|
@@ -233,17 +233,17 @@ class AllRule(ErrorHandlingMethodView):
|
|
|
233
233
|
- Rule
|
|
234
234
|
responses:
|
|
235
235
|
200:
|
|
236
|
-
description: OK
|
|
236
|
+
description: "OK"
|
|
237
237
|
content:
|
|
238
238
|
application/json:
|
|
239
239
|
schema:
|
|
240
240
|
type: string
|
|
241
241
|
401:
|
|
242
|
-
description: Invalid Auth Token
|
|
242
|
+
description: "Invalid Auth Token"
|
|
243
243
|
404:
|
|
244
|
-
description: No rule found for the given id
|
|
244
|
+
description: "No rule found for the given id"
|
|
245
245
|
406:
|
|
246
|
-
description: Not Acceptable
|
|
246
|
+
description: "Not Acceptable"
|
|
247
247
|
"""
|
|
248
248
|
try:
|
|
249
249
|
def generate(filters, vo):
|
|
@@ -261,7 +261,7 @@ class AllRule(ErrorHandlingMethodView):
|
|
|
261
261
|
tags:
|
|
262
262
|
- Rule
|
|
263
263
|
requestBody:
|
|
264
|
-
description: Parameters for the new rule.
|
|
264
|
+
description: "Parameters for the new rule."
|
|
265
265
|
content:
|
|
266
266
|
'application/json':
|
|
267
267
|
schema:
|
|
@@ -273,88 +273,88 @@ class AllRule(ErrorHandlingMethodView):
|
|
|
273
273
|
- rse_expression
|
|
274
274
|
properties:
|
|
275
275
|
dids:
|
|
276
|
-
description: The list of data identifiers.
|
|
276
|
+
description: "The list of data identifiers."
|
|
277
277
|
type: array
|
|
278
278
|
items:
|
|
279
279
|
type: object
|
|
280
280
|
properties:
|
|
281
281
|
scope:
|
|
282
|
-
description: The scope of the data identifier
|
|
282
|
+
description: "The scope of the data identifier"
|
|
283
283
|
type: string
|
|
284
284
|
name:
|
|
285
|
-
description: The name of the data identifier
|
|
285
|
+
description: "The name of the data identifier"
|
|
286
286
|
type: string
|
|
287
287
|
account:
|
|
288
|
-
description: The account of the issuer.
|
|
288
|
+
description: "The account of the issuer."
|
|
289
289
|
type: string
|
|
290
290
|
copies:
|
|
291
|
-
description: The number of replicas.
|
|
291
|
+
description: "The number of replicas."
|
|
292
292
|
type: integer
|
|
293
293
|
rse_expression:
|
|
294
|
-
description: The rse expression which gets resolved into a list of RSEs.
|
|
294
|
+
description: "The rse expression which gets resolved into a list of RSEs."
|
|
295
295
|
type: string
|
|
296
296
|
grouping:
|
|
297
|
-
description: The grouping of the files to take into account. (ALL, DATASET, NONE)
|
|
297
|
+
description: "The grouping of the files to take into account. (ALL, DATASET, NONE)"
|
|
298
298
|
type: string
|
|
299
299
|
weight:
|
|
300
|
-
description: Weighting scheme to be used.
|
|
300
|
+
description: "Weighting scheme to be used."
|
|
301
301
|
type: number
|
|
302
302
|
lifetime:
|
|
303
|
-
description: The lifetime of the replication rule in seconds.
|
|
303
|
+
description: "The lifetime of the replication rule in seconds."
|
|
304
304
|
type: integer
|
|
305
305
|
locked:
|
|
306
|
-
description: If the rule is locked.
|
|
306
|
+
description: "If the rule is locked."
|
|
307
307
|
type: boolean
|
|
308
308
|
subscription_id:
|
|
309
|
-
description: The subscription_id, if the rule is created by a subscription.
|
|
309
|
+
description: "The subscription_id, if the rule is created by a subscription."
|
|
310
310
|
type: string
|
|
311
311
|
sourse_replica_expression:
|
|
312
|
-
description: Only use replicas as source from these RSEs.
|
|
312
|
+
description: "Only use replicas as source from these RSEs."
|
|
313
313
|
type: string
|
|
314
314
|
activity:
|
|
315
|
-
description: Activity to be passed to the conveyor.
|
|
315
|
+
description: "Activity to be passed to the conveyor."
|
|
316
316
|
type: string
|
|
317
317
|
notify:
|
|
318
|
-
description: Notification setting of the rule ('Y', 'N', 'C'; None = 'N').
|
|
318
|
+
description: "Notification setting of the rule ('Y', 'N', 'C'; None = 'N')."
|
|
319
319
|
type: string
|
|
320
320
|
purge_replicas:
|
|
321
|
-
description: Purge setting if a replica should be directly deleted after the rule is deleted.
|
|
321
|
+
description: "Purge setting if a replica should be directly deleted after the rule is deleted."
|
|
322
322
|
type: boolean
|
|
323
323
|
ignore_availability:
|
|
324
|
-
description: Option to ignore the availability of RSEs.
|
|
324
|
+
description: "Option to ignore the availability of RSEs."
|
|
325
325
|
type: boolean
|
|
326
326
|
comments:
|
|
327
|
-
description: Comment about the rule.
|
|
327
|
+
description: "Comment about the rule."
|
|
328
328
|
type: string
|
|
329
329
|
ask_approval:
|
|
330
|
-
description: Ask for approval for this rule.
|
|
330
|
+
description: "Ask for approval for this rule."
|
|
331
331
|
type: boolean
|
|
332
332
|
asynchronous:
|
|
333
|
-
description: Create replication rule asynchronously by the judge-injector.
|
|
333
|
+
description: "Create replication rule asynchronously by the judge-injector."
|
|
334
334
|
type: boolean
|
|
335
335
|
priority:
|
|
336
|
-
description: Priority of the rule and the transfers which should be submitted.
|
|
336
|
+
description: "Priority of the rule and the transfers which should be submitted."
|
|
337
337
|
type: integer
|
|
338
338
|
split_container:
|
|
339
|
-
description: Should a container rule be split into individual dataset rules.
|
|
339
|
+
description: "Should a container rule be split into individual dataset rules."
|
|
340
340
|
type: boolean
|
|
341
341
|
meta:
|
|
342
|
-
description: Dictionary with metadata from the WFMS.
|
|
342
|
+
description: "Dictionary with metadata from the WFMS."
|
|
343
343
|
type: string
|
|
344
344
|
responses:
|
|
345
345
|
201:
|
|
346
|
-
description: Rule created.
|
|
346
|
+
description: "Rule created."
|
|
347
347
|
content:
|
|
348
348
|
application/json:
|
|
349
349
|
schema:
|
|
350
350
|
type: array
|
|
351
351
|
items:
|
|
352
352
|
type: string
|
|
353
|
-
description: Id of each created rule.
|
|
353
|
+
description: "Id of each created rule."
|
|
354
354
|
401:
|
|
355
|
-
description: Invalid Auth Token
|
|
355
|
+
description: "Invalid Auth Token"
|
|
356
356
|
404:
|
|
357
|
-
description: No rule found for the given id
|
|
357
|
+
description: "No rule found for the given id"
|
|
358
358
|
409:
|
|
359
359
|
description: |
|
|
360
360
|
- Invalid Replication Rule
|
|
@@ -433,13 +433,13 @@ class ReplicaLocks(ErrorHandlingMethodView):
|
|
|
433
433
|
parameters:
|
|
434
434
|
- name: rule_id
|
|
435
435
|
in: path
|
|
436
|
-
description: The id of the replication rule.
|
|
436
|
+
description: "The id of the replication rule."
|
|
437
437
|
schema:
|
|
438
438
|
type: string
|
|
439
439
|
style: simple
|
|
440
440
|
responses:
|
|
441
441
|
200:
|
|
442
|
-
description: OK
|
|
442
|
+
description: "OK"
|
|
443
443
|
content:
|
|
444
444
|
application/json:
|
|
445
445
|
schema:
|
|
@@ -448,29 +448,29 @@ class ReplicaLocks(ErrorHandlingMethodView):
|
|
|
448
448
|
type: object
|
|
449
449
|
properties:
|
|
450
450
|
scope:
|
|
451
|
-
description: The scope of the lock.
|
|
451
|
+
description: "The scope of the lock."
|
|
452
452
|
type: string
|
|
453
453
|
name:
|
|
454
|
-
description: The name of the lock.
|
|
454
|
+
description: "The name of the lock."
|
|
455
455
|
type: string
|
|
456
456
|
rse_id:
|
|
457
|
-
description: The rse_id of the lock.
|
|
457
|
+
description: "The rse_id of the lock."
|
|
458
458
|
type: string
|
|
459
459
|
rse:
|
|
460
|
-
description: Information about the rse of the lock.
|
|
460
|
+
description: "Information about the rse of the lock."
|
|
461
461
|
type: object
|
|
462
462
|
state:
|
|
463
|
-
description: The state of the lock.
|
|
463
|
+
description: "The state of the lock."
|
|
464
464
|
type: string
|
|
465
465
|
rule_id:
|
|
466
|
-
description: The rule_id of the lock.
|
|
466
|
+
description: "The rule_id of the lock."
|
|
467
467
|
type: string
|
|
468
468
|
401:
|
|
469
|
-
description: Invalid Auth Token
|
|
469
|
+
description: "Invalid Auth Token"
|
|
470
470
|
404:
|
|
471
|
-
description: No rule found for the given id
|
|
471
|
+
description: "No rule found for the given id"
|
|
472
472
|
406:
|
|
473
|
-
description: Not Acceptable
|
|
473
|
+
description: "Not Acceptable"
|
|
474
474
|
"""
|
|
475
475
|
|
|
476
476
|
def generate(vo):
|
|
@@ -492,7 +492,7 @@ class ReduceRule(ErrorHandlingMethodView):
|
|
|
492
492
|
parameters:
|
|
493
493
|
- name: rule_id
|
|
494
494
|
in: path
|
|
495
|
-
description: The id of the replication rule.
|
|
495
|
+
description: "The id of the replication rule."
|
|
496
496
|
schema:
|
|
497
497
|
type: string
|
|
498
498
|
style: simple
|
|
@@ -505,24 +505,24 @@ class ReduceRule(ErrorHandlingMethodView):
|
|
|
505
505
|
- copies
|
|
506
506
|
properties:
|
|
507
507
|
copies:
|
|
508
|
-
description: Number of copies to keep.
|
|
508
|
+
description: "Number of copies to keep."
|
|
509
509
|
type: integer
|
|
510
510
|
responses:
|
|
511
511
|
200:
|
|
512
|
-
description: OK
|
|
512
|
+
description: "OK"
|
|
513
513
|
content:
|
|
514
514
|
application/json:
|
|
515
515
|
schema:
|
|
516
516
|
type: array
|
|
517
517
|
items:
|
|
518
518
|
type: string
|
|
519
|
-
description: Rule id.
|
|
519
|
+
description: "Rule id."
|
|
520
520
|
401:
|
|
521
|
-
description: Invalid Auth Token
|
|
521
|
+
description: "Invalid Auth Token"
|
|
522
522
|
404:
|
|
523
|
-
description: No rule found for the given id
|
|
523
|
+
description: "No rule found for the given id"
|
|
524
524
|
409:
|
|
525
|
-
description: Rule replace failed.
|
|
525
|
+
description: "Rule replace failed."
|
|
526
526
|
"""
|
|
527
527
|
parameters = json_parameters()
|
|
528
528
|
copies = param_get(parameters, 'copies')
|
|
@@ -554,7 +554,7 @@ class MoveRule(ErrorHandlingMethodView):
|
|
|
554
554
|
parameters:
|
|
555
555
|
- name: rule_id
|
|
556
556
|
in: path
|
|
557
|
-
description: The id of the replication rule.
|
|
557
|
+
description: "The id of the replication rule."
|
|
558
558
|
schema:
|
|
559
559
|
type: string
|
|
560
560
|
style: simple
|
|
@@ -567,33 +567,33 @@ class MoveRule(ErrorHandlingMethodView):
|
|
|
567
567
|
- rse_expression
|
|
568
568
|
properties:
|
|
569
569
|
rse_expression:
|
|
570
|
-
description: The new rse expression.
|
|
570
|
+
description: "The new rse expression."
|
|
571
571
|
type: string
|
|
572
572
|
rule_id:
|
|
573
|
-
description: The rule_id of the rule to moves. If specified, overrides the `rule_id` parameter.
|
|
573
|
+
description: "The rule_id of the rule to moves. If specified, overrides the `rule_id` parameter."
|
|
574
574
|
type: string
|
|
575
575
|
activity:
|
|
576
|
-
description: The `activity` of the moved rule.
|
|
576
|
+
description: "The `activity` of the moved rule."
|
|
577
577
|
type: string
|
|
578
578
|
source_replica_expression:
|
|
579
|
-
description: The `source_replica_expression` of the moved rule.
|
|
579
|
+
description: "The `source_replica_expression` of the moved rule."
|
|
580
580
|
type: string
|
|
581
581
|
responses:
|
|
582
582
|
200:
|
|
583
|
-
description: OK
|
|
583
|
+
description: "OK"
|
|
584
584
|
content:
|
|
585
585
|
application/json:
|
|
586
586
|
schema:
|
|
587
587
|
type: array
|
|
588
588
|
items:
|
|
589
589
|
type: string
|
|
590
|
-
description: Rule id.
|
|
590
|
+
description: "Rule id."
|
|
591
591
|
401:
|
|
592
|
-
description: Invalid Auth Token
|
|
592
|
+
description: "Invalid Auth Token"
|
|
593
593
|
404:
|
|
594
|
-
description: No rule found for the given id
|
|
594
|
+
description: "No rule found for the given id"
|
|
595
595
|
409:
|
|
596
|
-
description: Rule replace failed.
|
|
596
|
+
description: "Rule replace failed."
|
|
597
597
|
"""
|
|
598
598
|
parameters = json_parameters()
|
|
599
599
|
rse_expression = param_get(parameters, 'rse_expression')
|
|
@@ -635,42 +635,42 @@ class RuleHistory(ErrorHandlingMethodView):
|
|
|
635
635
|
parameters:
|
|
636
636
|
- name: rule_id
|
|
637
637
|
in: path
|
|
638
|
-
description: The id of the replication rule.
|
|
638
|
+
description: "The id of the replication rule."
|
|
639
639
|
schema:
|
|
640
640
|
type: string
|
|
641
641
|
style: simple
|
|
642
642
|
responses:
|
|
643
643
|
200:
|
|
644
|
-
description: OK
|
|
644
|
+
description: "OK"
|
|
645
645
|
content:
|
|
646
646
|
application/json:
|
|
647
647
|
schema:
|
|
648
648
|
type: array
|
|
649
649
|
items:
|
|
650
650
|
type: object
|
|
651
|
-
description: Rule history object.
|
|
651
|
+
description: "Rule history object."
|
|
652
652
|
properties:
|
|
653
653
|
updated_at:
|
|
654
654
|
type: string
|
|
655
|
-
description: The date of the update.
|
|
655
|
+
description: "The date of the update."
|
|
656
656
|
state:
|
|
657
657
|
type: string
|
|
658
|
-
description: The state of the update.
|
|
658
|
+
description: "The state of the update."
|
|
659
659
|
locks_ok_cnt:
|
|
660
660
|
type: integer
|
|
661
|
-
description: The number of locks which are ok.
|
|
661
|
+
description: "The number of locks which are ok."
|
|
662
662
|
locks_stuck_cnt:
|
|
663
663
|
type: integer
|
|
664
|
-
description: The number of locks which are stuck.
|
|
664
|
+
description: "The number of locks which are stuck."
|
|
665
665
|
locks_replicating_cnt:
|
|
666
666
|
type: integer
|
|
667
|
-
description: The number of locks which are replicating.
|
|
667
|
+
description: "The number of locks which are replicating."
|
|
668
668
|
401:
|
|
669
|
-
description: Invalid Auth Token
|
|
669
|
+
description: "Invalid Auth Token"
|
|
670
670
|
404:
|
|
671
|
-
description: No rule found for the given id
|
|
671
|
+
description: "No rule found for the given id"
|
|
672
672
|
406:
|
|
673
|
-
description: Not acceptable.
|
|
673
|
+
description: "Not acceptable."
|
|
674
674
|
"""
|
|
675
675
|
def generate(issuer, vo):
|
|
676
676
|
for history in list_replication_rule_history(rule_id, issuer=issuer, vo=vo):
|
|
@@ -692,52 +692,52 @@ class RuleHistoryFull(ErrorHandlingMethodView):
|
|
|
692
692
|
parameters:
|
|
693
693
|
- name: scope_name
|
|
694
694
|
in: path
|
|
695
|
-
description: The data identifier of scope-name to retrieve the history from. ((scope)/(name))
|
|
695
|
+
description: "The data identifier of scope-name to retrieve the history from. ((scope)/(name))"
|
|
696
696
|
schema:
|
|
697
697
|
type: string
|
|
698
698
|
style: simple
|
|
699
699
|
responses:
|
|
700
700
|
200:
|
|
701
|
-
description: OK
|
|
701
|
+
description: "OK"
|
|
702
702
|
content:
|
|
703
703
|
application/x-json-stream:
|
|
704
704
|
schema:
|
|
705
705
|
type: array
|
|
706
706
|
items:
|
|
707
707
|
type: object
|
|
708
|
-
description: Rule history object.
|
|
708
|
+
description: "Rule history object."
|
|
709
709
|
properties:
|
|
710
710
|
rule_id:
|
|
711
711
|
type: string
|
|
712
|
-
description: The id of the rule.
|
|
712
|
+
description: "The id of the rule."
|
|
713
713
|
updated_at:
|
|
714
714
|
type: string
|
|
715
|
-
description: The date of the update.
|
|
715
|
+
description: "The date of the update."
|
|
716
716
|
created_at:
|
|
717
717
|
type: string
|
|
718
|
-
description: The date of the creation.
|
|
718
|
+
description: "The date of the creation."
|
|
719
719
|
rse_expression:
|
|
720
720
|
type: string
|
|
721
|
-
description: The rse expression.
|
|
721
|
+
description: "The rse expression."
|
|
722
722
|
state:
|
|
723
723
|
type: string
|
|
724
|
-
description: The state of the update.
|
|
724
|
+
description: "The state of the update."
|
|
725
725
|
account:
|
|
726
726
|
type: string
|
|
727
|
-
description: The account who initiated the change.
|
|
727
|
+
description: "The account who initiated the change."
|
|
728
728
|
locks_ok_cnt:
|
|
729
729
|
type: integer
|
|
730
|
-
description: The number of locks which are ok.
|
|
730
|
+
description: "The number of locks which are ok."
|
|
731
731
|
locks_stuck_cnt:
|
|
732
732
|
type: integer
|
|
733
|
-
description: The number of locks which are stuck.
|
|
733
|
+
description: "The number of locks which are stuck."
|
|
734
734
|
locks_replicating_cnt:
|
|
735
735
|
type: integer
|
|
736
|
-
description: The number of locks which are replicating.
|
|
736
|
+
description: "The number of locks which are replicating."
|
|
737
737
|
401:
|
|
738
|
-
description: Invalid Auth Token
|
|
738
|
+
description: "Invalid Auth Token"
|
|
739
739
|
406:
|
|
740
|
-
description: Not acceptable.
|
|
740
|
+
description: "Not acceptable."
|
|
741
741
|
"""
|
|
742
742
|
try:
|
|
743
743
|
scope, name = parse_scope_name(scope_name, request.environ['vo'])
|
|
@@ -764,13 +764,13 @@ class RuleAnalysis(ErrorHandlingMethodView):
|
|
|
764
764
|
parameters:
|
|
765
765
|
- name: rule_id
|
|
766
766
|
in: path
|
|
767
|
-
description: The id of the replication rule.
|
|
767
|
+
description: "The id of the replication rule."
|
|
768
768
|
schema:
|
|
769
769
|
type: string
|
|
770
770
|
style: simple
|
|
771
771
|
responses:
|
|
772
772
|
200:
|
|
773
|
-
description: OK
|
|
773
|
+
description: "OK"
|
|
774
774
|
content:
|
|
775
775
|
application/json:
|
|
776
776
|
schema:
|
|
@@ -778,46 +778,46 @@ class RuleAnalysis(ErrorHandlingMethodView):
|
|
|
778
778
|
properties:
|
|
779
779
|
rule_error:
|
|
780
780
|
type: string
|
|
781
|
-
description: The state of the rule.
|
|
781
|
+
description: "The state of the rule."
|
|
782
782
|
transfers:
|
|
783
783
|
type: array
|
|
784
|
-
description: List of all transfer errors.
|
|
784
|
+
description: "List of all transfer errors."
|
|
785
785
|
items:
|
|
786
786
|
type: object
|
|
787
787
|
properties:
|
|
788
788
|
scope:
|
|
789
789
|
type: string
|
|
790
|
-
description: The scope of the transfer.
|
|
790
|
+
description: "The scope of the transfer."
|
|
791
791
|
name:
|
|
792
792
|
type: string
|
|
793
|
-
description: The name of the lock.
|
|
793
|
+
description: "The name of the lock."
|
|
794
794
|
rse_id:
|
|
795
795
|
type: string
|
|
796
|
-
description: The rse_id of the transferred lock.
|
|
796
|
+
description: "The rse_id of the transferred lock."
|
|
797
797
|
rse:
|
|
798
798
|
type: object
|
|
799
|
-
description: Information about the rse of the transferred lock.
|
|
799
|
+
description: "Information about the rse of the transferred lock."
|
|
800
800
|
attempts:
|
|
801
801
|
type: integer
|
|
802
|
-
description: The number of attempts.
|
|
802
|
+
description: "The number of attempts."
|
|
803
803
|
last_error:
|
|
804
804
|
type: string
|
|
805
|
-
description: The last error that occurred.
|
|
805
|
+
description: "The last error that occurred."
|
|
806
806
|
last_source:
|
|
807
807
|
type: string
|
|
808
|
-
description: The last source.
|
|
808
|
+
description: "The last source."
|
|
809
809
|
sources:
|
|
810
810
|
type: array
|
|
811
|
-
description: All available rse sources.
|
|
811
|
+
description: "All available rse sources."
|
|
812
812
|
last_time:
|
|
813
813
|
type: string
|
|
814
|
-
description: The time of the last transfer.
|
|
814
|
+
description: "The time of the last transfer."
|
|
815
815
|
401:
|
|
816
|
-
description: Invalid Auth Token
|
|
816
|
+
description: "Invalid Auth Token"
|
|
817
817
|
404:
|
|
818
|
-
description: No rule found for the given id
|
|
818
|
+
description: "No rule found for the given id"
|
|
819
819
|
406:
|
|
820
|
-
description: Not acceptable.
|
|
820
|
+
description: "Not acceptable."
|
|
821
821
|
"""
|
|
822
822
|
analysis = examine_replication_rule(rule_id, issuer=request.environ['issuer'], vo=request.environ['vo'])
|
|
823
823
|
return Response(render_json(**analysis), content_type='application/json')
|