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
@@ -154,76 +154,76 @@ class Replicas(ErrorHandlingMethodView):
154
154
  """
155
155
  ---
156
156
  summary: Get Replicas
157
- description: List all replicas for data identifiers.
157
+ description: "List all replicas for data identifiers."
158
158
  tags:
159
159
  - Replicas
160
160
  parameters:
161
161
  - name: scope_name
162
162
  in: path
163
- description: The DID associated with the replicas.
163
+ description: "The DID associated with the replicas."
164
164
  schema:
165
165
  type: string
166
166
  style: simple
167
167
  - name: X-Forwarded-For
168
168
  in: header
169
- description: The client ip
169
+ description: "The client ip"
170
170
  schema:
171
171
  type: string
172
172
  - name: schemes
173
173
  in: query
174
- description: The schemes of the replicas.
174
+ description: "The schemes of the replicas."
175
175
  schema:
176
176
  type: string
177
177
  - name: select
178
178
  in: query
179
- description: The sorting algorithm.
179
+ description: "The sorting algorithm."
180
180
  schema:
181
181
  type: string
182
182
  enum: ["geoip", "random"]
183
183
  - name: limit
184
184
  in: query
185
- description: The maximum number of replicas returned.
185
+ description: "The maximum number of replicas returned."
186
186
  schema:
187
187
  type: integer
188
188
  responses:
189
189
  200:
190
- description: OK
190
+ description: "OK"
191
191
  content:
192
192
  application/x-json-stream:
193
193
  schema:
194
- description: A list with all replicas.
194
+ description: "A list with all replicas."
195
195
  type: array
196
196
  items:
197
- description: A replica. Possibly contains more information.
197
+ description: "A replica. Possibly contains more information."
198
198
  type: object
199
199
  properties:
200
200
  scope:
201
- description: The scope of the replica.
201
+ description: "The scope of the replica."
202
202
  type: string
203
203
  name:
204
- description: The name of the replica.
204
+ description: "The name of the replica."
205
205
  type: string
206
206
  bytes:
207
- description: The size of the replica in bytes.
207
+ description: "The size of the replica in bytes."
208
208
  type: integer
209
209
  md5:
210
- description: The md5 checksum of the replica.
210
+ description: "The md5 checksum of the replica."
211
211
  type: string
212
212
  adler32:
213
- description: The adler32 checksum of the replica.
213
+ description: "The adler32 checksum of the replica."
214
214
  type: string
215
215
  pfns:
216
- description: The pfns associated with the replica.
216
+ description: "The pfns associated with the replica."
217
217
  type: array
218
218
  rses:
219
- description: The rse associated with the replica.
219
+ description: "The rse associated with the replica."
220
220
  type: string
221
221
  401:
222
- description: Invalid Auth Token
222
+ description: "Invalid Auth Token"
223
223
  404:
224
- description: Did not found
224
+ description: "Did not found"
225
225
  406:
226
- description: Not acceptable
226
+ description: "Not acceptable"
227
227
  """
228
228
  try:
229
229
  scope, name = parse_scope_name(scope_name, request.environ['vo'])
@@ -252,7 +252,7 @@ class Replicas(ErrorHandlingMethodView):
252
252
  def _list_and_sort_replicas(vo):
253
253
  # we need to call list_replicas before starting to reply
254
254
  # otherwise the exceptions won't be propagated correctly
255
- for rfile in list_replicas(dids=dids, schemes=schemes, vo=vo):
255
+ for rfile in list_replicas(dids=dids, schemes=schemes, vo=vo): # type: ignore (pending https://github.com/rucio/rucio/issues/7739)
256
256
  replicas = []
257
257
  dictreplica = {}
258
258
  for rse in rfile['rses']:
@@ -277,7 +277,7 @@ class Replicas(ErrorHandlingMethodView):
277
277
  """
278
278
  ---
279
279
  summary: Create File Replicas
280
- description: Create file replicas at a given RSE.
280
+ description: "Create file replicas at a given RSE."
281
281
  tags:
282
282
  - Replicas
283
283
  requestBody:
@@ -290,10 +290,10 @@ class Replicas(ErrorHandlingMethodView):
290
290
  - files
291
291
  properties:
292
292
  rse:
293
- description: The rse for the replication
293
+ description: "The rse for the replication"
294
294
  type: string
295
295
  files:
296
- description: The files to replicate
296
+ description: "The files to replicate"
297
297
  type: array
298
298
  items:
299
299
  type: object
@@ -303,53 +303,53 @@ class Replicas(ErrorHandlingMethodView):
303
303
  - name
304
304
  properties:
305
305
  pfn:
306
- description: The pfn of the replica.
306
+ description: "The pfn of the replica."
307
307
  type: string
308
308
  name:
309
- description: The DID name.
309
+ description: "The DID name."
310
310
  type: string
311
311
  bytes:
312
- description: The size of the replica in bytes.
312
+ description: "The size of the replica in bytes."
313
313
  type: integer
314
314
  state:
315
- description: The state of the replica.
315
+ description: "The state of the replica."
316
316
  type: string
317
317
  path:
318
- description: The path of the new replica.
318
+ description: "The path of the new replica."
319
319
  type: string
320
320
  md5:
321
- description: The md5 checksum.
321
+ description: "The md5 checksum."
322
322
  type: string
323
323
  adler32:
324
- description: The adler32 checksum.
324
+ description: "The adler32 checksum."
325
325
  type: string
326
326
  lcok_cnt:
327
- description: The lock count.
327
+ description: "The lock count."
328
328
  type: integer
329
329
  tombstone:
330
- description: The tombstone.
330
+ description: "The tombstone."
331
331
  type: string
332
332
  ignore_availability:
333
- description: The ignore availability.
333
+ description: "The ignore availability."
334
334
  type: boolean
335
335
  responses:
336
336
  201:
337
- description: OK
337
+ description: "OK"
338
338
  content:
339
339
  application/json:
340
340
  schema:
341
341
  type: string
342
342
  enum: ["Created"]
343
343
  400:
344
- description: Invalid Path
344
+ description: "Invalid Path"
345
345
  401:
346
- description: Invalid Auth Token
346
+ description: "Invalid Auth Token"
347
347
  404:
348
- description: Rse or scope not found
348
+ description: "Rse or scope not found"
349
349
  409:
350
- description: Replica or Did already exists
350
+ description: "Replica or Did already exists"
351
351
  503:
352
- description: Resource temporary unavailable
352
+ description: "Resource temporary unavailable"
353
353
  """
354
354
  parameters = json_parameters(parse_response)
355
355
  rse = param_get(parameters, 'rse')
@@ -380,7 +380,7 @@ class Replicas(ErrorHandlingMethodView):
380
380
  """
381
381
  ---
382
382
  summary: Update File Replicas
383
- description: Update file replicas state at a given RSE.
383
+ description: "Update file replicas state at a given RSE."
384
384
  tags:
385
385
  - Replicas
386
386
  requestBody:
@@ -393,39 +393,39 @@ class Replicas(ErrorHandlingMethodView):
393
393
  - files
394
394
  properties:
395
395
  rse:
396
- description: The rse for the replication
396
+ description: "The rse for the replication"
397
397
  type: string
398
398
  files:
399
- description: The files to replicate
399
+ description: "The files to replicate"
400
400
  type: array
401
401
  items:
402
402
  type: object
403
403
  properties:
404
404
  name:
405
- description: The pfn of the replica.
405
+ description: "The pfn of the replica."
406
406
  type: string
407
407
  state:
408
- description: The pfn of the replica.
408
+ description: "The pfn of the replica."
409
409
  type: string
410
410
  path:
411
- description: The pfn of the replica.
411
+ description: "The pfn of the replica."
412
412
  type: string
413
413
  error_message:
414
- description: The error message if an error occurred.
414
+ description: "The error message if an error occurred."
415
415
  type: string
416
416
  broken_rule_id:
417
- description: The id of the broken rule if one was found.
417
+ description: "The id of the broken rule if one was found."
418
418
  type: string
419
419
  broken_message:
420
- description: The message of the broken rule.
420
+ description: "The message of the broken rule."
421
421
  type: string
422
422
  responses:
423
423
  200:
424
- description: OK
424
+ description: "OK"
425
425
  400:
426
- description: Cannot decode json parameter list
426
+ description: "Cannot decode json parameter list"
427
427
  401:
428
- description: Invalid Auth Token
428
+ description: "Invalid Auth Token"
429
429
  """
430
430
  parameters = json_parameters(parse_response)
431
431
  rse = param_get(parameters, 'rse')
@@ -442,7 +442,7 @@ class Replicas(ErrorHandlingMethodView):
442
442
  """
443
443
  ---
444
444
  summary: Delete File Replicas
445
- description: Delete file replicas at a given RSE.
445
+ description: "Delete file replicas at a given RSE."
446
446
  tags:
447
447
  - Replicas
448
448
  requestBody:
@@ -455,10 +455,10 @@ class Replicas(ErrorHandlingMethodView):
455
455
  - files
456
456
  properties:
457
457
  rse:
458
- description: The rse name.
458
+ description: "The rse name."
459
459
  type: string
460
460
  files:
461
- description: The files to delete.
461
+ description: "The files to delete."
462
462
  type: array
463
463
  items:
464
464
  type: object
@@ -466,17 +466,17 @@ class Replicas(ErrorHandlingMethodView):
466
466
  - name
467
467
  properties:
468
468
  name:
469
- description: The name of the replica.
469
+ description: "The name of the replica."
470
470
  type: string
471
471
  responses:
472
472
  200:
473
- description: OK
473
+ description: "OK"
474
474
  400:
475
- description: Cannot decode json parameter list.
475
+ description: "Cannot decode json parameter list."
476
476
  401:
477
- description: Invalid Auth Token
477
+ description: "Invalid Auth Token"
478
478
  404:
479
- description: Rse or Replica not found
479
+ description: "Rse or Replica not found"
480
480
  """
481
481
  parameters = json_parameters(parse_response)
482
482
  rse = param_get(parameters, 'rse')
@@ -507,28 +507,28 @@ class ListReplicas(ErrorHandlingMethodView):
507
507
  """
508
508
  ---
509
509
  summary: List Replicas
510
- description: List all replicas for a DID.
510
+ description: "List all replicas for a DID."
511
511
  tags:
512
512
  - Replicas
513
513
  parameters:
514
514
  - name: X-Forwarded-For
515
515
  in: header
516
- description: The client ip address.
516
+ description: "The client ip address."
517
517
  schema:
518
518
  type: string
519
519
  - name: limit
520
520
  in: query
521
- description: The maximum number pfns per replica to return.
521
+ description: "The maximum number pfns per replica to return."
522
522
  schema:
523
523
  type: integer
524
524
  - name: select
525
525
  in: query
526
- description: Requested sorting of the result, e.g., 'geoip', 'random'.
526
+ description: "Requested sorting of the result, e.g., 'geoip', 'random'."
527
527
  schema:
528
528
  type: string
529
529
  - name: sort
530
530
  in: query
531
- description: Requested sorting of the result, e.g., 'geoip', 'random'.
531
+ description: "Requested sorting of the result, e.g., 'geoip', 'random'."
532
532
  schema:
533
533
  type: string
534
534
  requestBody:
@@ -538,62 +538,62 @@ class ListReplicas(ErrorHandlingMethodView):
538
538
  type: object
539
539
  properties:
540
540
  client_location:
541
- description: The clients location.
541
+ description: "The client's location."
542
542
  type: string
543
543
  dids:
544
- description: List of Dids.
544
+ description: "List of Dids."
545
545
  type: array
546
546
  items:
547
547
  type: object
548
548
  properties:
549
549
  scope:
550
- description: The scope of the did.
550
+ description: "The scope of the did."
551
551
  type: string
552
552
  name:
553
- description: The name of the did.
553
+ description: "The name of the did."
554
554
  type: string
555
555
  schemes:
556
- description: A list of schemes to filter the replicas.
556
+ description: "A list of schemes to filter the replicas."
557
557
  type: array
558
558
  items:
559
559
  type: string
560
560
  sort:
561
- description: Requested sorting of the result, e.g., 'geoip', 'random'.
561
+ description: "Requested sorting of the result, e.g., 'geoip', 'random'."
562
562
  type: string
563
563
  unavailable:
564
- description: If unavailable rse should be considered.
564
+ description: "If unavailable rse should be considered."
565
565
  type: boolean
566
566
  deprecated: true
567
567
  ignore_availability:
568
- description: If the availability should be ignored.
568
+ description: "If the availability should be ignored."
569
569
  type: boolean
570
570
  rse_expression:
571
- description: The RSE expression to restrict on a list of RSEs.
571
+ description: "The RSE expression to restrict on a list of RSEs."
572
572
  type: string
573
573
  all_states:
574
- description: Return all replicas whatever state they are in. Adds an extra 'states' entry in the result dictionary.
574
+ description: "Return all replicas whatever state they are in. Adds an extra 'states' entry in the result dictionary."
575
575
  type: boolean
576
576
  domain:
577
- description: The network domain for the call, either None, 'wan' or 'lan'. None is fallback to 'wan', 'all' is both ['lan','wan']
577
+ description: "The network domain for the call, either None, 'wan' or 'lan'. None is fallback to 'wan', 'all' is both ['lan','wan']"
578
578
  type: string
579
579
  signature_lifetime:
580
- description: If supported, in seconds, restrict the lifetime of the signed PFN.
580
+ description: "If supported, in seconds, restrict the lifetime of the signed PFN."
581
581
  type: integer
582
582
  resolve_archives:
583
- description: When set to True, find archives which contain the replicas.
583
+ description: "When set to True, find archives which contain the replicas."
584
584
  type: boolean
585
585
  resolve_parents:
586
- description: When set to True, find all parent datasets which contain the replicas.
586
+ description: "When set to True, find all parent datasets which contain the replicas."
587
587
  type: boolean
588
588
  updated_after:
589
- description: datetime object (UTC time), only return replicas updated after this time
589
+ description: "datetime object (UTC time), only return replicas updated after this time"
590
590
  type: string
591
591
  nrandom:
592
- description: The maximum number of replicas to return.
592
+ description: "The maximum number of replicas to return."
593
593
  type: integer
594
594
  responses:
595
595
  200:
596
- description: OK
596
+ description: "OK"
597
597
  content:
598
598
  application/json:
599
599
  schema:
@@ -602,59 +602,59 @@ class ListReplicas(ErrorHandlingMethodView):
602
602
  type: object
603
603
  properties:
604
604
  scope:
605
- description: The scope of the replica.
605
+ description: "The scope of the replica."
606
606
  type: string
607
607
  name:
608
- description: The name of the replica.
608
+ description: "The name of the replica."
609
609
  type: string
610
610
  bytes:
611
- description: The size of the replica in bytes.
611
+ description: "The size of the replica in bytes."
612
612
  type: integer
613
613
  md5:
614
- description: The md5 checksum.
614
+ description: "The md5 checksum."
615
615
  type: string
616
616
  adler32:
617
- description: The adler32 checksum.
617
+ description: "The adler32 checksum."
618
618
  type: string
619
619
  pfns:
620
- description: The pfns.
620
+ description: "The pfns."
621
621
  type: array
622
622
  rses:
623
- description: The RSESs.
623
+ description: "The RSESs."
624
624
  type: array
625
625
  application/metalink4+xml:
626
626
  schema:
627
627
  type: object
628
628
  properties:
629
629
  scope:
630
- description: The scope of the replica.
630
+ description: "The scope of the replica."
631
631
  type: string
632
632
  name:
633
- description: The name of the replica.
633
+ description: "The name of the replica."
634
634
  type: string
635
635
  bytes:
636
- description: The size of the replica in bytes.
636
+ description: "The size of the replica in bytes."
637
637
  type: integer
638
638
  md5:
639
- description: The md5 checksum.
639
+ description: "The md5 checksum."
640
640
  type: string
641
641
  adler32:
642
- description: The adler32 checksum.
642
+ description: "The adler32 checksum."
643
643
  type: string
644
644
  pfns:
645
- description: The pfns.
645
+ description: "The pfns."
646
646
  type: array
647
647
  rses:
648
- description: The RSESs.
648
+ description: "The RSESs."
649
649
  type: array
650
650
  400:
651
- description: Cannot decode json parameter list.
651
+ description: "Cannot decode json parameter list."
652
652
  401:
653
- description: Invalid Auth Token
653
+ description: "Invalid Auth Token"
654
654
  404:
655
- description: Did not found.
655
+ description: "Did not found."
656
656
  406:
657
- description: Not acceptable
657
+ description: "Not acceptable"
658
658
  """
659
659
  content_type = request.accept_mimetypes.best_match(['application/x-json-stream', 'application/metalink4+xml'], 'application/x-json-stream')
660
660
  metalink = (content_type == 'application/metalink4+xml')
@@ -765,7 +765,7 @@ class ReplicasDIDs(ErrorHandlingMethodView):
765
765
  """
766
766
  ---
767
767
  summary: List Replicas Dids
768
- description: List the DIDs associated to a list of replicas.
768
+ description: "List the DIDs associated to a list of replicas."
769
769
  tags:
770
770
  - Replicas
771
771
  requestBody:
@@ -777,16 +777,16 @@ class ReplicasDIDs(ErrorHandlingMethodView):
777
777
  - rse
778
778
  properties:
779
779
  pfns:
780
- description: The list of pfns.
780
+ description: "The list of pfns."
781
781
  type: array
782
782
  items:
783
783
  type: string
784
784
  rse:
785
- description: The RSE name.
785
+ description: "The RSE name."
786
786
  type: string
787
787
  responses:
788
788
  200:
789
- description: OK
789
+ description: "OK"
790
790
  content:
791
791
  application/x-json-stream:
792
792
  schema:
@@ -795,23 +795,23 @@ class ReplicasDIDs(ErrorHandlingMethodView):
795
795
  type: object
796
796
  additionalProperties:
797
797
  x-additionalPropertiesName: mapped PFNs to DIDs
798
- description: A mapping from a pfn to a did.
798
+ description: "A mapping from a pfn to a did."
799
799
  type: object
800
800
  properties:
801
801
  scope:
802
- description: The scope of the DID.
802
+ description: "The scope of the DID."
803
803
  type: string
804
804
  name:
805
- description: The name of the DID.
805
+ description: "The name of the DID."
806
806
  type: string
807
807
  400:
808
- description: Cannot decode json parameter list.
808
+ description: "Cannot decode json parameter list."
809
809
  401:
810
- description: Invalid Auth Token
810
+ description: "Invalid Auth Token"
811
811
  404:
812
- description: Not found
812
+ description: "Not found"
813
813
  406:
814
- description: Not acceptable
814
+ description: "Not acceptable"
815
815
  """
816
816
  parameters = json_parameters()
817
817
  pfns = param_get(parameters, 'pfns', default=[])
@@ -834,7 +834,7 @@ class BadReplicas(ErrorHandlingMethodView):
834
834
  """
835
835
  ---
836
836
  summary: Declare Bad Replicas
837
- description: Declares a list of bad replicas.
837
+ description: "Declares a list of bad replicas."
838
838
  tags:
839
839
  - Replicas
840
840
  requestBody:
@@ -844,36 +844,36 @@ class BadReplicas(ErrorHandlingMethodView):
844
844
  type: object
845
845
  properties:
846
846
  replicas:
847
- description: The list of pfns or list of dicts with "scope", "name", "rse_id"/"rse"
847
+ description: "The list of pfns or list of dicts with 'scope', 'name', 'rse_id'/'rse'"
848
848
  type: array
849
849
  items:
850
850
  type: string
851
851
  pfns:
852
852
  deprecated: true
853
- description: The list of pfns, for backward compatibility with older versions of the ReplicaClient
853
+ description: "The list of pfns, for backward compatibility with older versions of the ReplicaClient"
854
854
  type: array
855
855
  items:
856
856
  type: string
857
857
  reason:
858
- description: The reason for the declaration.
858
+ description: "The reason for the declaration."
859
859
  type: string
860
860
  force:
861
- description: If true, ignore existing replica status in the bad_replicas table.
861
+ description: "If true, ignore existing replica status in the bad_replicas table."
862
862
  type: boolean
863
863
  responses:
864
864
  201:
865
- description: OK
865
+ description: "OK"
866
866
  content:
867
867
  application/json:
868
868
  schema:
869
- description: Returns the not declared files.
869
+ description: "Returns the not declared files."
870
870
  type: array
871
871
  400:
872
- description: Can not decode json parameter list.
872
+ description: "Can not decode json parameter list."
873
873
  404:
874
- description: Not found
874
+ description: "Not found"
875
875
  406:
876
- description: Not acceptable
876
+ description: "Not acceptable"
877
877
  """
878
878
  parameters = json_parameters()
879
879
  replicas = param_get(parameters, 'replicas', default=[]) or param_get(parameters, 'pfns', default=[])
@@ -897,7 +897,7 @@ class QuarantineReplicas(ErrorHandlingMethodView):
897
897
  """
898
898
  ---
899
899
  summary: Quarantine replicas
900
- description: Quarantine replicas.
900
+ description: "Quarantine replicas."
901
901
  tags:
902
902
  - Replicas
903
903
  requestBody:
@@ -909,7 +909,7 @@ class QuarantineReplicas(ErrorHandlingMethodView):
909
909
  - replicas
910
910
  properties:
911
911
  replicas:
912
- description: replicas
912
+ description: "replicas"
913
913
  type: array
914
914
  items:
915
915
  type: object
@@ -917,27 +917,27 @@ class QuarantineReplicas(ErrorHandlingMethodView):
917
917
  - path
918
918
  properties:
919
919
  path:
920
- description: path
920
+ description: "path"
921
921
  type: string
922
922
  scope:
923
- description: scope
923
+ description: "scope"
924
924
  type: string
925
925
  name:
926
- description: name
926
+ description: "name"
927
927
  type: string
928
928
  rse:
929
- description: RSE name
929
+ description: "RSE name"
930
930
  type: string
931
931
  rse_id:
932
- description: RSE id
932
+ description: "RSE id"
933
933
  type: string
934
934
  responses:
935
935
  200:
936
- description: OK
936
+ description: "OK"
937
937
  403:
938
- description: Forbidden.
938
+ description: "Forbidden."
939
939
  404:
940
- description: Not found
940
+ description: "Not found"
941
941
  """
942
942
 
943
943
  parameters = json_parameters()
@@ -965,7 +965,7 @@ class SuspiciousReplicas(ErrorHandlingMethodView):
965
965
  """
966
966
  ---
967
967
  summary: Declare Suspicious Replicas
968
- description: Declare a list of suspicious replicas.
968
+ description: "Declare a list of suspicious replicas."
969
969
  tags:
970
970
  - Replicas
971
971
  requestBody:
@@ -975,27 +975,27 @@ class SuspiciousReplicas(ErrorHandlingMethodView):
975
975
  type: object
976
976
  properties:
977
977
  pfns:
978
- description: The list of pfns.
978
+ description: "The list of pfns."
979
979
  type: array
980
980
  items:
981
981
  type: string
982
982
  reason:
983
- description: The reason for the declaration.
983
+ description: "The reason for the declaration."
984
984
  type: string
985
985
  responses:
986
986
  201:
987
- description: OK
987
+ description: "OK"
988
988
  content:
989
989
  application/json:
990
990
  schema:
991
- description: Returns the not declared files.
991
+ description: "Returns the not declared files."
992
992
  type: array
993
993
  400:
994
- description: Can not decode json parameter list.
994
+ description: "Can not decode json parameter list."
995
995
  404:
996
- description: Not found
996
+ description: "Not found"
997
997
  406:
998
- description: Not acceptable
998
+ description: "Not acceptable"
999
999
  """
1000
1000
  parameters = json_parameters(parse_response)
1001
1001
  pfns = param_get(parameters, 'pfns', default=[])
@@ -1012,28 +1012,28 @@ class SuspiciousReplicas(ErrorHandlingMethodView):
1012
1012
  """
1013
1013
  ---
1014
1014
  summary: List Suspicious Replicas
1015
- description: List the suspicious replicas on a list of RSEs.
1015
+ description: "List the suspicious replicas on a list of RSEs."
1016
1016
  tags:
1017
1017
  - Replicas
1018
1018
  parameters:
1019
1019
  - name: rse_expression
1020
1020
  in: query
1021
- description: The RSE expression to filter for.
1021
+ description: "The RSE expression to filter for."
1022
1022
  schema:
1023
1023
  type: string
1024
1024
  - name: younger_than
1025
1025
  in: query
1026
- description: Date to filter for.
1026
+ description: "Date to filter for."
1027
1027
  schema:
1028
1028
  type: string
1029
1029
  - name: nattempts
1030
1030
  in: query
1031
- description: The maximum number of attempts to make.
1031
+ description: "The maximum number of attempts to make."
1032
1032
  schema:
1033
1033
  type: integer
1034
1034
  responses:
1035
1035
  200:
1036
- description: OK
1036
+ description: "OK"
1037
1037
  content:
1038
1038
  application/json:
1039
1039
  schema:
@@ -1042,29 +1042,29 @@ class SuspiciousReplicas(ErrorHandlingMethodView):
1042
1042
  type: object
1043
1043
  properties:
1044
1044
  scope:
1045
- description: The scope of the Replica.
1045
+ description: "The scope of the Replica."
1046
1046
  type: string
1047
1047
  name:
1048
- description: The name of the Replica.
1048
+ description: "The name of the Replica."
1049
1049
  type: string
1050
1050
  rse:
1051
- description: The rse name.
1051
+ description: "The rse name."
1052
1052
  type: string
1053
1053
  rse_id:
1054
- description: The id of the rse.
1054
+ description: "The id of the rse."
1055
1055
  type: string
1056
1056
  cnt:
1057
- description: The number of replicas.
1057
+ description: "The number of replicas."
1058
1058
  type: integer
1059
1059
  created_at:
1060
- description: The time when the replica was created.
1060
+ description: "The time when the replica was created."
1061
1061
  type: string
1062
1062
  401:
1063
- description: Invalid Auth Token
1063
+ description: "Invalid Auth Token"
1064
1064
  404:
1065
- description: Not found
1065
+ description: "Not found"
1066
1066
  406:
1067
- description: Not acceptable
1067
+ description: "Not acceptable"
1068
1068
  """
1069
1069
  rse_expression, younger_than, nattempts = None, None, None
1070
1070
  if request.query_string:
@@ -1092,93 +1092,93 @@ class BadReplicasStates(ErrorHandlingMethodView):
1092
1092
  """
1093
1093
  ---
1094
1094
  summary: List Bad Replicas By States
1095
- description: List the bad or suspicious replicas by states.
1095
+ description: "List the bad or suspicious replicas by states."
1096
1096
  tags:
1097
1097
  - Replicas
1098
1098
  parameters:
1099
1099
  - name: state
1100
1100
  in: query
1101
- description: The state of the file.
1101
+ description: "The state of the file."
1102
1102
  schema:
1103
1103
  type: string
1104
1104
  enum: [SUSPICIOUS, BAD]
1105
1105
  - name: rse
1106
1106
  in: query
1107
- description: The rse name.
1107
+ description: "The rse name."
1108
1108
  schema:
1109
1109
  type: string
1110
1110
  - name: younger_than
1111
1111
  in: query
1112
- description: Date to select bad replicas younger than this date.
1112
+ description: "Date to select bad replicas younger than this date."
1113
1113
  schema:
1114
1114
  type: string
1115
1115
  format: date-time
1116
1116
  - name: older_than
1117
1117
  in: query
1118
- description: Date to select bad replicas older than this date.
1118
+ description: "Date to select bad replicas older than this date."
1119
1119
  schema:
1120
1120
  type: string
1121
1121
  format: date-time
1122
1122
  - name: limit
1123
1123
  in: query
1124
- description: The maximum number of replicas returned.
1124
+ description: "The maximum number of replicas returned."
1125
1125
  schema:
1126
1126
  type: integer
1127
1127
  - name: list_pfns
1128
1128
  in: query
1129
- description: Flag to include pfns.
1129
+ description: "Flag to include pfns."
1130
1130
  schema:
1131
1131
  type: boolean
1132
1132
  responses:
1133
1133
  200:
1134
- description: OK
1134
+ description: "OK"
1135
1135
  content:
1136
1136
  application/x-json-stream:
1137
1137
  schema:
1138
- description: A list of all result replicas.
1138
+ description: "A list of all result replicas."
1139
1139
  type: array
1140
1140
  items:
1141
1141
  oneOf:
1142
1142
  - type: object
1143
1143
  properties:
1144
1144
  scope:
1145
- description: The scope of the replica.
1145
+ description: "The scope of the replica."
1146
1146
  type: string
1147
1147
  name:
1148
- description: The name of the replica.
1148
+ description: "The name of the replica."
1149
1149
  type: string
1150
1150
  type:
1151
- description: The type of the replica.
1151
+ description: "The type of the replica."
1152
1152
  type: string
1153
1153
  - type: object
1154
1154
  properties:
1155
1155
  scope:
1156
- description: The scope of the replica.
1156
+ description: "The scope of the replica."
1157
1157
  type: string
1158
1158
  name:
1159
- description: The name of the replica.
1159
+ description: "The name of the replica."
1160
1160
  type: string
1161
1161
  rse:
1162
- description: The name of the associated rse.
1162
+ description: "The name of the associated rse."
1163
1163
  type: string
1164
1164
  rse_id:
1165
- description: The id of the associated rse.
1165
+ description: "The id of the associated rse."
1166
1166
  type: string
1167
1167
  state:
1168
- description: The state of the replica.
1168
+ description: "The state of the replica."
1169
1169
  type: string
1170
1170
  created_at:
1171
- description: The date-time the replica was created.
1171
+ description: "The date-time the replica was created."
1172
1172
  type: string
1173
1173
  format: date-time
1174
1174
  updated_at:
1175
- description: The date-time the replica was updated.
1175
+ description: "The date-time the replica was updated."
1176
1176
  type: string
1177
1177
  format: date-time
1178
1178
  401:
1179
- description: Invalid Auth Token
1179
+ description: "Invalid Auth Token"
1180
1180
  406:
1181
- description: Not acceptable
1181
+ description: "Not acceptable"
1182
1182
  """
1183
1183
  list_pfns = False
1184
1184
  state, rse, younger_than, older_than, limit = None, None, None, None, None
@@ -1219,55 +1219,55 @@ class BadReplicasSummary(ErrorHandlingMethodView):
1219
1219
  """
1220
1220
  ---
1221
1221
  summary: Bad Replicas Summary
1222
- description: Return a summary of the bad replicas by incident.
1222
+ description: "Return a summary of the bad replicas by incident."
1223
1223
  tags:
1224
1224
  - Replicas
1225
1225
  parameters:
1226
1226
  - name: rse_expression
1227
1227
  in: query
1228
- description: The RSE expression.
1228
+ description: "The RSE expression."
1229
1229
  schema:
1230
1230
  type: string
1231
1231
  - name: from_date
1232
1232
  in: query
1233
- description: The start date.
1233
+ description: "The start date."
1234
1234
  schema:
1235
1235
  type: string
1236
1236
  format: date-time
1237
1237
  - name: to_date
1238
1238
  in: query
1239
- description: The end date.
1239
+ description: "The end date."
1240
1240
  schema:
1241
1241
  type: string
1242
1242
  format: date-time
1243
1243
  responses:
1244
1244
  200:
1245
- description: OK
1245
+ description: "OK"
1246
1246
  content:
1247
1247
  application/x-json-stream:
1248
1248
  schema:
1249
- description: A list of summaries.
1249
+ description: "A list of summaries."
1250
1250
  type: array
1251
1251
  items:
1252
1252
  type: object
1253
1253
  properties:
1254
1254
  rse:
1255
- description: The name of the associated RSE.
1255
+ description: "The name of the associated RSE."
1256
1256
  type: string
1257
1257
  rse_id:
1258
- description: The id of the associated RSE.
1258
+ description: "The id of the associated RSE."
1259
1259
  type: string
1260
1260
  created_at:
1261
- description: The creation date-time.
1261
+ description: "The creation date-time."
1262
1262
  type: string
1263
1263
  format: date-time
1264
1264
  reason:
1265
- description: The reason for the incident.
1265
+ description: "The reason for the incident."
1266
1266
  type: string
1267
1267
  401:
1268
- description: Invalid Auth Token
1268
+ description: "Invalid Auth Token"
1269
1269
  406:
1270
- description: Not acceptable
1270
+ description: "Not acceptable"
1271
1271
  """
1272
1272
  rse_expression, from_date, to_date = None, None, None
1273
1273
  if request.query_string:
@@ -1298,77 +1298,77 @@ class DatasetReplicas(ErrorHandlingMethodView):
1298
1298
  """
1299
1299
  ---
1300
1300
  summary: List Dataset Replicas
1301
- description: List dataset replicas.
1301
+ description: "List dataset replicas."
1302
1302
  tags:
1303
1303
  - Replicas
1304
1304
  parameters:
1305
1305
  - name: scope_name
1306
1306
  in: path
1307
- description: data identifier (scope)/(name).
1307
+ description: "data identifier (scope)/(name)."
1308
1308
  schema:
1309
1309
  type: string
1310
1310
  style: simple
1311
1311
  - name: deep
1312
1312
  in: query
1313
- description: Flag to ennable lookup at the file level.
1313
+ description: "Flag to enable lookup at the file level."
1314
1314
  schema:
1315
1315
  type: boolean
1316
1316
  responses:
1317
1317
  200:
1318
- description: OK
1318
+ description: "OK"
1319
1319
  content:
1320
1320
  application/x-json-stream:
1321
1321
  schema:
1322
- description: A list of dataset replicas.
1322
+ description: "A list of dataset replicas."
1323
1323
  type: array
1324
1324
  items:
1325
1325
  type: object
1326
1326
  properties:
1327
1327
  scope:
1328
- description: The scope of the replica.
1328
+ description: "The scope of the replica."
1329
1329
  type: string
1330
1330
  name:
1331
- description: The name of the replica.
1331
+ description: "The name of the replica."
1332
1332
  type: string
1333
1333
  rse:
1334
- description: The name of the associated RSE.
1334
+ description: "The name of the associated RSE."
1335
1335
  type: string
1336
1336
  rse_id:
1337
- description: The id of the associated RSE.
1337
+ description: "The id of the associated RSE."
1338
1338
  type: string
1339
1339
  bytes:
1340
- description: The size of the replica.
1340
+ description: "The size of the replica."
1341
1341
  type: integer
1342
1342
  length:
1343
- description: The length of the replica.
1343
+ description: "The length of the replica."
1344
1344
  type: integer
1345
1345
  available_bytes:
1346
- description: The number of available bytes of the replica.
1346
+ description: "The number of available bytes of the replica."
1347
1347
  type: integer
1348
1348
  available_length:
1349
- description: The available length of the replica.
1349
+ description: "The available length of the replica."
1350
1350
  type: integer
1351
1351
  state:
1352
- description: The state of the replica.
1352
+ description: "The state of the replica."
1353
1353
  type: string
1354
1354
  created_at:
1355
- description: The date-time the replica was created.
1355
+ description: "The date-time the replica was created."
1356
1356
  type: string
1357
1357
  format: date-time
1358
1358
  updated_at:
1359
- description: The date-time the replica was updated.
1359
+ description: "The date-time the replica was updated."
1360
1360
  type: string
1361
1361
  format: date-time
1362
1362
  accessed_at:
1363
- description: The date-time the replica was accessed.
1363
+ description: "The date-time the replica was accessed."
1364
1364
  type: string
1365
1365
  format: date-time
1366
1366
  401:
1367
- description: Invalid Auth Token
1367
+ description: "Invalid Auth Token"
1368
1368
  404:
1369
- description: Not found
1369
+ description: "Not found"
1370
1370
  406:
1371
- description: Not acceptable
1371
+ description: "Not acceptable"
1372
1372
  """
1373
1373
  try:
1374
1374
  scope, name = parse_scope_name(scope_name, request.environ['vo'])
@@ -1391,7 +1391,7 @@ class DatasetReplicasBulk(ErrorHandlingMethodView):
1391
1391
  """
1392
1392
  ---
1393
1393
  summary: List Dataset Replicas for Multiple DIDs
1394
- description: List dataset replicas for multiple dids.
1394
+ description: "List dataset replicas for multiple dids."
1395
1395
  tags:
1396
1396
  - Replicas
1397
1397
  requestBody:
@@ -1403,76 +1403,76 @@ class DatasetReplicasBulk(ErrorHandlingMethodView):
1403
1403
  - dids
1404
1404
  properties:
1405
1405
  dids:
1406
- description: A list of dids.
1406
+ description: "A list of dids."
1407
1407
  type: array
1408
1408
  items:
1409
- description: A did.
1409
+ description: "A did."
1410
1410
  type: object
1411
1411
  properties:
1412
1412
  scope:
1413
- description: The scope of the did.
1413
+ description: "The scope of the did."
1414
1414
  type: string
1415
1415
  name:
1416
- description: The name of the did.
1416
+ description: "The name of the did."
1417
1417
  type: string
1418
1418
  responses:
1419
1419
  200:
1420
- description: OK
1420
+ description: "OK"
1421
1421
  content:
1422
1422
  application/x-json-stream:
1423
1423
  schema:
1424
- description: A list of dataset replicas.
1424
+ description: "A list of dataset replicas."
1425
1425
  type: array
1426
1426
  items:
1427
1427
  type: object
1428
1428
  properties:
1429
1429
  scope:
1430
- description: The scope of the replica.
1430
+ description: "The scope of the replica."
1431
1431
  type: string
1432
1432
  name:
1433
- description: The name of the replica.
1433
+ description: "The name of the replica."
1434
1434
  type: string
1435
1435
  rse:
1436
- description: The name of the associated RSE.
1436
+ description: "The name of the associated RSE."
1437
1437
  type: string
1438
1438
  rse_id:
1439
- description: The id of the associated RSE.
1439
+ description: "The id of the associated RSE."
1440
1440
  type: string
1441
1441
  bytes:
1442
- description: The size of the replica.
1442
+ description: "The size of the replica."
1443
1443
  type: integer
1444
1444
  length:
1445
- description: The length of the replica.
1445
+ description: "The length of the replica."
1446
1446
  type: integer
1447
1447
  available_bytes:
1448
- description: The number of available bytes of the replica.
1448
+ description: "The number of available bytes of the replica."
1449
1449
  type: integer
1450
1450
  available_length:
1451
- description: The available length of the replica.
1451
+ description: "The available length of the replica."
1452
1452
  type: integer
1453
1453
  state:
1454
- description: The state of the replica.
1454
+ description: "The state of the replica."
1455
1455
  type: string
1456
1456
  created_at:
1457
- description: The date-time the replica was created.
1457
+ description: "The date-time the replica was created."
1458
1458
  type: string
1459
1459
  format: date-time
1460
1460
  updated_at:
1461
- description: The date-time the replica was updated.
1461
+ description: "The date-time the replica was updated."
1462
1462
  type: string
1463
1463
  format: date-time
1464
1464
  accessed_at:
1465
- description: The date-time the replica was accessed.
1465
+ description: "The date-time the replica was accessed."
1466
1466
  type: string
1467
1467
  format: date-time
1468
1468
  400:
1469
- description: Bad Request.
1469
+ description: "Bad Request."
1470
1470
  401:
1471
- description: Invalid Auth Token
1471
+ description: "Invalid Auth Token"
1472
1472
  404:
1473
- description: Not found
1473
+ description: "Not found"
1474
1474
  406:
1475
- description: Not acceptable
1475
+ description: "Not acceptable"
1476
1476
  """
1477
1477
  parameters = json_parameters(parse_response)
1478
1478
  dids = param_get(parameters, 'dids')
@@ -1503,22 +1503,22 @@ class DatasetReplicasVP(ErrorHandlingMethodView):
1503
1503
  parameters:
1504
1504
  - name: scope_name
1505
1505
  in: path
1506
- description: data identifier (scope)/(name).
1506
+ description: "data identifier (scope)/(name)."
1507
1507
  schema:
1508
1508
  type: string
1509
1509
  style: simple
1510
1510
  - name: deep
1511
1511
  in: query
1512
- description: Flag to ennable lookup at the file level.
1512
+ description: "Flag to ennable lookup at the file level."
1513
1513
  schema:
1514
1514
  type: boolean
1515
1515
  responses:
1516
1516
  200:
1517
- description: OK. This needs documentation!
1517
+ description: "OK. This needs documentation!"
1518
1518
  401:
1519
- description: Invalid Auth Token
1519
+ description: "Invalid Auth Token"
1520
1520
  406:
1521
- description: Not acceptable
1521
+ description: "Not acceptable"
1522
1522
  """
1523
1523
  try:
1524
1524
  scope, name = parse_scope_name(scope_name, request.environ['vo'])
@@ -1541,70 +1541,70 @@ class ReplicasRSE(ErrorHandlingMethodView):
1541
1541
  """
1542
1542
  ---
1543
1543
  summary: List Dataset Replicas per RSE
1544
- description: List dataset replicas per RSE.
1544
+ description: "List dataset replicas per RSE."
1545
1545
  tags:
1546
1546
  - Replicas
1547
1547
  parameters:
1548
1548
  - name: rse
1549
1549
  in: path
1550
- description: The rse to filter for.
1550
+ description: "The rse to filter for."
1551
1551
  schema:
1552
1552
  type: string
1553
1553
  style: simple
1554
1554
  responses:
1555
1555
  200:
1556
- description: OK
1556
+ description: "OK"
1557
1557
  content:
1558
1558
  application/x-json-stream:
1559
1559
  schema:
1560
- description: A list of dataset replicas.
1560
+ description: "A list of dataset replicas."
1561
1561
  type: array
1562
1562
  items:
1563
1563
  type: object
1564
1564
  properties:
1565
1565
  scope:
1566
- description: The scope of the replica.
1566
+ description: "The scope of the replica."
1567
1567
  type: string
1568
1568
  name:
1569
- description: The name of the replica.
1569
+ description: "The name of the replica."
1570
1570
  type: string
1571
1571
  rse:
1572
- description: The name of the associated RSE.
1572
+ description: "The name of the associated RSE."
1573
1573
  type: string
1574
1574
  rse_id:
1575
- description: The id of the associated RSE.
1575
+ description: "The id of the associated RSE."
1576
1576
  type: string
1577
1577
  bytes:
1578
- description: The size of the replica.
1578
+ description: "The size of the replica."
1579
1579
  type: integer
1580
1580
  length:
1581
- description: The length of the replica.
1581
+ description: "The length of the replica."
1582
1582
  type: integer
1583
1583
  available_bytes:
1584
- description: The number of available bytes of the replica.
1584
+ description: "The number of available bytes of the replica."
1585
1585
  type: integer
1586
1586
  available_length:
1587
- description: The available length of the replica.
1587
+ description: "The available length of the replica."
1588
1588
  type: integer
1589
1589
  state:
1590
- description: The state of the replica.
1590
+ description: "The state of the replica."
1591
1591
  type: string
1592
1592
  created_at:
1593
- description: The date-time the replica was created.
1593
+ description: "The date-time the replica was created."
1594
1594
  type: string
1595
1595
  format: date-time
1596
1596
  updated_at:
1597
- description: The date-time the replica was updated.
1597
+ description: "The date-time the replica was updated."
1598
1598
  type: string
1599
1599
  format: date-time
1600
1600
  accessed_at:
1601
- description: The date-time the replica was accessed.
1601
+ description: "The date-time the replica was accessed."
1602
1602
  type: string
1603
1603
  format: date-time
1604
1604
  401:
1605
- description: Invalid Auth Token
1605
+ description: "Invalid Auth Token"
1606
1606
  406:
1607
- description: Not acceptable
1607
+ description: "Not acceptable"
1608
1608
  """
1609
1609
 
1610
1610
  def generate(vo):
@@ -1620,7 +1620,7 @@ class BadDIDs(ErrorHandlingMethodView):
1620
1620
  """
1621
1621
  ---
1622
1622
  summary: Mark Bad by DID
1623
- description: Declare a list of bad replicas by DID.
1623
+ description: "Declare a list of bad replicas by DID."
1624
1624
  tags:
1625
1625
  - Replicas
1626
1626
  requestBody:
@@ -1630,43 +1630,43 @@ class BadDIDs(ErrorHandlingMethodView):
1630
1630
  type: object
1631
1631
  properties:
1632
1632
  expires_at:
1633
- description: The expires at value.
1633
+ description: "The expires at value."
1634
1634
  type: string
1635
1635
  format: date-time
1636
1636
  dids:
1637
- description: The list of dids associated with the bad replicas.
1637
+ description: "The list of dids associated with the bad replicas."
1638
1638
  type: array
1639
1639
  items:
1640
1640
  type: object
1641
1641
  properties:
1642
1642
  scope:
1643
- description: The scope of the did.
1643
+ description: "The scope of the did."
1644
1644
  type: string
1645
1645
  name:
1646
- description: The name of the did.
1646
+ description: "The name of the did."
1647
1647
  type: string
1648
1648
  rse:
1649
- description: The name of the rse.
1649
+ description: "The name of the rse."
1650
1650
  type: string
1651
1651
  reason:
1652
- description: The reason for the change.
1652
+ description: "The reason for the change."
1653
1653
  type: string
1654
1654
  responses:
1655
1655
  201:
1656
- description: OK
1656
+ description: "OK"
1657
1657
  content:
1658
1658
  application/json:
1659
1659
  schema:
1660
- description: All files not declared as bad.
1660
+ description: "All files not declared as bad."
1661
1661
  type: array
1662
1662
  items:
1663
1663
  type: string
1664
1664
  400:
1665
- description: Cannot decode json parameter list.
1665
+ description: "Cannot decode json parameter list."
1666
1666
  401:
1667
- description: Invalid Auth Token
1667
+ description: "Invalid Auth Token"
1668
1668
  404:
1669
- description: Not found
1669
+ description: "Not found"
1670
1670
  """
1671
1671
  parameters = json_parameters(parse_response)
1672
1672
  expires_at = param_get(parameters, 'expires_at', default=None)
@@ -1701,7 +1701,7 @@ class BadPFNs(ErrorHandlingMethodView):
1701
1701
  """
1702
1702
  ---
1703
1703
  summary: Declare Bad PFNs
1704
- description: Declare a list of bad PFNs.
1704
+ description: "Declare a list of bad PFNs."
1705
1705
  tags:
1706
1706
  - Replicas
1707
1707
  requestBody:
@@ -1711,32 +1711,32 @@ class BadPFNs(ErrorHandlingMethodView):
1711
1711
  type: object
1712
1712
  properties:
1713
1713
  expires_at:
1714
- description: The expires at value. Only apply to TEMPORARY_UNAVAILABLE.
1714
+ description: "The expires at value. Only apply to TEMPORARY_UNAVAILABLE."
1715
1715
  type: string
1716
1716
  format: date-time
1717
1717
  pfns:
1718
- description: The list of pfns associated with the bad PFNs.
1718
+ description: "The list of pfns associated with the bad PFNs."
1719
1719
  type: array
1720
1720
  items:
1721
1721
  type: string
1722
1722
  state:
1723
- description: The state to set the PFNs to.
1723
+ description: "The state to set the PFNs to."
1724
1724
  type: string
1725
1725
  enum: ["BAD", "SUSPICIOUS", "TEMPORARY_UNAVAILABLE"]
1726
1726
  reason:
1727
- description: The reason for the change.
1727
+ description: "The reason for the change."
1728
1728
  type: string
1729
1729
  responses:
1730
1730
  201:
1731
- description: Created
1731
+ description: "Created"
1732
1732
  400:
1733
- description: Cannot decode json parameter list.
1733
+ description: "Cannot decode json parameter list."
1734
1734
  401:
1735
- description: Invalid Auth Token
1735
+ description: "Invalid Auth Token"
1736
1736
  404:
1737
- description: Replica not found
1737
+ description: "Replica not found"
1738
1738
  409:
1739
- description: Duplicate
1739
+ description: "Duplicate"
1740
1740
  """
1741
1741
  parameters = json_parameters(parse_response)
1742
1742
  expires_at = param_get(parameters, 'expires_at', default=None)
@@ -1770,7 +1770,7 @@ class Tombstone(ErrorHandlingMethodView):
1770
1770
  """
1771
1771
  ---
1772
1772
  summary: Set Tombstone
1773
- description: Set a tombstone on a list of replicas.
1773
+ description: "Set a tombstone on a list of replicas."
1774
1774
  tags:
1775
1775
  - Replicas
1776
1776
  requestBody:
@@ -1780,7 +1780,7 @@ class Tombstone(ErrorHandlingMethodView):
1780
1780
  type: object
1781
1781
  properties:
1782
1782
  replicas:
1783
- description: The replicas to set the tombstone to.
1783
+ description: "The replicas to set the tombstone to."
1784
1784
  type: array
1785
1785
  items:
1786
1786
  type: object
@@ -1790,23 +1790,23 @@ class Tombstone(ErrorHandlingMethodView):
1790
1790
  - name
1791
1791
  properties:
1792
1792
  rse:
1793
- description: The rse associated with the tombstone.
1793
+ description: "The rse associated with the tombstone."
1794
1794
  type: string
1795
1795
  scope:
1796
- description: The scope of the replica
1796
+ description: "The scope of the replica"
1797
1797
  type: string
1798
1798
  name:
1799
- description: The name of the replica.
1799
+ description: "The name of the replica."
1800
1800
  type: string
1801
1801
  responses:
1802
1802
  201:
1803
- description: Created
1803
+ description: "Created"
1804
1804
  401:
1805
- description: Invalid Auth Token
1805
+ description: "Invalid Auth Token"
1806
1806
  404:
1807
- description: Not found
1807
+ description: "Not found"
1808
1808
  423:
1809
- description: Replica is locked.
1809
+ description: "Replica is locked."
1810
1810
  """
1811
1811
  parameters = json_parameters(parse_response)
1812
1812
  replicas = param_get(parameters, 'replicas', default=[])