rucio 37.3.0__py3-none-any.whl → 37.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rucio might be problematic. Click here for more details.

Files changed (128) hide show
  1. rucio/cli/rule.py +1 -1
  2. rucio/client/accountclient.py +205 -60
  3. rucio/client/accountlimitclient.py +84 -25
  4. rucio/client/baseclient.py +85 -48
  5. rucio/client/client.py +49 -41
  6. rucio/client/configclient.py +36 -13
  7. rucio/client/credentialclient.py +16 -6
  8. rucio/client/didclient.py +321 -133
  9. rucio/client/diracclient.py +13 -6
  10. rucio/client/downloadclient.py +435 -165
  11. rucio/client/exportclient.py +8 -2
  12. rucio/client/fileclient.py +10 -3
  13. rucio/client/importclient.py +4 -1
  14. rucio/client/lifetimeclient.py +48 -31
  15. rucio/client/lockclient.py +22 -7
  16. rucio/client/metaconventionsclient.py +59 -21
  17. rucio/client/pingclient.py +3 -1
  18. rucio/client/replicaclient.py +213 -96
  19. rucio/client/requestclient.py +124 -16
  20. rucio/client/rseclient.py +385 -160
  21. rucio/client/ruleclient.py +147 -51
  22. rucio/client/scopeclient.py +35 -10
  23. rucio/client/subscriptionclient.py +60 -27
  24. rucio/client/touchclient.py +16 -7
  25. rucio/common/constants.py +14 -17
  26. rucio/common/utils.py +18 -2
  27. rucio/core/permission/generic.py +40 -1
  28. rucio/core/replica.py +6 -6
  29. rucio/core/request.py +2 -2
  30. rucio/core/rule.py +5 -3
  31. rucio/core/transfer.py +4 -5
  32. rucio/daemons/conveyor/throttler.py +2 -1
  33. rucio/daemons/judge/evaluator.py +1 -1
  34. rucio/db/sqla/constants.py +3 -3
  35. rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +1 -1
  36. rucio/db/sqla/models.py +1 -1
  37. rucio/gateway/replica.py +129 -41
  38. rucio/gateway/request.py +177 -103
  39. rucio/gateway/subscription.py +90 -108
  40. rucio/rse/rsemanager.py +2 -2
  41. rucio/vcsversion.py +3 -3
  42. rucio/web/rest/flaskapi/v1/accountlimits.py +22 -22
  43. rucio/web/rest/flaskapi/v1/accounts.py +157 -157
  44. rucio/web/rest/flaskapi/v1/archives.py +10 -10
  45. rucio/web/rest/flaskapi/v1/auth.py +106 -106
  46. rucio/web/rest/flaskapi/v1/config.py +37 -37
  47. rucio/web/rest/flaskapi/v1/credentials.py +25 -25
  48. rucio/web/rest/flaskapi/v1/dids.py +381 -381
  49. rucio/web/rest/flaskapi/v1/dirac.py +8 -8
  50. rucio/web/rest/flaskapi/v1/export.py +6 -6
  51. rucio/web/rest/flaskapi/v1/heartbeats.py +14 -14
  52. rucio/web/rest/flaskapi/v1/identities.py +25 -25
  53. rucio/web/rest/flaskapi/v1/import.py +19 -19
  54. rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +54 -54
  55. rucio/web/rest/flaskapi/v1/locks.py +60 -60
  56. rucio/web/rest/flaskapi/v1/meta_conventions.py +29 -29
  57. rucio/web/rest/flaskapi/v1/nongrid_traces.py +4 -4
  58. rucio/web/rest/flaskapi/v1/ping.py +4 -4
  59. rucio/web/rest/flaskapi/v1/redirect.py +17 -17
  60. rucio/web/rest/flaskapi/v1/replicas.py +282 -282
  61. rucio/web/rest/flaskapi/v1/requests.py +424 -229
  62. rucio/web/rest/flaskapi/v1/rses.py +427 -427
  63. rucio/web/rest/flaskapi/v1/rules.py +129 -129
  64. rucio/web/rest/flaskapi/v1/scopes.py +21 -21
  65. rucio/web/rest/flaskapi/v1/subscriptions.py +122 -122
  66. rucio/web/rest/flaskapi/v1/traces.py +18 -18
  67. rucio/web/rest/flaskapi/v1/vos.py +32 -32
  68. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.template +0 -1
  69. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio_multi_vo.cfg.template +0 -1
  70. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/requirements.server.txt +1 -1
  71. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/METADATA +1 -1
  72. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/RECORD +128 -128
  73. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/WHEEL +1 -1
  74. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic.ini.template +0 -0
  75. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/alembic_offline.ini.template +0 -0
  76. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/globus-config.yml.template +0 -0
  77. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/ldap.cfg.template +0 -0
  78. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approval_request.tmpl +0 -0
  79. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  80. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_approved_user.tmpl +0 -0
  81. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  82. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_denied_user.tmpl +0 -0
  83. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  84. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rse-accounts.cfg.template +0 -0
  85. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/etc/rucio.cfg.atlas.client.template +0 -0
  86. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/bootstrap.py +0 -0
  87. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/merge_rucio_configs.py +0 -0
  88. {rucio-37.3.0.data → rucio-37.5.0.data}/data/rucio/tools/reset_database.py +0 -0
  89. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio +0 -0
  90. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-account +0 -0
  91. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-collection-replica +0 -0
  92. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-abacus-rse +0 -0
  93. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-admin +0 -0
  94. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-atropos +0 -0
  95. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-auditor +0 -0
  96. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-automatix +0 -0
  97. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-bb8 +0 -0
  98. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-cache-client +0 -0
  99. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-cache-consumer +0 -0
  100. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-finisher +0 -0
  101. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-poller +0 -0
  102. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-preparer +0 -0
  103. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-receiver +0 -0
  104. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-stager +0 -0
  105. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-submitter +0 -0
  106. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-conveyor-throttler +0 -0
  107. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-dark-reaper +0 -0
  108. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-dumper +0 -0
  109. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-follower +0 -0
  110. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-hermes +0 -0
  111. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-cleaner +0 -0
  112. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-evaluator +0 -0
  113. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-injector +0 -0
  114. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-judge-repairer +0 -0
  115. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-kronos +0 -0
  116. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-minos +0 -0
  117. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-minos-temporary-expiration +0 -0
  118. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-necromancer +0 -0
  119. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-oauth-manager +0 -0
  120. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-reaper +0 -0
  121. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-replica-recoverer +0 -0
  122. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-rse-decommissioner +0 -0
  123. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-storage-consistency-actions +0 -0
  124. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-transmogrifier +0 -0
  125. {rucio-37.3.0.data → rucio-37.5.0.data}/scripts/rucio-undertaker +0 -0
  126. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
  127. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/licenses/LICENSE +0 -0
  128. {rucio-37.3.0.dist-info → rucio-37.5.0.dist-info}/top_level.txt +0 -0
@@ -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')