rucio-clients 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-clients might be problematic. Click here for more details.
- rucio/cli/rule.py +1 -1
- rucio/client/accountclient.py +205 -60
- rucio/client/accountlimitclient.py +84 -25
- rucio/client/baseclient.py +85 -48
- rucio/client/client.py +49 -41
- rucio/client/configclient.py +36 -13
- rucio/client/credentialclient.py +16 -6
- rucio/client/didclient.py +321 -133
- rucio/client/diracclient.py +13 -6
- rucio/client/downloadclient.py +435 -165
- rucio/client/exportclient.py +8 -2
- rucio/client/fileclient.py +10 -3
- rucio/client/importclient.py +4 -1
- rucio/client/lifetimeclient.py +48 -31
- rucio/client/lockclient.py +22 -7
- rucio/client/metaconventionsclient.py +59 -21
- rucio/client/pingclient.py +3 -1
- rucio/client/replicaclient.py +213 -96
- rucio/client/requestclient.py +124 -16
- rucio/client/rseclient.py +385 -160
- rucio/client/ruleclient.py +147 -51
- rucio/client/scopeclient.py +35 -10
- rucio/client/subscriptionclient.py +60 -27
- rucio/client/touchclient.py +16 -7
- rucio/common/constants.py +14 -17
- rucio/common/utils.py +18 -2
- rucio/rse/rsemanager.py +2 -2
- rucio/vcsversion.py +3 -3
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/data/etc/rucio.cfg.template +0 -1
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/METADATA +1 -1
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/RECORD +41 -41
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/WHEEL +1 -1
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/data/etc/rse-accounts.cfg.template +0 -0
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/data/requirements.client.txt +0 -0
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/data/rucio_client/merge_rucio_configs.py +0 -0
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/scripts/rucio +0 -0
- {rucio_clients-37.3.0.data → rucio_clients-37.5.0.data}/scripts/rucio-admin +0 -0
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/licenses/LICENSE +0 -0
- {rucio_clients-37.3.0.dist-info → rucio_clients-37.5.0.dist-info}/top_level.txt +0 -0
rucio/cli/rule.py
CHANGED
|
@@ -27,7 +27,7 @@ def rule():
|
|
|
27
27
|
@click.option("--copies", type=int, help="Number of copies", required=True)
|
|
28
28
|
@click.option("--rses", "--rse-exp", help="Rule RSE expression", required=True)
|
|
29
29
|
@click.option("--weight", help="RSE Weight")
|
|
30
|
-
@click.option("--lifetime", type=
|
|
30
|
+
@click.option("--lifetime", type=int, help="Rule lifetime (in seconds)")
|
|
31
31
|
@click.option("--grouping", type=click.Choice(["DATASET", "ALL", "NONE"]), help="Rule grouping")
|
|
32
32
|
@click.option("--locked", default=False, type=bool, is_flag=False, help="Rule locking")
|
|
33
33
|
@click.option("--source-rses", help="RSE Expression for RSEs to be considered for source replicas")
|
rucio/client/accountclient.py
CHANGED
|
@@ -35,12 +35,24 @@ class AccountClient(BaseClient):
|
|
|
35
35
|
"""
|
|
36
36
|
Sends the request to create a new account.
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
account :
|
|
41
|
+
The name of the account.
|
|
42
|
+
type_ :
|
|
43
|
+
The account type.
|
|
44
|
+
email :
|
|
45
|
+
The Email address associated with the account.
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
Returns
|
|
48
|
+
-------
|
|
49
|
+
|
|
50
|
+
True if account was created successfully else False.
|
|
51
|
+
|
|
52
|
+
Raises
|
|
53
|
+
------
|
|
54
|
+
Duplicate
|
|
55
|
+
If account already exists.
|
|
44
56
|
"""
|
|
45
57
|
|
|
46
58
|
data = dumps({'type': type_, 'email': email})
|
|
@@ -55,11 +67,22 @@ class AccountClient(BaseClient):
|
|
|
55
67
|
|
|
56
68
|
def delete_account(self, account: str) -> bool:
|
|
57
69
|
"""
|
|
58
|
-
|
|
70
|
+
Send the request to disable an account.
|
|
71
|
+
|
|
72
|
+
Parameters
|
|
73
|
+
----------
|
|
74
|
+
account :
|
|
75
|
+
The name of the account.
|
|
59
76
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
77
|
+
Returns
|
|
78
|
+
-------
|
|
79
|
+
|
|
80
|
+
True if account was disabled successfully. False otherwise.
|
|
81
|
+
|
|
82
|
+
Raises
|
|
83
|
+
------
|
|
84
|
+
AccountNotFound
|
|
85
|
+
If account doesn't exist.
|
|
63
86
|
"""
|
|
64
87
|
|
|
65
88
|
path = '/'.join([self.ACCOUNTS_BASEURL, account])
|
|
@@ -74,11 +97,22 @@ class AccountClient(BaseClient):
|
|
|
74
97
|
|
|
75
98
|
def get_account(self, account: str) -> Optional[dict[str, Any]]:
|
|
76
99
|
"""
|
|
77
|
-
|
|
100
|
+
Send the request to get information about a given account.
|
|
101
|
+
|
|
102
|
+
Parameters
|
|
103
|
+
----------
|
|
104
|
+
account :
|
|
105
|
+
The name of the account.
|
|
78
106
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
|
|
110
|
+
A dictionary of attributes for the account. None if failure.
|
|
111
|
+
|
|
112
|
+
Raises
|
|
113
|
+
------
|
|
114
|
+
AccountNotFound
|
|
115
|
+
If account doesn't exist.
|
|
82
116
|
"""
|
|
83
117
|
|
|
84
118
|
path = '/'.join([self.ACCOUNTS_BASEURL, account])
|
|
@@ -92,11 +126,27 @@ class AccountClient(BaseClient):
|
|
|
92
126
|
raise exc_cls(exc_msg)
|
|
93
127
|
|
|
94
128
|
def update_account(self, account: str, key: str, value: Any) -> bool:
|
|
95
|
-
"""
|
|
129
|
+
"""
|
|
130
|
+
Update a property of an account.
|
|
131
|
+
|
|
132
|
+
Parameters
|
|
133
|
+
----------
|
|
134
|
+
account :
|
|
135
|
+
Name of the account.
|
|
136
|
+
key :
|
|
137
|
+
Account property like status.
|
|
138
|
+
value :
|
|
139
|
+
Property value.
|
|
140
|
+
|
|
141
|
+
Returns
|
|
142
|
+
-------
|
|
143
|
+
|
|
144
|
+
True if successful.
|
|
96
145
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
146
|
+
Raises
|
|
147
|
+
------
|
|
148
|
+
Exception
|
|
149
|
+
If update fails.
|
|
100
150
|
"""
|
|
101
151
|
data = dumps({key: value})
|
|
102
152
|
path = '/'.join([self.ACCOUNTS_BASEURL, account])
|
|
@@ -117,14 +167,26 @@ class AccountClient(BaseClient):
|
|
|
117
167
|
filters: Optional[dict[str, Any]] = None
|
|
118
168
|
) -> "Iterator[dict[str, Any]]":
|
|
119
169
|
"""
|
|
120
|
-
|
|
170
|
+
Send the request to list all rucio accounts.
|
|
121
171
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
172
|
+
Parameters
|
|
173
|
+
----------
|
|
174
|
+
account_type :
|
|
175
|
+
The account type.
|
|
176
|
+
identity :
|
|
177
|
+
The identity key name. For example x509 DN, or a username.
|
|
178
|
+
filters :
|
|
179
|
+
A dictionary key:account attribute to use for the filtering.
|
|
125
180
|
|
|
126
|
-
|
|
127
|
-
|
|
181
|
+
Returns
|
|
182
|
+
-------
|
|
183
|
+
|
|
184
|
+
An iterator of dictionaries containing account information.
|
|
185
|
+
|
|
186
|
+
Raises
|
|
187
|
+
------
|
|
188
|
+
AccountNotFound
|
|
189
|
+
If account doesn't exist.
|
|
128
190
|
"""
|
|
129
191
|
path = '/'.join([self.ACCOUNTS_BASEURL])
|
|
130
192
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -148,10 +210,17 @@ class AccountClient(BaseClient):
|
|
|
148
210
|
|
|
149
211
|
def whoami(self) -> Optional[dict[str, Any]]:
|
|
150
212
|
"""
|
|
151
|
-
Get information about account whose token is used
|
|
213
|
+
Get information about account whose token is used.
|
|
214
|
+
|
|
215
|
+
Returns
|
|
216
|
+
-------
|
|
152
217
|
|
|
153
|
-
|
|
154
|
-
|
|
218
|
+
A dictionary of attributes for the account. None if failure.
|
|
219
|
+
|
|
220
|
+
Raises
|
|
221
|
+
------
|
|
222
|
+
AccountNotFound
|
|
223
|
+
If account doesn't exist.
|
|
155
224
|
"""
|
|
156
225
|
return self.get_account('whoami')
|
|
157
226
|
|
|
@@ -165,14 +234,28 @@ class AccountClient(BaseClient):
|
|
|
165
234
|
password: Optional[str] = None
|
|
166
235
|
) -> bool:
|
|
167
236
|
"""
|
|
168
|
-
|
|
237
|
+
Add a membership association between identity and account.
|
|
238
|
+
|
|
239
|
+
Parameters
|
|
240
|
+
----------
|
|
241
|
+
account :
|
|
242
|
+
The account name.
|
|
243
|
+
identity :
|
|
244
|
+
The identity key name. For example x509 DN, or a username.
|
|
245
|
+
authtype :
|
|
246
|
+
The type of the authentication (x509, gss, userpass).
|
|
247
|
+
email :
|
|
248
|
+
The Email address associated with the identity.
|
|
249
|
+
default :
|
|
250
|
+
If True, the account should be used by default with the provided identity.
|
|
251
|
+
password :
|
|
252
|
+
Password if authtype is userpass.
|
|
253
|
+
|
|
254
|
+
Returns
|
|
255
|
+
-------
|
|
256
|
+
|
|
257
|
+
True if successful.
|
|
169
258
|
|
|
170
|
-
:param account: The account name.
|
|
171
|
-
:param identity: The identity key name. For example x509 DN, or a username.
|
|
172
|
-
:param authtype: The type of the authentication (x509, gss, userpass).
|
|
173
|
-
:param default: If True, the account should be used by default with the provided identity.
|
|
174
|
-
:param email: The Email address associated with the identity.
|
|
175
|
-
:param password: Password if authtype is userpass.
|
|
176
259
|
"""
|
|
177
260
|
|
|
178
261
|
data = dumps({'identity': identity, 'authtype': authtype, 'default': default, 'email': email, 'password': password})
|
|
@@ -197,9 +280,19 @@ class AccountClient(BaseClient):
|
|
|
197
280
|
"""
|
|
198
281
|
Delete an identity's membership association with an account.
|
|
199
282
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
283
|
+
Parameters
|
|
284
|
+
----------
|
|
285
|
+
account :
|
|
286
|
+
The account name.
|
|
287
|
+
identity :
|
|
288
|
+
The identity key name. For example x509 DN, or a username.
|
|
289
|
+
authtype :
|
|
290
|
+
The type of the authentication (x509, gss, userpass).
|
|
291
|
+
|
|
292
|
+
Returns
|
|
293
|
+
-------
|
|
294
|
+
|
|
295
|
+
True if successful.
|
|
203
296
|
"""
|
|
204
297
|
|
|
205
298
|
data = dumps({'identity': identity, 'authtype': authtype})
|
|
@@ -219,7 +312,10 @@ class AccountClient(BaseClient):
|
|
|
219
312
|
"""
|
|
220
313
|
List all identities on an account.
|
|
221
314
|
|
|
222
|
-
|
|
315
|
+
Parameters
|
|
316
|
+
----------
|
|
317
|
+
account :
|
|
318
|
+
The account name.
|
|
223
319
|
"""
|
|
224
320
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'identities'])
|
|
225
321
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -235,7 +331,11 @@ class AccountClient(BaseClient):
|
|
|
235
331
|
"""
|
|
236
332
|
List the associated rules of an account.
|
|
237
333
|
|
|
238
|
-
|
|
334
|
+
Parameters
|
|
335
|
+
----------
|
|
336
|
+
account :
|
|
337
|
+
The account name.
|
|
338
|
+
|
|
239
339
|
"""
|
|
240
340
|
|
|
241
341
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'rules'])
|
|
@@ -251,9 +351,15 @@ class AccountClient(BaseClient):
|
|
|
251
351
|
"""
|
|
252
352
|
Return the correct account limits for the given locality.
|
|
253
353
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
354
|
+
Parameters
|
|
355
|
+
----------
|
|
356
|
+
account :
|
|
357
|
+
The account name.
|
|
358
|
+
rse_expression :
|
|
359
|
+
Valid RSE expression.
|
|
360
|
+
locality :
|
|
361
|
+
The scope of the account limit. 'local' or 'global'.
|
|
362
|
+
|
|
257
363
|
"""
|
|
258
364
|
|
|
259
365
|
if locality == 'local':
|
|
@@ -268,8 +374,13 @@ class AccountClient(BaseClient):
|
|
|
268
374
|
"""
|
|
269
375
|
List the account limit for the specific RSE expression.
|
|
270
376
|
|
|
271
|
-
|
|
272
|
-
|
|
377
|
+
Parameters
|
|
378
|
+
----------
|
|
379
|
+
account :
|
|
380
|
+
The account name.
|
|
381
|
+
rse_expression :
|
|
382
|
+
The rse expression.
|
|
383
|
+
|
|
273
384
|
"""
|
|
274
385
|
|
|
275
386
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'limits', 'global', quote_plus(rse_expression)])
|
|
@@ -284,7 +395,10 @@ class AccountClient(BaseClient):
|
|
|
284
395
|
"""
|
|
285
396
|
List all RSE expression limits of this account.
|
|
286
397
|
|
|
287
|
-
|
|
398
|
+
Parameters
|
|
399
|
+
----------
|
|
400
|
+
account :
|
|
401
|
+
The account name.
|
|
288
402
|
"""
|
|
289
403
|
|
|
290
404
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'limits', 'global'])
|
|
@@ -299,7 +413,10 @@ class AccountClient(BaseClient):
|
|
|
299
413
|
"""
|
|
300
414
|
List the account rse limits of this account.
|
|
301
415
|
|
|
302
|
-
|
|
416
|
+
Parameters
|
|
417
|
+
----------
|
|
418
|
+
account :
|
|
419
|
+
The account name.
|
|
303
420
|
"""
|
|
304
421
|
|
|
305
422
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'limits', 'local'])
|
|
@@ -314,8 +431,12 @@ class AccountClient(BaseClient):
|
|
|
314
431
|
"""
|
|
315
432
|
List the account rse limits of this account for the specific rse.
|
|
316
433
|
|
|
317
|
-
|
|
318
|
-
|
|
434
|
+
Parameters
|
|
435
|
+
----------
|
|
436
|
+
account :
|
|
437
|
+
The account name.
|
|
438
|
+
rse :
|
|
439
|
+
The rse name.
|
|
319
440
|
"""
|
|
320
441
|
|
|
321
442
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'limits', 'local', rse])
|
|
@@ -330,8 +451,12 @@ class AccountClient(BaseClient):
|
|
|
330
451
|
"""
|
|
331
452
|
List the account usage for one or all rses of this account.
|
|
332
453
|
|
|
333
|
-
|
|
334
|
-
|
|
454
|
+
Parameters
|
|
455
|
+
----------
|
|
456
|
+
account :
|
|
457
|
+
The account name.
|
|
458
|
+
rse :
|
|
459
|
+
The rse name.
|
|
335
460
|
"""
|
|
336
461
|
if rse:
|
|
337
462
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'usage', 'local', rse])
|
|
@@ -349,8 +474,12 @@ class AccountClient(BaseClient):
|
|
|
349
474
|
"""
|
|
350
475
|
List the account usage for one or all RSE expressions of this account.
|
|
351
476
|
|
|
352
|
-
|
|
353
|
-
|
|
477
|
+
Parameters
|
|
478
|
+
----------
|
|
479
|
+
account :
|
|
480
|
+
The account name.
|
|
481
|
+
rse_expression :
|
|
482
|
+
The rse expression.
|
|
354
483
|
"""
|
|
355
484
|
if rse_expression:
|
|
356
485
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'usage', 'global', quote_plus(rse_expression)])
|
|
@@ -368,8 +497,12 @@ class AccountClient(BaseClient):
|
|
|
368
497
|
"""
|
|
369
498
|
List the account usage history of this account on rse.
|
|
370
499
|
|
|
371
|
-
|
|
372
|
-
|
|
500
|
+
Parameters
|
|
501
|
+
----------
|
|
502
|
+
account :
|
|
503
|
+
The account name.
|
|
504
|
+
rse :
|
|
505
|
+
The rse name.
|
|
373
506
|
"""
|
|
374
507
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'usage/history', rse])
|
|
375
508
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -384,7 +517,10 @@ class AccountClient(BaseClient):
|
|
|
384
517
|
"""
|
|
385
518
|
List the attributes for an account.
|
|
386
519
|
|
|
387
|
-
|
|
520
|
+
Parameters
|
|
521
|
+
----------
|
|
522
|
+
account :
|
|
523
|
+
The account name.
|
|
388
524
|
"""
|
|
389
525
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'attr/'])
|
|
390
526
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -397,11 +533,16 @@ class AccountClient(BaseClient):
|
|
|
397
533
|
|
|
398
534
|
def add_account_attribute(self, account: str, key: str, value: Any) -> bool:
|
|
399
535
|
"""
|
|
400
|
-
|
|
536
|
+
Add an attribute to an account.
|
|
401
537
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
538
|
+
Parameters
|
|
539
|
+
----------
|
|
540
|
+
account :
|
|
541
|
+
The account name.
|
|
542
|
+
key :
|
|
543
|
+
The attribute key.
|
|
544
|
+
value :
|
|
545
|
+
The attribute value.
|
|
405
546
|
"""
|
|
406
547
|
|
|
407
548
|
data = dumps({'key': key, 'value': value})
|
|
@@ -418,8 +559,12 @@ class AccountClient(BaseClient):
|
|
|
418
559
|
"""
|
|
419
560
|
Delete an attribute for an account.
|
|
420
561
|
|
|
421
|
-
|
|
422
|
-
|
|
562
|
+
Parameters
|
|
563
|
+
----------
|
|
564
|
+
account :
|
|
565
|
+
The account name.
|
|
566
|
+
key :
|
|
567
|
+
The attribute key.
|
|
423
568
|
"""
|
|
424
569
|
|
|
425
570
|
path = '/'.join([self.ACCOUNTS_BASEURL, account, 'attr', key])
|
|
@@ -38,11 +38,21 @@ class AccountLimitClient(BaseClient):
|
|
|
38
38
|
"""
|
|
39
39
|
Sets an account limit for a given limit scope.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
:
|
|
41
|
+
Parameters
|
|
42
|
+
----------
|
|
43
|
+
account :
|
|
44
|
+
The name of the account.
|
|
45
|
+
rse :
|
|
46
|
+
The rse name.
|
|
47
|
+
bytes_ :
|
|
48
|
+
The limit in bytes.
|
|
49
|
+
locality :
|
|
50
|
+
The scope of the account limit.
|
|
51
|
+
|
|
52
|
+
Returns
|
|
53
|
+
-------
|
|
54
|
+
|
|
55
|
+
True if quota was created successfully, False otherwise.
|
|
46
56
|
"""
|
|
47
57
|
|
|
48
58
|
if locality == 'local':
|
|
@@ -62,10 +72,19 @@ class AccountLimitClient(BaseClient):
|
|
|
62
72
|
"""
|
|
63
73
|
Deletes an account limit for a given limit scope.
|
|
64
74
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
account :
|
|
78
|
+
The name of the account.
|
|
79
|
+
rse :
|
|
80
|
+
The rse name.
|
|
81
|
+
locality :
|
|
82
|
+
The scope of the account limit.
|
|
83
|
+
|
|
84
|
+
Returns
|
|
85
|
+
-------
|
|
86
|
+
|
|
87
|
+
True if quota was deleted successfully, False otherwise.
|
|
69
88
|
"""
|
|
70
89
|
|
|
71
90
|
if locality == 'local':
|
|
@@ -85,10 +104,19 @@ class AccountLimitClient(BaseClient):
|
|
|
85
104
|
"""
|
|
86
105
|
Sends the request to set an account limit for an account.
|
|
87
106
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
Parameters
|
|
108
|
+
----------
|
|
109
|
+
account :
|
|
110
|
+
The name of the account.
|
|
111
|
+
rse :
|
|
112
|
+
The rse name.
|
|
113
|
+
bytes_ :
|
|
114
|
+
The limit in bytes.
|
|
115
|
+
|
|
116
|
+
Returns
|
|
117
|
+
-------
|
|
118
|
+
|
|
119
|
+
True if quota was created successfully, False otherwise.
|
|
92
120
|
"""
|
|
93
121
|
|
|
94
122
|
data = dumps({'bytes': bytes_})
|
|
@@ -111,11 +139,22 @@ class AccountLimitClient(BaseClient):
|
|
|
111
139
|
"""
|
|
112
140
|
Sends the request to remove an account limit.
|
|
113
141
|
|
|
114
|
-
|
|
115
|
-
|
|
142
|
+
Parameters
|
|
143
|
+
----------
|
|
144
|
+
account :
|
|
145
|
+
The name of the account.
|
|
146
|
+
rse :
|
|
147
|
+
The rse name.
|
|
148
|
+
|
|
149
|
+
Returns
|
|
150
|
+
-------
|
|
116
151
|
|
|
117
|
-
|
|
118
|
-
|
|
152
|
+
True if quota was removed successfully, False otherwise.
|
|
153
|
+
|
|
154
|
+
Raises
|
|
155
|
+
------
|
|
156
|
+
AccountNotFound
|
|
157
|
+
If account doesn't exist.
|
|
119
158
|
"""
|
|
120
159
|
|
|
121
160
|
path = '/'.join([self.ACCOUNTLIMIT_BASEURL, 'local', account, rse])
|
|
@@ -138,10 +177,19 @@ class AccountLimitClient(BaseClient):
|
|
|
138
177
|
"""
|
|
139
178
|
Sends the request to set a global account limit for an account.
|
|
140
179
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
180
|
+
Parameters
|
|
181
|
+
----------
|
|
182
|
+
account :
|
|
183
|
+
The name of the account.
|
|
184
|
+
rse_expression :
|
|
185
|
+
The rse expression.
|
|
186
|
+
bytes_ :
|
|
187
|
+
The limit in bytes.
|
|
188
|
+
|
|
189
|
+
Returns
|
|
190
|
+
-------
|
|
191
|
+
|
|
192
|
+
True if quota was created successfully, False otherwise.
|
|
145
193
|
"""
|
|
146
194
|
|
|
147
195
|
data = dumps({'bytes': bytes_})
|
|
@@ -164,11 +212,22 @@ class AccountLimitClient(BaseClient):
|
|
|
164
212
|
"""
|
|
165
213
|
Sends the request to remove a global account limit.
|
|
166
214
|
|
|
167
|
-
|
|
168
|
-
|
|
215
|
+
Parameters
|
|
216
|
+
----------
|
|
217
|
+
account :
|
|
218
|
+
The name of the account.
|
|
219
|
+
rse_expression :
|
|
220
|
+
The rse expression.
|
|
221
|
+
|
|
222
|
+
Returns
|
|
223
|
+
-------
|
|
224
|
+
|
|
225
|
+
True if quota was removed successfully, False otherwise.
|
|
169
226
|
|
|
170
|
-
|
|
171
|
-
|
|
227
|
+
Raises
|
|
228
|
+
------
|
|
229
|
+
AccountNotFound
|
|
230
|
+
If account doesn't exist.
|
|
172
231
|
"""
|
|
173
232
|
|
|
174
233
|
path = '/'.join([self.ACCOUNTLIMIT_BASEURL, 'global', account, quote_plus(rse_expression)])
|