rucio-clients 32.8.6__py3-none-any.whl → 35.8.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-clients might be problematic. Click here for more details.

Files changed (92) hide show
  1. rucio/__init__.py +0 -1
  2. rucio/alembicrevision.py +1 -2
  3. rucio/client/__init__.py +0 -1
  4. rucio/client/accountclient.py +45 -25
  5. rucio/client/accountlimitclient.py +37 -9
  6. rucio/client/baseclient.py +199 -154
  7. rucio/client/client.py +2 -3
  8. rucio/client/configclient.py +19 -6
  9. rucio/client/credentialclient.py +9 -4
  10. rucio/client/didclient.py +238 -63
  11. rucio/client/diracclient.py +13 -5
  12. rucio/client/downloadclient.py +162 -51
  13. rucio/client/exportclient.py +4 -4
  14. rucio/client/fileclient.py +3 -4
  15. rucio/client/importclient.py +4 -4
  16. rucio/client/lifetimeclient.py +21 -5
  17. rucio/client/lockclient.py +18 -8
  18. rucio/client/{metaclient.py → metaconventionsclient.py} +18 -15
  19. rucio/client/pingclient.py +0 -1
  20. rucio/client/replicaclient.py +15 -5
  21. rucio/client/requestclient.py +35 -19
  22. rucio/client/rseclient.py +133 -51
  23. rucio/client/ruleclient.py +29 -22
  24. rucio/client/scopeclient.py +8 -6
  25. rucio/client/subscriptionclient.py +47 -35
  26. rucio/client/touchclient.py +8 -4
  27. rucio/client/uploadclient.py +166 -82
  28. rucio/common/__init__.py +0 -1
  29. rucio/common/cache.py +4 -4
  30. rucio/common/config.py +52 -47
  31. rucio/common/constants.py +69 -2
  32. rucio/common/constraints.py +0 -1
  33. rucio/common/didtype.py +24 -22
  34. rucio/common/exception.py +281 -222
  35. rucio/common/extra.py +0 -1
  36. rucio/common/logging.py +54 -38
  37. rucio/common/pcache.py +122 -101
  38. rucio/common/plugins.py +153 -0
  39. rucio/common/policy.py +4 -4
  40. rucio/common/schema/__init__.py +17 -10
  41. rucio/common/schema/atlas.py +7 -5
  42. rucio/common/schema/belleii.py +7 -5
  43. rucio/common/schema/domatpc.py +7 -5
  44. rucio/common/schema/escape.py +7 -5
  45. rucio/common/schema/generic.py +8 -6
  46. rucio/common/schema/generic_multi_vo.py +7 -5
  47. rucio/common/schema/icecube.py +7 -5
  48. rucio/common/stomp_utils.py +0 -1
  49. rucio/common/stopwatch.py +0 -1
  50. rucio/common/test_rucio_server.py +2 -2
  51. rucio/common/types.py +262 -17
  52. rucio/common/utils.py +743 -451
  53. rucio/rse/__init__.py +3 -4
  54. rucio/rse/protocols/__init__.py +0 -1
  55. rucio/rse/protocols/bittorrent.py +184 -0
  56. rucio/rse/protocols/cache.py +1 -2
  57. rucio/rse/protocols/dummy.py +1 -2
  58. rucio/rse/protocols/gfal.py +12 -10
  59. rucio/rse/protocols/globus.py +7 -7
  60. rucio/rse/protocols/gsiftp.py +2 -3
  61. rucio/rse/protocols/http_cache.py +1 -2
  62. rucio/rse/protocols/mock.py +1 -2
  63. rucio/rse/protocols/ngarc.py +1 -2
  64. rucio/rse/protocols/posix.py +12 -13
  65. rucio/rse/protocols/protocol.py +116 -52
  66. rucio/rse/protocols/rclone.py +6 -7
  67. rucio/rse/protocols/rfio.py +4 -5
  68. rucio/rse/protocols/srm.py +9 -10
  69. rucio/rse/protocols/ssh.py +8 -9
  70. rucio/rse/protocols/storm.py +2 -3
  71. rucio/rse/protocols/webdav.py +17 -14
  72. rucio/rse/protocols/xrootd.py +23 -17
  73. rucio/rse/rsemanager.py +19 -7
  74. rucio/vcsversion.py +4 -4
  75. rucio/version.py +5 -13
  76. rucio_clients-35.8.0.data/data/requirements.client.txt +15 -0
  77. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/data/rucio_client/merge_rucio_configs.py +2 -5
  78. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/scripts/rucio +87 -85
  79. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/scripts/rucio-admin +45 -32
  80. {rucio_clients-32.8.6.dist-info → rucio_clients-35.8.0.dist-info}/METADATA +13 -13
  81. rucio_clients-35.8.0.dist-info/RECORD +88 -0
  82. {rucio_clients-32.8.6.dist-info → rucio_clients-35.8.0.dist-info}/WHEEL +1 -1
  83. {rucio_clients-32.8.6.dist-info → rucio_clients-35.8.0.dist-info}/licenses/AUTHORS.rst +3 -0
  84. rucio/common/schema/cms.py +0 -478
  85. rucio/common/schema/lsst.py +0 -423
  86. rucio_clients-32.8.6.data/data/requirements.txt +0 -55
  87. rucio_clients-32.8.6.dist-info/RECORD +0 -88
  88. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/data/etc/rse-accounts.cfg.template +0 -0
  89. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
  90. {rucio_clients-32.8.6.data → rucio_clients-35.8.0.data}/data/etc/rucio.cfg.template +0 -0
  91. {rucio_clients-32.8.6.dist-info → rucio_clients-35.8.0.dist-info}/licenses/LICENSE +0 -0
  92. {rucio_clients-32.8.6.dist-info → rucio_clients-35.8.0.dist-info}/top_level.txt +0 -0
rucio/common/exception.py CHANGED
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  # Copyright European Organization for Nuclear Research (CERN) since 2012
3
2
  #
4
3
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,20 +30,15 @@ class RucioException(Exception):
31
30
  with the keyword arguments provided to the constructor.
32
31
  """
33
32
 
34
- def __init__(self, *args, **kwargs):
35
- super(RucioException, self).__init__(*args, **kwargs)
33
+ def __init__(self, *args):
34
+ super(RucioException, self).__init__(*args)
36
35
  self._message = "An unknown exception occurred."
37
36
  self.args = args
38
- self.kwargs = kwargs
39
37
  self.error_code = 1
40
38
  self._error_string = None
41
39
 
42
40
  def __str__(self):
43
- try:
44
- self._error_string = self._message % self.kwargs
45
- except Exception:
46
- # at least get the core message out if something happened
47
- self._error_string = self._message
41
+ self._error_string = self._message
48
42
  if len(self.args) > 0:
49
43
  # If there is a non-kwarg parameter, assume it's the error
50
44
  # message or reason description and tack it on to the end
@@ -61,8 +55,8 @@ class AccessDenied(RucioException):
61
55
  """
62
56
  AccessDenied
63
57
  """
64
- def __init__(self, *args, **kwargs):
65
- super(AccessDenied, self).__init__(*args, **kwargs)
58
+ def __init__(self, *args):
59
+ super(AccessDenied, self).__init__(*args)
66
60
  self._message = "Access to the requested resource denied."
67
61
  self.error_code = 2
68
62
 
@@ -71,8 +65,8 @@ class AccountNotFound(RucioException):
71
65
  """
72
66
  AccountNotFound
73
67
  """
74
- def __init__(self, *args, **kwargs):
75
- super(AccountNotFound, self).__init__(*args, **kwargs)
68
+ def __init__(self, *args):
69
+ super(AccountNotFound, self).__init__(*args)
76
70
  self._message = "Account does not exist."
77
71
  self.error_code = 3
78
72
 
@@ -81,8 +75,8 @@ class CannotAuthenticate(RucioException):
81
75
  """
82
76
  CannotAuthenticate
83
77
  """
84
- def __init__(self, *args, **kwargs):
85
- super(CannotAuthenticate, self).__init__(*args, **kwargs)
78
+ def __init__(self, *args):
79
+ super(CannotAuthenticate, self).__init__(*args)
86
80
  self._message = "Cannot authenticate."
87
81
  self.error_code = 4
88
82
 
@@ -91,8 +85,8 @@ class ClientParameterMismatch(RucioException):
91
85
  """
92
86
  RucioException
93
87
  """
94
- def __init__(self, *args, **kwargs):
95
- super(ClientParameterMismatch, self).__init__(*args, **kwargs)
88
+ def __init__(self, *args):
89
+ super(ClientParameterMismatch, self).__init__(*args)
96
90
  self._message = "Client parameters don\'t match."
97
91
  self.error_code = 5
98
92
 
@@ -101,8 +95,8 @@ class ClientProtocolNotSupported(RucioException):
101
95
  """
102
96
  RucioException
103
97
  """
104
- def __init__(self, *args, **kwargs):
105
- super(ClientProtocolNotSupported, self).__init__(*args, **kwargs)
98
+ def __init__(self, *args):
99
+ super(ClientProtocolNotSupported, self).__init__(*args)
106
100
  self._message = "Client protocol not supported."
107
101
  self.error_code = 6
108
102
 
@@ -111,8 +105,8 @@ class ConfigNotFound(RucioException):
111
105
  """
112
106
  RucioException
113
107
  """
114
- def __init__(self, *args, **kwargs):
115
- super(ConfigNotFound, self).__init__(*args, **kwargs)
108
+ def __init__(self, *args):
109
+ super(ConfigNotFound, self).__init__(*args)
116
110
  self._message = "Configuration not found."
117
111
  self.error_code = 7
118
112
 
@@ -121,8 +115,8 @@ class ConfigurationError(RucioException):
121
115
  """
122
116
  RucioException
123
117
  """
124
- def __init__(self, *args, **kwargs):
125
- super(ConfigurationError, self).__init__(*args, **kwargs)
118
+ def __init__(self, *args):
119
+ super(ConfigurationError, self).__init__(*args)
126
120
  self._message = "Error during configuration."
127
121
  self.error_code = 8
128
122
 
@@ -131,8 +125,8 @@ class CounterNotFound(RucioException):
131
125
  """
132
126
  RucioException
133
127
  """
134
- def __init__(self, *args, **kwargs):
135
- super(CounterNotFound, self).__init__(*args, **kwargs)
128
+ def __init__(self, *args):
129
+ super(CounterNotFound, self).__init__(*args)
136
130
  self._message = "The requested counter does not exist."
137
131
  self.error_code = 9
138
132
 
@@ -141,8 +135,8 @@ class DatabaseException(RucioException):
141
135
  """
142
136
  RucioException
143
137
  """
144
- def __init__(self, *args, **kwargs):
145
- super(DatabaseException, self).__init__(*args, **kwargs)
138
+ def __init__(self, *args):
139
+ super(DatabaseException, self).__init__(*args)
146
140
  self._message = "Database exception."
147
141
  self.error_code = 10
148
142
 
@@ -151,8 +145,8 @@ class DataIdentifierAlreadyExists(RucioException):
151
145
  """
152
146
  RucioException
153
147
  """
154
- def __init__(self, *args, **kwargs):
155
- super(DataIdentifierAlreadyExists, self).__init__(*args, **kwargs)
148
+ def __init__(self, *args):
149
+ super(DataIdentifierAlreadyExists, self).__init__(*args)
156
150
  self._message = "Data Identifier Already Exists."
157
151
  self.error_code = 11
158
152
 
@@ -161,8 +155,8 @@ class DataIdentifierNotFound(RucioException):
161
155
  """
162
156
  RucioException
163
157
  """
164
- def __init__(self, *args, **kwargs):
165
- super(DataIdentifierNotFound, self).__init__(*args, **kwargs)
158
+ def __init__(self, *args):
159
+ super(DataIdentifierNotFound, self).__init__(*args)
166
160
  self._message = "Data identifier not found."
167
161
  self.error_code = 12
168
162
 
@@ -171,8 +165,8 @@ class DestinationNotAccessible(RucioException):
171
165
  """
172
166
  RucioException
173
167
  """
174
- def __init__(self, *args, **kwargs):
175
- super(DestinationNotAccessible, self).__init__(*args, **kwargs)
168
+ def __init__(self, *args):
169
+ super(DestinationNotAccessible, self).__init__(*args)
176
170
  self._message = "Access to local destination denied."
177
171
  self.error_code = 13
178
172
 
@@ -181,8 +175,8 @@ class Duplicate(RucioException):
181
175
  """
182
176
  RucioException
183
177
  """
184
- def __init__(self, *args, **kwargs):
185
- super(Duplicate, self).__init__(*args, **kwargs)
178
+ def __init__(self, *args):
179
+ super(Duplicate, self).__init__(*args)
186
180
  self._message = "An object with the same identifier already exists."
187
181
  self.error_code = 14
188
182
 
@@ -191,8 +185,8 @@ class DuplicateContent(RucioException):
191
185
  """
192
186
  RucioException
193
187
  """
194
- def __init__(self, *args, **kwargs):
195
- super(DuplicateContent, self).__init__(*args, **kwargs)
188
+ def __init__(self, *args):
189
+ super(DuplicateContent, self).__init__(*args)
196
190
  self._message = "Data identifier already added to the destination content."
197
191
  self.error_code = 15
198
192
 
@@ -201,8 +195,8 @@ class DuplicateRule(RucioException):
201
195
  """
202
196
  RucioException
203
197
  """
204
- def __init__(self, *args, **kwargs):
205
- super(DuplicateRule, self).__init__(*args, **kwargs)
198
+ def __init__(self, *args):
199
+ super(DuplicateRule, self).__init__(*args)
206
200
  self._message = "A duplicate rule for this account, did, rse_expression, copies already exists."
207
201
  self.error_code = 16
208
202
 
@@ -211,8 +205,8 @@ class ErrorLoadingCredentials(RucioException):
211
205
  """
212
206
  RucioException
213
207
  """
214
- def __init__(self, *args, **kwargs):
215
- super(ErrorLoadingCredentials, self).__init__(*args, **kwargs)
208
+ def __init__(self, *args):
209
+ super(ErrorLoadingCredentials, self).__init__(*args)
216
210
  self._message = "Unable to to load user credentials."
217
211
  self.error_code = 17
218
212
 
@@ -221,8 +215,8 @@ class FileAlreadyExists(RucioException):
221
215
  """
222
216
  RucioException
223
217
  """
224
- def __init__(self, *args, **kwargs):
225
- super(FileAlreadyExists, self).__init__(*args, **kwargs)
218
+ def __init__(self, *args):
219
+ super(FileAlreadyExists, self).__init__(*args)
226
220
  self._message = "The file already exists."
227
221
  self.error_code = 18
228
222
 
@@ -231,8 +225,8 @@ class FileConsistencyMismatch(RucioException):
231
225
  """
232
226
  RucioException
233
227
  """
234
- def __init__(self, *args, **kwargs):
235
- super(FileConsistencyMismatch, self).__init__(*args, **kwargs)
228
+ def __init__(self, *args):
229
+ super(FileConsistencyMismatch, self).__init__(*args)
236
230
  self._message = "Error related to file consistency."
237
231
  self.error_code = 19
238
232
 
@@ -241,8 +235,8 @@ class FileReplicaAlreadyExists(RucioException):
241
235
  """
242
236
  RucioException
243
237
  """
244
- def __init__(self, *args, **kwargs):
245
- super(FileReplicaAlreadyExists, self).__init__(*args, **kwargs)
238
+ def __init__(self, *args):
239
+ super(FileReplicaAlreadyExists, self).__init__(*args)
246
240
  self._message = "File name in specified scope already exists"
247
241
  self.error_code = 20
248
242
 
@@ -251,8 +245,8 @@ class ReplicaNotFound(RucioException):
251
245
  """
252
246
  RucioException
253
247
  """
254
- def __init__(self, *args, **kwargs):
255
- super(ReplicaNotFound, self).__init__(*args, **kwargs)
248
+ def __init__(self, *args):
249
+ super(ReplicaNotFound, self).__init__(*args)
256
250
  self._message = "Replica not found"
257
251
  self.error_code = 21
258
252
 
@@ -261,8 +255,8 @@ class ReplicaUnAvailable(RucioException):
261
255
  """
262
256
  RucioException
263
257
  """
264
- def __init__(self, *args, **kwargs):
265
- super(ReplicaUnAvailable, self).__init__(*args, **kwargs)
258
+ def __init__(self, *args):
259
+ super(ReplicaUnAvailable, self).__init__(*args)
266
260
  self._message = "Replica unavailable"
267
261
  self.error_code = 22
268
262
 
@@ -271,8 +265,8 @@ class FullStorage(RucioException):
271
265
  """
272
266
  RucioException
273
267
  """
274
- def __init__(self, *args, **kwargs):
275
- super(FullStorage, self).__init__(*args, **kwargs)
268
+ def __init__(self, *args):
269
+ super(FullStorage, self).__init__(*args)
276
270
  self._message = "The Referenced storage is out of disk space."
277
271
  self.error_code = 23
278
272
 
@@ -281,15 +275,15 @@ class IdentityError(RucioException):
281
275
  """
282
276
  RucioException
283
277
  """
284
- def __init__(self, *args, **kwargs):
285
- super(IdentityError, self).__init__(*args, **kwargs)
278
+ def __init__(self, *args):
279
+ super(IdentityError, self).__init__(*args)
286
280
  self._message = "Identity error."
287
281
  self.error_code = 24
288
282
 
289
283
 
290
284
  class IdentityNotFound(RucioException):
291
- def __init__(self, *args, **kwargs):
292
- super(IdentityNotFound, self).__init__(*args, **kwargs)
285
+ def __init__(self, *args):
286
+ super(IdentityNotFound, self).__init__(*args)
293
287
  self._message = "This identity does not exist."
294
288
  self.error_code = 25
295
289
 
@@ -298,8 +292,8 @@ class InputValidationError(RucioException):
298
292
  """
299
293
  RucioException
300
294
  """
301
- def __init__(self, *args, **kwargs):
302
- super(InputValidationError, self).__init__(*args, **kwargs)
295
+ def __init__(self, *args):
296
+ super(InputValidationError, self).__init__(*args)
303
297
  self._message = "There is an error with one of the input parameters."
304
298
  self.error_code = 26
305
299
 
@@ -308,8 +302,8 @@ class InsufficientAccountLimit(RucioException):
308
302
  """
309
303
  RucioException
310
304
  """
311
- def __init__(self, *args, **kwargs):
312
- super(InsufficientAccountLimit, self).__init__(*args, **kwargs)
305
+ def __init__(self, *args):
306
+ super(InsufficientAccountLimit, self).__init__(*args)
313
307
  self._message = "There is not enough quota left to fulfil the operation."
314
308
  self.error_code = 27
315
309
 
@@ -318,8 +312,8 @@ class InsufficientTargetRSEs(RucioException):
318
312
  """
319
313
  RucioException
320
314
  """
321
- def __init__(self, *args, **kwargs):
322
- super(InsufficientTargetRSEs, self).__init__(*args, **kwargs)
315
+ def __init__(self, *args):
316
+ super(InsufficientTargetRSEs, self).__init__(*args)
323
317
  self._message = "There are not enough target RSEs to fulfil the request at this time."
324
318
  self.error_code = 28
325
319
 
@@ -328,8 +322,8 @@ class InvalidMetadata(RucioException):
328
322
  """
329
323
  RucioException
330
324
  """
331
- def __init__(self, *args, **kwargs):
332
- super(InvalidMetadata, self).__init__(*args, **kwargs)
325
+ def __init__(self, *args):
326
+ super(InvalidMetadata, self).__init__(*args)
333
327
  self._message = "Provided metadata is considered invalid."
334
328
  self.error_code = 29
335
329
 
@@ -338,8 +332,8 @@ class InvalidObject(RucioException):
338
332
  """
339
333
  RucioException
340
334
  """
341
- def __init__(self, *args, **kwargs):
342
- super(InvalidObject, self).__init__(*args, **kwargs)
335
+ def __init__(self, *args):
336
+ super(InvalidObject, self).__init__(*args)
343
337
  self._message = "Provided object does not match schema."
344
338
  self.error_code = 30
345
339
 
@@ -348,8 +342,8 @@ class InvalidReplicationRule(RucioException):
348
342
  """
349
343
  RucioException
350
344
  """
351
- def __init__(self, *args, **kwargs):
352
- super(InvalidReplicationRule, self).__init__(*args, **kwargs)
345
+ def __init__(self, *args):
346
+ super(InvalidReplicationRule, self).__init__(*args)
353
347
  self._message = "Provided replication rule is considered invalid."
354
348
  self.error_code = 31
355
349
 
@@ -358,8 +352,8 @@ class InvalidRSEExpression(RucioException):
358
352
  """
359
353
  RucioException
360
354
  """
361
- def __init__(self, *args, **kwargs):
362
- super(InvalidRSEExpression, self).__init__(*args, **kwargs)
355
+ def __init__(self, *args):
356
+ super(InvalidRSEExpression, self).__init__(*args)
363
357
  self._message = "Provided RSE expression is considered invalid."
364
358
  self.error_code = 32
365
359
 
@@ -368,8 +362,8 @@ class InvalidRuleWeight(RucioException):
368
362
  """
369
363
  RucioException
370
364
  """
371
- def __init__(self, *args, **kwargs):
372
- super(InvalidRuleWeight, self).__init__(*args, **kwargs)
365
+ def __init__(self, *args):
366
+ super(InvalidRuleWeight, self).__init__(*args)
373
367
  self._message = "An invalid weight value/type is used for an RSE."
374
368
  self.error_code = 33
375
369
 
@@ -378,8 +372,8 @@ class InvalidType(RucioException):
378
372
  """
379
373
  RucioException
380
374
  """
381
- def __init__(self, *args, **kwargs):
382
- super(InvalidType, self).__init__(*args, **kwargs)
375
+ def __init__(self, *args):
376
+ super(InvalidType, self).__init__(*args)
383
377
  self._message = "Provided type is considered invalid."
384
378
  self.error_code = 34
385
379
 
@@ -388,8 +382,8 @@ class InvalidValueForKey(RucioException):
388
382
  """
389
383
  RucioException
390
384
  """
391
- def __init__(self, *args, **kwargs):
392
- super(InvalidValueForKey, self).__init__(*args, **kwargs)
385
+ def __init__(self, *args):
386
+ super(InvalidValueForKey, self).__init__(*args)
393
387
  self._message = "Invalid value for the key."
394
388
  self.error_code = 35
395
389
 
@@ -398,8 +392,8 @@ class InvalidRequest(RucioException):
398
392
  """
399
393
  RucioException
400
394
  """
401
- def __init__(self, *args, **kwargs):
402
- super(InvalidRequest, self).__init__(*args, **kwargs)
395
+ def __init__(self, *args):
396
+ super(InvalidRequest, self).__init__(*args)
403
397
  self._message = "Request is considered invalid."
404
398
  self.error_code = 36
405
399
 
@@ -408,8 +402,8 @@ class InvalidPath(RucioException):
408
402
  """
409
403
  RucioException
410
404
  """
411
- def __init__(self, *args, **kwargs):
412
- super(InvalidPath, self).__init__(*args, **kwargs)
405
+ def __init__(self, *args):
406
+ super(InvalidPath, self).__init__(*args)
413
407
  self._message = "The path provided is invalid."
414
408
  self.error_code = 37
415
409
 
@@ -418,8 +412,8 @@ class KeyNotFound(RucioException):
418
412
  """
419
413
  RucioException
420
414
  """
421
- def __init__(self, *args, **kwargs):
422
- super(KeyNotFound, self).__init__(*args, **kwargs)
415
+ def __init__(self, *args):
416
+ super(KeyNotFound, self).__init__(*args)
423
417
  self._message = "Key does not exist."
424
418
  self.error_code = 38
425
419
 
@@ -428,8 +422,8 @@ class LifetimeExceptionDuplicate(RucioException):
428
422
  """
429
423
  RucioException
430
424
  """
431
- def __init__(self, *args, **kwargs):
432
- super(LifetimeExceptionDuplicate, self).__init__(*args, **kwargs)
425
+ def __init__(self, *args):
426
+ super(LifetimeExceptionDuplicate, self).__init__(*args)
433
427
  self._message = "An exception already exists."
434
428
  self.error_code = 39
435
429
 
@@ -438,8 +432,8 @@ class LifetimeExceptionNotFound(RucioException):
438
432
  """
439
433
  RucioException
440
434
  """
441
- def __init__(self, *args, **kwargs):
442
- super(LifetimeExceptionNotFound, self).__init__(*args, **kwargs)
435
+ def __init__(self, *args):
436
+ super(LifetimeExceptionNotFound, self).__init__(*args)
443
437
  self._message = "Exception does not exist."
444
438
  self.error_code = 40
445
439
 
@@ -448,8 +442,8 @@ class ManualRuleApprovalBlocked(RucioException):
448
442
  """
449
443
  RucioException
450
444
  """
451
- def __init__(self, *args, **kwargs):
452
- super(ManualRuleApprovalBlocked, self).__init__(*args, **kwargs)
445
+ def __init__(self, *args):
446
+ super(ManualRuleApprovalBlocked, self).__init__(*args)
453
447
  self._message = "Manual rule approval is blocked on this RSE."
454
448
  self.error_code = 41
455
449
 
@@ -458,8 +452,8 @@ class MissingClientParameter(RucioException):
458
452
  """
459
453
  RucioException
460
454
  """
461
- def __init__(self, *args, **kwargs):
462
- super(MissingClientParameter, self).__init__(*args, **kwargs)
455
+ def __init__(self, *args):
456
+ super(MissingClientParameter, self).__init__(*args)
463
457
  self._message = "Client parameters are missing."
464
458
  self.error_code = 42
465
459
 
@@ -468,8 +462,8 @@ class MissingDependency(RucioException):
468
462
  """
469
463
  RucioException
470
464
  """
471
- def __init__(self, *args, **kwargs):
472
- super(MissingDependency, self).__init__(*args, **kwargs)
465
+ def __init__(self, *args):
466
+ super(MissingDependency, self).__init__(*args)
473
467
  self._message = "One dependency is missing."
474
468
  self.error_code = 43
475
469
 
@@ -478,8 +472,8 @@ class MissingSourceReplica(RucioException):
478
472
  """
479
473
  RucioException
480
474
  """
481
- def __init__(self, *args, **kwargs):
482
- super(MissingSourceReplica, self).__init__(*args, **kwargs)
475
+ def __init__(self, *args):
476
+ super(MissingSourceReplica, self).__init__(*args)
483
477
  self._message = "Source replicas are missing to fulfil the request at this moment."
484
478
  self.error_code = 44
485
479
 
@@ -488,8 +482,8 @@ class NameTypeError(RucioException):
488
482
  """
489
483
  RucioException
490
484
  """
491
- def __init__(self, *args, **kwargs):
492
- super(NameTypeError, self).__init__(*args, **kwargs)
485
+ def __init__(self, *args):
486
+ super(NameTypeError, self).__init__(*args)
493
487
  self._message = "Name is of the wrong type"
494
488
  self.error_code = 45
495
489
 
@@ -498,8 +492,8 @@ class NoAuthInformation(RucioException):
498
492
  """
499
493
  RucioException
500
494
  """
501
- def __init__(self, *args, **kwargs):
502
- super(NoAuthInformation, self).__init__(*args, **kwargs)
495
+ def __init__(self, *args):
496
+ super(NoAuthInformation, self).__init__(*args)
503
497
  self._message = "No authentication information passed."
504
498
  self.error_code = 46
505
499
 
@@ -508,8 +502,8 @@ class NoFilesDownloaded(RucioException):
508
502
  """
509
503
  RucioException
510
504
  """
511
- def __init__(self, *args, **kwargs):
512
- super(NoFilesDownloaded, self).__init__(*args, **kwargs)
505
+ def __init__(self, *args):
506
+ super(NoFilesDownloaded, self).__init__(*args)
513
507
  self._message = "None of the requested files have been downloaded."
514
508
  self.error_code = 75
515
509
 
@@ -518,8 +512,8 @@ class NotAllFilesDownloaded(RucioException):
518
512
  """
519
513
  RucioException
520
514
  """
521
- def __init__(self, *args, **kwargs):
522
- super(NotAllFilesDownloaded, self).__init__(*args, **kwargs)
515
+ def __init__(self, *args):
516
+ super(NotAllFilesDownloaded, self).__init__(*args)
523
517
  self._message = "Not all of the requested files have been downloaded."
524
518
  self.error_code = 76
525
519
 
@@ -528,15 +522,15 @@ class ReplicationRuleCreationTemporaryFailed(RucioException):
528
522
  """
529
523
  RucioException
530
524
  """
531
- def __init__(self, *args, **kwargs):
532
- super(ReplicationRuleCreationTemporaryFailed, self).__init__(*args, **kwargs)
525
+ def __init__(self, *args):
526
+ super(ReplicationRuleCreationTemporaryFailed, self).__init__(*args)
533
527
  self._message = "The creation of the replication rule failed at this time. Please try again later."
534
528
  self.error_code = 47
535
529
 
536
530
 
537
531
  class RequestNotFound(RucioException):
538
- def __init__(self, *args, **kwargs):
539
- super(RequestNotFound, self).__init__(*args, **kwargs)
532
+ def __init__(self, *args):
533
+ super(RequestNotFound, self).__init__(*args)
540
534
  self._message = "A request for this DID and RSE does not exist."
541
535
  self.error_code = 48
542
536
 
@@ -545,8 +539,8 @@ class RSEAccessDenied(RucioException):
545
539
  """
546
540
  RucioException
547
541
  """
548
- def __init__(self, *args, **kwargs):
549
- super(RSEAccessDenied, self).__init__(*args, **kwargs)
542
+ def __init__(self, *args):
543
+ super(RSEAccessDenied, self).__init__(*args)
550
544
  self._message = "Referenced RSE not reachable."
551
545
  self.error_code = 49
552
546
 
@@ -555,8 +549,8 @@ class RSEWriteBlocked(RucioException):
555
549
  """
556
550
  RucioException
557
551
  """
558
- def __init__(self, *args, **kwargs):
559
- super(RSEWriteBlocked, self).__init__(*args, **kwargs)
552
+ def __init__(self, *args):
553
+ super(RSEWriteBlocked, self).__init__(*args)
560
554
  self._message = "RSE excluded; not available for writing."
561
555
  self.error_code = 50
562
556
 
@@ -565,8 +559,8 @@ class RSENotConnected(RucioException):
565
559
  """
566
560
  RucioException
567
561
  """
568
- def __init__(self, *args, **kwargs):
569
- super(RSENotConnected, self).__init__(*args, **kwargs)
562
+ def __init__(self, *args):
563
+ super(RSENotConnected, self).__init__(*args)
570
564
  self._message = "Connection to RSE not established."
571
565
  self.error_code = 51
572
566
 
@@ -575,8 +569,8 @@ class RSENotFound(RucioException):
575
569
  """
576
570
  RucioException
577
571
  """
578
- def __init__(self, *args, **kwargs):
579
- super(RSENotFound, self).__init__(*args, **kwargs)
572
+ def __init__(self, *args):
573
+ super(RSENotFound, self).__init__(*args)
580
574
  self._message = "RSE does not exist."
581
575
  self.error_code = 52
582
576
 
@@ -585,8 +579,8 @@ class RSEProtocolNotSupported(RucioException):
585
579
  """
586
580
  RucioException
587
581
  """
588
- def __init__(self, *args, **kwargs):
589
- super(RSEProtocolNotSupported, self).__init__(*args, **kwargs)
582
+ def __init__(self, *args):
583
+ super(RSEProtocolNotSupported, self).__init__(*args)
590
584
  self._message = "RSE does not support requested protocol."
591
585
  self.error_code = 53
592
586
 
@@ -595,8 +589,8 @@ class RSEProtocolPriorityError(RucioException):
595
589
  """
596
590
  RucioException
597
591
  """
598
- def __init__(self, *args, **kwargs):
599
- super(RSEProtocolPriorityError, self).__init__(*args, **kwargs)
592
+ def __init__(self, *args):
593
+ super(RSEProtocolPriorityError, self).__init__(*args)
600
594
  self._message = "RSE does not support provided protocol priority for protocol."
601
595
  self.error_code = 54
602
596
 
@@ -605,8 +599,8 @@ class RSEProtocolDomainNotSupported(RucioException):
605
599
  """
606
600
  RucioException
607
601
  """
608
- def __init__(self, *args, **kwargs):
609
- super(RSEProtocolDomainNotSupported, self).__init__(*args, **kwargs)
602
+ def __init__(self, *args):
603
+ super(RSEProtocolDomainNotSupported, self).__init__(*args)
610
604
  self._message = "RSE does not support requested protocol scope."
611
605
  self.error_code = 55
612
606
 
@@ -615,8 +609,8 @@ class RSEOperationNotSupported(RucioException):
615
609
  """
616
610
  RucioException
617
611
  """
618
- def __init__(self, *args, **kwargs):
619
- super(RSEOperationNotSupported, self).__init__(*args, **kwargs)
612
+ def __init__(self, *args):
613
+ super(RSEOperationNotSupported, self).__init__(*args)
620
614
  self._message = "RSE does not support requested operation."
621
615
  self.error_code = 56
622
616
 
@@ -625,8 +619,8 @@ class RSEFileNameNotSupported(RucioException):
625
619
  """
626
620
  RucioException
627
621
  """
628
- def __init__(self, *args, **kwargs):
629
- super(RSEFileNameNotSupported, self).__init__(*args, **kwargs)
622
+ def __init__(self, *args):
623
+ super(RSEFileNameNotSupported, self).__init__(*args)
630
624
  self._message = "RSE does not support provided filename."
631
625
  self.error_code = 57
632
626
 
@@ -635,8 +629,8 @@ class RSEOverQuota(RucioException):
635
629
  """
636
630
  RucioException
637
631
  """
638
- def __init__(self, *args, **kwargs):
639
- super(RSEOverQuota, self).__init__(*args, **kwargs)
632
+ def __init__(self, *args):
633
+ super(RSEOverQuota, self).__init__(*args)
640
634
  self._message = "Quota of Referenced RSE is exceeded."
641
635
  self.error_code = 58
642
636
 
@@ -645,8 +639,8 @@ class ResourceTemporaryUnavailable(RucioException):
645
639
  """
646
640
  RucioException
647
641
  """
648
- def __init__(self, *args, **kwargs):
649
- super(ResourceTemporaryUnavailable, self).__init__(*args, **kwargs)
642
+ def __init__(self, *args):
643
+ super(ResourceTemporaryUnavailable, self).__init__(*args)
650
644
  self._message = "The resource is temporary not available."
651
645
  self.error_code = 59
652
646
 
@@ -655,8 +649,8 @@ class RuleNotFound(RucioException):
655
649
  """
656
650
  RucioException
657
651
  """
658
- def __init__(self, *args, **kwargs):
659
- super(RuleNotFound, self).__init__(*args, **kwargs)
652
+ def __init__(self, *args):
653
+ super(RuleNotFound, self).__init__(*args)
660
654
  self._message = "No replication rule found."
661
655
  self.error_code = 60
662
656
 
@@ -665,8 +659,8 @@ class RuleReplaceFailed(RucioException):
665
659
  """
666
660
  RucioException
667
661
  """
668
- def __init__(self, *args, **kwargs):
669
- super(RuleReplaceFailed, self).__init__(*args, **kwargs)
662
+ def __init__(self, *args):
663
+ super(RuleReplaceFailed, self).__init__(*args)
670
664
  self._message = "The replace operation for the rule failed."
671
665
  self.error_code = 61
672
666
 
@@ -675,8 +669,8 @@ class ScratchDiskLifetimeConflict(RucioException):
675
669
  """
676
670
  RucioException
677
671
  """
678
- def __init__(self, *args, **kwargs):
679
- super(ScratchDiskLifetimeConflict, self).__init__(*args, **kwargs)
672
+ def __init__(self, *args):
673
+ super(ScratchDiskLifetimeConflict, self).__init__(*args)
680
674
  self._message = "The requested replication rule exceeds the maximum SCRATCHDISK lifetime of 15 days."
681
675
  self.error_code = 62
682
676
 
@@ -685,8 +679,8 @@ class ServiceUnavailable(RucioException):
685
679
  """
686
680
  RucioException
687
681
  """
688
- def __init__(self, *args, **kwargs):
689
- super(ServiceUnavailable, self).__init__(*args, **kwargs)
682
+ def __init__(self, *args):
683
+ super(ServiceUnavailable, self).__init__(*args)
690
684
  self._message = "The requested service is not available at the moment."
691
685
  self.error_code = 63
692
686
 
@@ -695,8 +689,8 @@ class ScopeAccessDenied(RucioException):
695
689
  """
696
690
  RucioException
697
691
  """
698
- def __init__(self, *args, **kwargs):
699
- super(ScopeAccessDenied, self).__init__(*args, **kwargs)
692
+ def __init__(self, *args):
693
+ super(ScopeAccessDenied, self).__init__(*args)
700
694
  self._message = "Access to Referenced scope denied."
701
695
  self.error_code = 64
702
696
 
@@ -705,8 +699,8 @@ class ScopeNotFound(RucioException):
705
699
  """
706
700
  RucioException
707
701
  """
708
- def __init__(self, *args, **kwargs):
709
- super(ScopeNotFound, self).__init__(*args, **kwargs)
702
+ def __init__(self, *args):
703
+ super(ScopeNotFound, self).__init__(*args)
710
704
  self._message = "Scope does not exist."
711
705
  self.error_code = 65
712
706
 
@@ -715,8 +709,8 @@ class SourceAccessDenied(RucioException):
715
709
  """
716
710
  RucioException
717
711
  """
718
- def __init__(self, *args, **kwargs):
719
- super(SourceAccessDenied, self).__init__(*args, **kwargs)
712
+ def __init__(self, *args):
713
+ super(SourceAccessDenied, self).__init__(*args)
720
714
  self._message = "Access to local source file denied."
721
715
  self.error_code = 66
722
716
 
@@ -725,8 +719,8 @@ class SourceNotFound(RucioException):
725
719
  """
726
720
  RucioException
727
721
  """
728
- def __init__(self, *args, **kwargs):
729
- super(SourceNotFound, self).__init__(*args, **kwargs)
722
+ def __init__(self, *args):
723
+ super(SourceNotFound, self).__init__(*args)
730
724
  self._message = "Source file not found."
731
725
  self.error_code = 67
732
726
 
@@ -735,8 +729,8 @@ class StagingAreaRuleRequiresLifetime(RucioException):
735
729
  """
736
730
  RucioException
737
731
  """
738
- def __init__(self, *args, **kwargs):
739
- super(StagingAreaRuleRequiresLifetime, self).__init__(*args, **kwargs)
732
+ def __init__(self, *args):
733
+ super(StagingAreaRuleRequiresLifetime, self).__init__(*args)
740
734
  self._message = "A rule involving a staging area requires a lifetime!"
741
735
  self.error_code = 68
742
736
 
@@ -745,8 +739,8 @@ class SubscriptionDuplicate(RucioException):
745
739
  """
746
740
  RucioException
747
741
  """
748
- def __init__(self, *args, **kwargs):
749
- super(SubscriptionDuplicate, self).__init__(*args, **kwargs)
742
+ def __init__(self, *args):
743
+ super(SubscriptionDuplicate, self).__init__(*args)
750
744
  self._message = "A subscription with the same identifier already exists."
751
745
  self.error_code = 69
752
746
 
@@ -755,8 +749,8 @@ class SubscriptionNotFound(RucioException):
755
749
  """
756
750
  RucioException
757
751
  """
758
- def __init__(self, *args, **kwargs):
759
- super(SubscriptionNotFound, self).__init__(*args, **kwargs)
752
+ def __init__(self, *args):
753
+ super(SubscriptionNotFound, self).__init__(*args)
760
754
  self._message = "Subscription not found."
761
755
  self.error_code = 70
762
756
 
@@ -765,8 +759,8 @@ class UnsupportedDIDType(RucioException):
765
759
  """
766
760
  RucioException
767
761
  """
768
- def __init__(self, *args, **kwargs):
769
- super(UnsupportedDIDType, self).__init__(*args, **kwargs)
762
+ def __init__(self, *args):
763
+ super(UnsupportedDIDType, self).__init__(*args)
770
764
  self._message = "Unsupported DID type for this operation. Only DATASET or FILE is allowed."
771
765
  self.error_code = 71
772
766
 
@@ -775,8 +769,8 @@ class UnsupportedOperation(RucioException):
775
769
  """
776
770
  RucioException
777
771
  """
778
- def __init__(self, *args, **kwargs):
779
- super(UnsupportedOperation, self).__init__(*args, **kwargs)
772
+ def __init__(self, *args):
773
+ super(UnsupportedOperation, self).__init__(*args)
780
774
  self._message = "The resource doesn't support the requested operation."
781
775
  self.error_code = 72
782
776
 
@@ -785,8 +779,8 @@ class UnsupportedStatus(RucioException):
785
779
  """
786
780
  RucioException
787
781
  """
788
- def __init__(self, *args, **kwargs):
789
- super(UnsupportedStatus, self).__init__(*args, **kwargs)
782
+ def __init__(self, *args):
783
+ super(UnsupportedStatus, self).__init__(*args)
790
784
  self._message = "Unsupported data identifier status."
791
785
  self.error_code = 73
792
786
 
@@ -795,8 +789,8 @@ class UnsupportedValueType(RucioException):
795
789
  """
796
790
  RucioException
797
791
  """
798
- def __init__(self, *args, **kwargs):
799
- super(UnsupportedValueType, self).__init__(*args, **kwargs)
792
+ def __init__(self, *args):
793
+ super(UnsupportedValueType, self).__init__(*args)
800
794
  self._message = "Unsupported type for the value. List of supported types: %s." % str(AUTHORIZED_VALUE_TYPES)
801
795
  self.error_code = 74
802
796
 
@@ -805,8 +799,8 @@ class MissingModuleException(RucioException):
805
799
  """
806
800
  RucioException
807
801
  """
808
- def __init__(self, *args, **kwargs):
809
- super(MissingModuleException, self).__init__(*args, **kwargs)
802
+ def __init__(self, *args):
803
+ super(MissingModuleException, self).__init__(*args)
810
804
  self._message = "The module is not installed."
811
805
  self.error_code = 77
812
806
 
@@ -815,8 +809,8 @@ class ServerConnectionException(RucioException):
815
809
  """
816
810
  RucioException
817
811
  """
818
- def __init__(self, *args, **kwargs):
819
- super(ServerConnectionException, self).__init__(*args, **kwargs)
812
+ def __init__(self, *args):
813
+ super(ServerConnectionException, self).__init__(*args)
820
814
  self._message = "Cannot connect to the Rucio server."
821
815
  self.error_code = 78
822
816
 
@@ -825,8 +819,8 @@ class NoFilesUploaded(RucioException):
825
819
  """
826
820
  RucioException
827
821
  """
828
- def __init__(self, *args, **kwargs):
829
- super(NoFilesUploaded, self).__init__(*args, **kwargs)
822
+ def __init__(self, *args):
823
+ super(NoFilesUploaded, self).__init__(*args)
830
824
  self._message = "None of the given files have been uploaded."
831
825
  self.error_code = 79
832
826
 
@@ -835,8 +829,8 @@ class NotAllFilesUploaded(RucioException):
835
829
  """
836
830
  RucioException
837
831
  """
838
- def __init__(self, *args, **kwargs):
839
- super(NotAllFilesUploaded, self).__init__(*args, **kwargs)
832
+ def __init__(self, *args):
833
+ super(NotAllFilesUploaded, self).__init__(*args)
840
834
  self._message = "Not all of the given files have been uploaded."
841
835
  self.error_code = 80
842
836
 
@@ -845,8 +839,8 @@ class RSEChecksumUnavailable(RucioException):
845
839
  """
846
840
  Cannot retrieve checksum from RSE
847
841
  """
848
- def __init__(self, *args, **kwargs):
849
- super(RSEChecksumUnavailable, self).__init__(*args, **kwargs)
842
+ def __init__(self, *args):
843
+ super(RSEChecksumUnavailable, self).__init__(*args)
850
844
  self._message = "RSE checksum unavailable."
851
845
  self.error_code = 81
852
846
 
@@ -855,8 +849,8 @@ class UndefinedPolicy(RucioException):
855
849
  """
856
850
  Cannot find a defined policy in the Rucio config
857
851
  """
858
- def __init__(self, *args, **kwargs):
859
- super(UndefinedPolicy, self).__init__(*args, **kwargs)
852
+ def __init__(self, *args):
853
+ super(UndefinedPolicy, self).__init__(*args)
860
854
  self._message = "No policy is defined."
861
855
  self.error_code = 82
862
856
 
@@ -865,8 +859,8 @@ class TransferToolTimeout(RucioException):
865
859
  """
866
860
  Timeout from the transfer tool
867
861
  """
868
- def __init__(self, *args, **kwargs):
869
- super(TransferToolTimeout, self).__init__(*args, **kwargs)
862
+ def __init__(self, *args):
863
+ super(TransferToolTimeout, self).__init__(*args)
870
864
  self._message = "Timeout from the transfer tool."
871
865
  self.error_code = 83
872
866
 
@@ -875,8 +869,8 @@ class TransferToolWrongAnswer(RucioException):
875
869
  """
876
870
  Wrong answer returned by the transfer tool
877
871
  """
878
- def __init__(self, *args, **kwargs):
879
- super(TransferToolWrongAnswer, self).__init__(*args, **kwargs)
872
+ def __init__(self, *args):
873
+ super(TransferToolWrongAnswer, self).__init__(*args)
880
874
  self._message = "Wrong answer returned by the transfer tool."
881
875
  self.error_code = 84
882
876
 
@@ -885,8 +879,8 @@ class RSEAttributeNotFound(RucioException):
885
879
  """
886
880
  RSE attribute not found.
887
881
  """
888
- def __init__(self, *args, **kwargs):
889
- super(RSEAttributeNotFound, self).__init__(*args, **kwargs)
882
+ def __init__(self, *args):
883
+ super(RSEAttributeNotFound, self).__init__(*args)
890
884
  self._message = "RSE attribute not found."
891
885
  self.error_code = 85
892
886
 
@@ -895,8 +889,8 @@ class UnsupportedKeyType(RucioException):
895
889
  """
896
890
  RucioException
897
891
  """
898
- def __init__(self, *args, **kwargs):
899
- super(UnsupportedKeyType, self).__init__(*args, **kwargs)
892
+ def __init__(self, *args):
893
+ super(UnsupportedKeyType, self).__init__(*args)
900
894
  self._message = "Unsupported type for the key."
901
895
  self.error_code = 86
902
896
 
@@ -905,8 +899,8 @@ class MetalinkJsonParsingError(RucioException):
905
899
  """
906
900
  Failed to parse input with metalink and json
907
901
  """
908
- def __init__(self, data, metalink_err, json_err, *args, **kwargs):
909
- super(MetalinkJsonParsingError, self).__init__(*args, **kwargs)
902
+ def __init__(self, data, metalink_err, json_err, *args):
903
+ super(MetalinkJsonParsingError, self).__init__(*args)
910
904
  self._message = 'Failed parsing of %s. MetalinkError: %s. JsonError: %s' % (data, metalink_err, json_err)
911
905
  self.error_code = 87
912
906
 
@@ -915,8 +909,8 @@ class ReplicaIsLocked(RucioException):
915
909
  """
916
910
  Replica has one or more locks.
917
911
  """
918
- def __init__(self, *args, **kwargs):
919
- super(ReplicaIsLocked, self).__init__(*args, **kwargs)
912
+ def __init__(self, *args):
913
+ super(ReplicaIsLocked, self).__init__(*args)
920
914
  self._message = 'Replica is locked'
921
915
  self.error_code = 88
922
916
 
@@ -925,8 +919,8 @@ class UnsupportedRequestedContentType(RucioException):
925
919
  """
926
920
  The requested content type is not supported by the API endpoint.
927
921
  """
928
- def __init__(self, *args, **kwargs):
929
- super(UnsupportedRequestedContentType, self).__init__(*args, **kwargs)
922
+ def __init__(self, *args):
923
+ super(UnsupportedRequestedContentType, self).__init__(*args)
930
924
  self._message = 'The requested content type is not supported.'
931
925
  self.error_code = 89
932
926
 
@@ -935,8 +929,8 @@ class DuplicateFileTransferSubmission(RucioException):
935
929
  """
936
930
  A transfer for the same file is already submitted to the Transfer Tool.
937
931
  """
938
- def __init__(self, *args, **kwargs):
939
- super(DuplicateFileTransferSubmission, self).__init__(*args, **kwargs)
932
+ def __init__(self, *args):
933
+ super(DuplicateFileTransferSubmission, self).__init__(*args)
940
934
  self._message = 'One or more files are already submitted to the transfer tool'
941
935
  self.error_code = 90
942
936
 
@@ -945,8 +939,8 @@ class DIDError(RucioException):
945
939
  """
946
940
  An operation related to DID type went wrong
947
941
  """
948
- def __init__(self, *args, **kwargs):
949
- super(DIDError, self).__init__(*args, **kwargs)
942
+ def __init__(self, *args):
943
+ super(DIDError, self).__init__(*args)
950
944
  self._message = 'Error using DID type'
951
945
  self.error_code = 91
952
946
 
@@ -955,19 +949,28 @@ class NoDistance(RucioException):
955
949
  """
956
950
  No distance can be found between 2 RSEs
957
951
  """
958
- def __init__(self, *args, **kwargs):
959
- super(NoDistance, self).__init__(*args, **kwargs)
952
+ def __init__(self, *args):
953
+ super(NoDistance, self).__init__(*args)
960
954
  self._message = 'Cannot found a distance between 2 RSEs'
961
955
  self.error_code = 92
962
956
 
963
957
 
964
- class PolicyPackageNotFound(RucioException):
958
+ class PolicyPackageBaseException(RucioException):
965
959
  """
966
- The policy package specified in the config file cannot be loaded.
960
+ Base exception for policy package errors.
967
961
  """
968
- def __init__(self, *args, **kwargs):
969
- super(PolicyPackageNotFound, self).__init__(*args, **kwargs)
970
- self._message = 'The specified policy package cannot be loaded'
962
+ def __init__(self, package: str, *args):
963
+ super(PolicyPackageBaseException, self).__init__(*args)
964
+ self.package = package
965
+
966
+
967
+ class PolicyPackageNotFound(PolicyPackageBaseException):
968
+ """
969
+ The policy package specified in the config file was not found
970
+ """
971
+ def __init__(self, package: str, *args):
972
+ super(PolicyPackageNotFound, self).__init__(package, *args)
973
+ self._message = 'The specified policy package %s was not found' % self.package
971
974
  self.error_code = 93
972
975
 
973
976
 
@@ -975,8 +978,8 @@ class CannotAuthorize(RucioException):
975
978
  """
976
979
  Failed to authorize an operation.
977
980
  """
978
- def __init__(self, *args, **kwargs):
979
- super(CannotAuthorize, self).__init__(*args, **kwargs)
981
+ def __init__(self, *args):
982
+ super(CannotAuthorize, self).__init__(*args)
980
983
  self._message = 'Can not authorize operation.'
981
984
  self.error_code = 94
982
985
 
@@ -985,8 +988,8 @@ class SubscriptionWrongParameter(RucioException):
985
988
  """
986
989
  RucioException
987
990
  """
988
- def __init__(self, *args, **kwargs):
989
- super(SubscriptionWrongParameter, self).__init__(*args, **kwargs)
991
+ def __init__(self, *args):
992
+ super(SubscriptionWrongParameter, self).__init__(*args)
990
993
  self._message = "Subscription wrong parameters"
991
994
  self.error_code = 95
992
995
 
@@ -995,8 +998,8 @@ class VONotFound(RucioException):
995
998
  """
996
999
  Requested VO does not exist.
997
1000
  """
998
- def __init__(self, *args, **kwargs):
999
- super(VONotFound, self).__init__(*args, **kwargs)
1001
+ def __init__(self, *args):
1002
+ super(VONotFound, self).__init__(*args)
1000
1003
  self._message = 'The requested VO does not exist'
1001
1004
  self.error_code = 96
1002
1005
 
@@ -1005,8 +1008,8 @@ class UnsupportedAccountName(RucioException):
1005
1008
  """
1006
1009
  Requested account name is not supported for users.
1007
1010
  """
1008
- def __init__(self, *args, **kwargs):
1009
- super(UnsupportedAccountName, self).__init__(*args, **kwargs)
1011
+ def __init__(self, *args):
1012
+ super(UnsupportedAccountName, self).__init__(*args)
1010
1013
  self._message = 'The requested account name cannot be used'
1011
1014
  self.error_code = 97
1012
1015
 
@@ -1015,8 +1018,8 @@ class DuplicateCriteriaInDIDFilter(RucioException):
1015
1018
  """
1016
1019
  Duplicate criteria found in DID filter.
1017
1020
  """
1018
- def __init__(self, *args, **kwargs):
1019
- super(DuplicateCriteriaInDIDFilter, self).__init__(*args, **kwargs)
1021
+ def __init__(self, *args):
1022
+ super(DuplicateCriteriaInDIDFilter, self).__init__(*args)
1020
1023
  self._message = 'Duplicate criteria for key/operator in filter expression: {}'.format(args[0])
1021
1024
  self.error_code = 98
1022
1025
 
@@ -1025,8 +1028,8 @@ class DIDFilterSyntaxError(RucioException):
1025
1028
  """
1026
1029
  DID filter is not parsable.
1027
1030
  """
1028
- def __init__(self, *args, **kwargs):
1029
- super(DIDFilterSyntaxError, self).__init__(*args, **kwargs)
1031
+ def __init__(self, *args):
1032
+ super(DIDFilterSyntaxError, self).__init__(*args)
1030
1033
  self._message = 'Syntax error in filter expression.'
1031
1034
  self.error_code = 99
1032
1035
 
@@ -1035,8 +1038,8 @@ class InvalidAlgorithmName(RucioException):
1035
1038
  """
1036
1039
  The given algorithm name is not valid for the VO.
1037
1040
  """
1038
- def __init__(self, algorithm, vo, *args, **kwargs):
1039
- super(InvalidAlgorithmName, self).__init__(*args, **kwargs)
1041
+ def __init__(self, algorithm, vo, *args):
1042
+ super(InvalidAlgorithmName, self).__init__(*args)
1040
1043
  self.message = 'Algorithm name %s is not valid for VO %s' % (algorithm, vo)
1041
1044
  self.error_code = 100
1042
1045
 
@@ -1045,8 +1048,8 @@ class FilterEngineGenericError(RucioException):
1045
1048
  """
1046
1049
  Generic Filter Engine error.
1047
1050
  """
1048
- def __init__(self, *args, **kwargs):
1049
- super(FilterEngineGenericError, self).__init__(*args, **kwargs)
1051
+ def __init__(self, *args):
1052
+ super(FilterEngineGenericError, self).__init__(*args)
1050
1053
  self._message = 'Generic filter engine error.'
1051
1054
  self.error_code = 101
1052
1055
 
@@ -1055,19 +1058,25 @@ class MetadataSchemaMismatchError(RucioException):
1055
1058
  """
1056
1059
  External table does not match expected table schema.
1057
1060
  """
1058
- def __init__(self, *args, **kwargs):
1059
- super(MetadataSchemaMismatchError, self).__init__(*args, **kwargs)
1061
+ def __init__(self, *args):
1062
+ super(MetadataSchemaMismatchError, self).__init__(*args)
1060
1063
  self._message = 'The external table does not match the expected table schema.'
1061
1064
  self.error_code = 102
1062
1065
 
1063
1066
 
1064
- class PolicyPackageVersionError(RucioException):
1067
+ class PolicyPackageVersionError(PolicyPackageBaseException):
1065
1068
  """
1066
1069
  Policy package is not compatible with this version of Rucio.
1067
1070
  """
1068
- def __init__(self, package, *args, **kwargs):
1069
- super(PolicyPackageVersionError, self).__init__(*args, **kwargs)
1070
- self._message = 'Policy package %s is not compatible with this Rucio version' % package
1071
+ def __init__(self, package: str, rucio_version: str, supported_versions: list[str], *args):
1072
+ super(PolicyPackageVersionError, self).__init__(package, *args)
1073
+ self.rucio_version = rucio_version
1074
+ self.supported_versions = supported_versions
1075
+ self._message = 'Policy package %s is not compatible with this Rucio version.\nRucio version: %s\nVersions supported by the package: %s' % (
1076
+ self.package,
1077
+ self.rucio_version,
1078
+ self.supported_versions
1079
+ )
1071
1080
  self.error_code = 103
1072
1081
 
1073
1082
 
@@ -1076,8 +1085,8 @@ class InvalidSourceReplicaExpression(RucioException):
1076
1085
  Source Replica Expression Considered Invalid
1077
1086
  """
1078
1087
 
1079
- def __init__(self, *args, **kwargs):
1080
- super(InvalidSourceReplicaExpression, self).__init__(*args, **kwargs)
1088
+ def __init__(self, *args):
1089
+ super(InvalidSourceReplicaExpression, self).__init__(*args)
1081
1090
  self._message = 'Provided Source Replica expression is considered invalid.'
1082
1091
  self.error_code = 104
1083
1092
 
@@ -1086,7 +1095,57 @@ class DeprecationError(RucioException):
1086
1095
  """
1087
1096
  Function has been deprecated.
1088
1097
  """
1089
- def __init__(self, *args, **kwargs):
1090
- super(DeprecationError, self).__init__(*args, **kwargs)
1098
+ def __init__(self, *args):
1099
+ super(DeprecationError, self).__init__(*args)
1091
1100
  self._message = 'Command or function has been deprecated.'
1092
1101
  self.error_code = 105
1102
+
1103
+
1104
+ class SortingAlgorithmNotSupported(RucioException):
1105
+ """
1106
+ Sorting algorithm is not supported.
1107
+ """
1108
+ def __init__(self, *args):
1109
+ super(SortingAlgorithmNotSupported, self).__init__(*args)
1110
+ self._message = 'Sorting algorithm is not supported.'
1111
+ self.error_code = 106
1112
+
1113
+
1114
+ class ErrorLoadingPolicyPackage(PolicyPackageBaseException):
1115
+ """
1116
+ An error occurred while loading the policy package.
1117
+ """
1118
+ def __init__(self, package: str, *args):
1119
+ super(ErrorLoadingPolicyPackage, self).__init__(package, *args)
1120
+ self._message = 'An error occurred while loading the policy package %s' % self.package
1121
+ self.error_code = 107
1122
+
1123
+
1124
+ class TraceValidationSchemaNotFound(RucioException):
1125
+ """
1126
+ Trace validation schema not found.
1127
+ """
1128
+ def __init__(self, *args, **kwargs):
1129
+ super(TraceValidationSchemaNotFound, self).__init__(*args, **kwargs)
1130
+ self._message = 'Trace validation schema not found.'
1131
+ self.error_code = 108
1132
+
1133
+
1134
+ class PolicyPackageIsNotVersioned(PolicyPackageBaseException):
1135
+ """
1136
+ Policy package does not contain version information.
1137
+ """
1138
+ def __init__(self, package: str, *args):
1139
+ super(PolicyPackageIsNotVersioned, self).__init__(package, *args)
1140
+ self._message = 'Policy package %s does not include information about which Rucio versions it supports.' % self.package
1141
+ self.error_code = 109
1142
+
1143
+
1144
+ class UnsupportedMetadataPlugin(RucioException):
1145
+ """
1146
+ Raised when attempting to use a metadata plugin that is not enabled on the server.
1147
+ """
1148
+ def __init__(self, *args):
1149
+ super(UnsupportedMetadataPlugin, self).__init__(*args)
1150
+ self._message = "The requested metadata plugin is not enabled on the server."
1151
+ self.error_code = 110