rucio-clients 37.4.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/client/downloadclient.py +1 -1
- rucio/client/requestclient.py +6 -5
- 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.4.0.dist-info → rucio_clients-37.5.0.dist-info}/METADATA +1 -1
- {rucio_clients-37.4.0.dist-info → rucio_clients-37.5.0.dist-info}/RECORD +19 -19
- {rucio_clients-37.4.0.dist-info → rucio_clients-37.5.0.dist-info}/WHEEL +1 -1
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/etc/rse-accounts.cfg.template +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/etc/rucio.cfg.template +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/requirements.client.txt +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/rucio_client/merge_rucio_configs.py +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/scripts/rucio +0 -0
- {rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/scripts/rucio-admin +0 -0
- {rucio_clients-37.4.0.dist-info → rucio_clients-37.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
- {rucio_clients-37.4.0.dist-info → rucio_clients-37.5.0.dist-info}/licenses/LICENSE +0 -0
- {rucio_clients-37.4.0.dist-info → rucio_clients-37.5.0.dist-info}/top_level.txt +0 -0
rucio/client/downloadclient.py
CHANGED
rucio/client/requestclient.py
CHANGED
|
@@ -19,8 +19,8 @@ from urllib.parse import quote_plus
|
|
|
19
19
|
from requests.status_codes import codes
|
|
20
20
|
|
|
21
21
|
from rucio.client.baseclient import BaseClient, choice
|
|
22
|
+
from rucio.common.constants import TransferLimitDirection
|
|
22
23
|
from rucio.common.utils import build_url
|
|
23
|
-
from rucio.db.sqla.constants import TransferLimitDirection
|
|
24
24
|
|
|
25
25
|
if TYPE_CHECKING:
|
|
26
26
|
from collections.abc import Iterator, Sequence
|
|
@@ -192,14 +192,15 @@ class RequestClient(BaseClient):
|
|
|
192
192
|
:param strategy: defines how to handle datasets: `fifo` (each file released separately) or `grouped_fifo` (wait for the entire dataset to fit)
|
|
193
193
|
:param transfers: Current number of active transfers
|
|
194
194
|
:param waitings: Current number of waiting transfers
|
|
195
|
-
|
|
195
|
+
|
|
196
196
|
:returns: True if the transfer limit was deleted
|
|
197
197
|
"""
|
|
198
198
|
path = '/'.join([self.REQUEST_BASEURL, 'transfer_limits'])
|
|
199
199
|
url = build_url(choice(self.list_hosts), path=path)
|
|
200
|
-
data = dumps({'rse_expression': rse_expression, 'activity': activity,
|
|
201
|
-
|
|
202
|
-
|
|
200
|
+
data = dumps({'rse_expression': rse_expression, 'activity': activity,
|
|
201
|
+
'direction': direction.value, 'max_transfers': max_transfers,
|
|
202
|
+
'volume': volume, 'deadline': deadline, 'strategy': strategy,
|
|
203
|
+
'transfers': transfers, 'waitings': waitings})
|
|
203
204
|
r = self._send_request(url, type_='PUT', data=data)
|
|
204
205
|
|
|
205
206
|
if r.status_code == codes.created:
|
rucio/common/constants.py
CHANGED
|
@@ -16,8 +16,6 @@ import enum
|
|
|
16
16
|
from collections import namedtuple
|
|
17
17
|
from typing import Literal, get_args
|
|
18
18
|
|
|
19
|
-
from rucio.common.config import config_get_bool
|
|
20
|
-
|
|
21
19
|
"""
|
|
22
20
|
Constants.
|
|
23
21
|
|
|
@@ -32,21 +30,16 @@ RESERVED_KEYS = ['scope', 'name', 'account', 'did_type', 'is_open', 'monotonic',
|
|
|
32
30
|
KEY_TYPES = ['ALL', 'COLLECTION', 'FILE', 'DERIVED']
|
|
33
31
|
# all(container, dataset, file), collection(dataset or container), file, derived(compute from file for collection)
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
|
|
46
|
-
SCHEME_MAP['srm'].append('https')
|
|
47
|
-
SCHEME_MAP['https'].append('srm')
|
|
48
|
-
SCHEME_MAP['srm'].append('davs')
|
|
49
|
-
SCHEME_MAP['davs'].append('srm')
|
|
33
|
+
BASE_SCHEME_MAP = {'srm': ['srm', 'gsiftp'],
|
|
34
|
+
'gsiftp': ['srm', 'gsiftp'],
|
|
35
|
+
'https': ['https', 'davs', 'srm+https', 'cs3s'],
|
|
36
|
+
'davs': ['https', 'davs', 'srm+https', 'cs3s'],
|
|
37
|
+
'srm+https': ['https', 'davs', 'srm+https', 'cs3s'],
|
|
38
|
+
'cs3s': ['https', 'davs', 'srm+https', 'cs3s'],
|
|
39
|
+
'root': ['root'],
|
|
40
|
+
'scp': ['scp'],
|
|
41
|
+
'rsync': ['rsync'],
|
|
42
|
+
'rclone': ['rclone']}
|
|
50
43
|
|
|
51
44
|
SORTING_ALGORITHMS_LITERAL = Literal['geoip', 'custom_table', 'random']
|
|
52
45
|
SORTING_ALGORITHMS = list(get_args(SORTING_ALGORITHMS_LITERAL))
|
|
@@ -76,6 +69,10 @@ FTS_JOB_TYPE = namedtuple('FTS_JOB_TYPE', ['MULTIPLE_REPLICA', 'MULTI_HOP', 'SES
|
|
|
76
69
|
|
|
77
70
|
MAX_MESSAGE_LENGTH = 4000
|
|
78
71
|
|
|
72
|
+
@enum.unique
|
|
73
|
+
class TransferLimitDirection(enum.Enum):
|
|
74
|
+
SOURCE = 'S'
|
|
75
|
+
DESTINATION = 'D'
|
|
79
76
|
|
|
80
77
|
@enum.unique
|
|
81
78
|
class SuspiciousAvailability(enum.Enum):
|
rucio/common/utils.py
CHANGED
|
@@ -32,7 +32,7 @@ import threading
|
|
|
32
32
|
import time
|
|
33
33
|
from collections import OrderedDict
|
|
34
34
|
from enum import Enum
|
|
35
|
-
from functools import wraps
|
|
35
|
+
from functools import cache, wraps
|
|
36
36
|
from io import StringIO
|
|
37
37
|
from itertools import zip_longest
|
|
38
38
|
from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
|
|
@@ -42,7 +42,8 @@ from xml.etree import ElementTree
|
|
|
42
42
|
|
|
43
43
|
import requests
|
|
44
44
|
|
|
45
|
-
from rucio.common.config import config_get
|
|
45
|
+
from rucio.common.config import config_get, config_get_bool
|
|
46
|
+
from rucio.common.constants import BASE_SCHEME_MAP
|
|
46
47
|
from rucio.common.exception import DIDFilterSyntaxError, DuplicateCriteriaInDIDFilter, InputValidationError, InvalidType, MetalinkJsonParsingError, MissingModuleException, RucioException
|
|
47
48
|
from rucio.common.extra import import_extras
|
|
48
49
|
from rucio.common.plugins import PolicyPackageAlgorithms
|
|
@@ -1690,3 +1691,18 @@ def is_method_overridden(obj, base_cls, method_name):
|
|
|
1690
1691
|
if getattr(type(obj), method_name, None) is getattr(base_cls, method_name, None): # Caring for bound/unbound cases
|
|
1691
1692
|
return False
|
|
1692
1693
|
return True
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
@cache
|
|
1697
|
+
def get_transfer_schemas() -> dict[str, list[str]]:
|
|
1698
|
+
"""
|
|
1699
|
+
Extend base schema map based on SRM HTTPS compatibility.
|
|
1700
|
+
"""
|
|
1701
|
+
scheme_map = BASE_SCHEME_MAP
|
|
1702
|
+
if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
|
|
1703
|
+
scheme_map['srm'].append('https')
|
|
1704
|
+
scheme_map['https'].append('srm')
|
|
1705
|
+
scheme_map['srm'].append('davs')
|
|
1706
|
+
scheme_map['davs'].append('srm')
|
|
1707
|
+
|
|
1708
|
+
return scheme_map
|
rucio/rse/rsemanager.py
CHANGED
|
@@ -24,7 +24,7 @@ from rucio.common.checksum import GLOBALLY_SUPPORTED_CHECKSUMS
|
|
|
24
24
|
from rucio.common.config import config_get_int
|
|
25
25
|
from rucio.common.constraints import STRING_TYPES
|
|
26
26
|
from rucio.common.logging import formatted_logger
|
|
27
|
-
from rucio.common.utils import make_valid_did
|
|
27
|
+
from rucio.common.utils import get_transfer_schemas, make_valid_did
|
|
28
28
|
|
|
29
29
|
if TYPE_CHECKING:
|
|
30
30
|
from collections.abc import Callable
|
|
@@ -875,7 +875,7 @@ def __check_compatible_scheme(
|
|
|
875
875
|
|
|
876
876
|
if dest_scheme == src_scheme:
|
|
877
877
|
return True
|
|
878
|
-
if src_scheme in
|
|
878
|
+
if src_scheme in get_transfer_schemas().get(dest_scheme, []):
|
|
879
879
|
return True
|
|
880
880
|
|
|
881
881
|
return False
|
rucio/vcsversion.py
CHANGED
|
@@ -4,8 +4,8 @@ This file is automatically generated; Do not edit it. :)
|
|
|
4
4
|
'''
|
|
5
5
|
VERSION_INFO = {
|
|
6
6
|
'final': True,
|
|
7
|
-
'version': '37.
|
|
7
|
+
'version': '37.5.0',
|
|
8
8
|
'branch_nick': 'release-37',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': '092cfe864848019a987a3a167120cf5cf7df2f61',
|
|
10
|
+
'revno': 13761
|
|
11
11
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
rucio/__init__.py,sha256=Y7cPPlHVQPFyN8bSPFC0W3WViEdONr5g_qwBub5rufE,660
|
|
2
2
|
rucio/alembicrevision.py,sha256=lNSQZYA4U_fsMW8l0dHpiV243XZhioqvVo9ihmpuQBo,690
|
|
3
|
-
rucio/vcsversion.py,sha256=
|
|
3
|
+
rucio/vcsversion.py,sha256=X_dJuTI_9tpj86embCCJV4q7RHDOD7LUcmGHopxwYWU,244
|
|
4
4
|
rucio/version.py,sha256=IwsNb1QQk0D092QQbR2K9wBPF2Akny1RGs-ZZziUohE,1519
|
|
5
5
|
rucio/cli/__init__.py,sha256=GIkHmxgE3xdvWSf-7ZnvVaJmbs7NokaSjbFzsrXOG9o,662
|
|
6
6
|
rucio/cli/account.py,sha256=7YWLfmiplhCjaaHNSYBzd7d_4yYzxUSRrsT0xGcNr2w,9452
|
|
@@ -28,7 +28,7 @@ rucio/client/configclient.py,sha256=pbp_yEem7g8JTVVOMY-ehMyLh6T3Rxf1AxCluLE-JE8,
|
|
|
28
28
|
rucio/client/credentialclient.py,sha256=q4i_t-dIiojRmiY70iuJsAgnPqaZVwkJLbThxoc8_9k,2214
|
|
29
29
|
rucio/client/didclient.py,sha256=AbS_RFD1_jIcr_jm5H6XYn4PVzsq288C79K1-hWa5NQ,34619
|
|
30
30
|
rucio/client/diracclient.py,sha256=hgF_eF5_NfY0UTedrXMtmuwT4rVgCf3-bdsv7VhObDA,2467
|
|
31
|
-
rucio/client/downloadclient.py,sha256=
|
|
31
|
+
rucio/client/downloadclient.py,sha256=lPLU3UN8q1f6YfRqyhoaYzAsEXGjNC71lcsSgKw8kxA,91637
|
|
32
32
|
rucio/client/exportclient.py,sha256=vxH12KqLjaOQxQRkA95oZnJWjPJgEMBtvmo0NReurug,1713
|
|
33
33
|
rucio/client/fileclient.py,sha256=akpgLwhbRTWNriyI8yGWTGgXbTu-Ka5jmwwVdJBwmVw,1756
|
|
34
34
|
rucio/client/importclient.py,sha256=KeEWZhjrsAR5Km_UXwwH7hzgEo9ACJaJXN6de87txe4,1560
|
|
@@ -37,7 +37,7 @@ rucio/client/lockclient.py,sha256=LNHjdNRi5ST8KqVBR9SAiaygPF5zmRR7hendaBF21uE,44
|
|
|
37
37
|
rucio/client/metaconventionsclient.py,sha256=tYvqXtcByiINcmZe0nT5Id2VuyJ2EDDUP2vfOPO6_yY,5655
|
|
38
38
|
rucio/client/pingclient.py,sha256=DU3HXbvEYsbo-3V1PypOXcMMfmYeiUHBAf9mdYM7LZM,1418
|
|
39
39
|
rucio/client/replicaclient.py,sha256=C7t-nw1Ou0W-Ni9PUpdzTDLtIbz0cIgANX387KORUB8,20591
|
|
40
|
-
rucio/client/requestclient.py,sha256=
|
|
40
|
+
rucio/client/requestclient.py,sha256=Vr1lAmAbfX2iGzj_aKRmRFPBpMXbVxIw_0LVAZ5Xtq0,8574
|
|
41
41
|
rucio/client/richclient.py,sha256=kP6cHQsvCtKEl1c2fycqpDjfLrMAzaMxuZA_kWddm08,10111
|
|
42
42
|
rucio/client/rseclient.py,sha256=4R-WcCROjPRfWjcWuFM7itf4vmRRk0qvOa-itnTlZ8w,31858
|
|
43
43
|
rucio/client/ruleclient.py,sha256=tlYRFMKVwjCuzketqg2F4XoGydbhNAjkOnm1BGUZEVg,13639
|
|
@@ -51,7 +51,7 @@ rucio/common/cache.py,sha256=8jfk6lB_KfwV_ZQBRngTYLwJ4zpDAg1Q70o5LRGR4AU,3420
|
|
|
51
51
|
rucio/common/checksum.py,sha256=nSqjY8TdDGohpAzcEM2fjv4FPdOKmKr_3U27HalKkoY,5254
|
|
52
52
|
rucio/common/client.py,sha256=qhkg0JETEQR0abTQ1m0iYE5wOzfEm-s1AABFgbxqlSA,3957
|
|
53
53
|
rucio/common/config.py,sha256=VXMnocr6iwSgoSXAFl9r4EmPwMKxQ7DetmT1xzgTfkw,23629
|
|
54
|
-
rucio/common/constants.py,sha256=
|
|
54
|
+
rucio/common/constants.py,sha256=EvShKu_wuKS1cc3ijeTs14nX-YqHPa480b90wdwLkY8,7582
|
|
55
55
|
rucio/common/constraints.py,sha256=MrdiAwKyoaZGfspUWX_53XS2790nXMSMg1JYmTO_ciQ,726
|
|
56
56
|
rucio/common/didtype.py,sha256=dYYLIxcOjIHaDBAYSoCpmhZ-O2GTKxIi66jHiXtuVRY,8010
|
|
57
57
|
rucio/common/exception.py,sha256=U4Jnpv8QTkNmMG2scV4bYNzOqLsMnfrmiGeSH-P_B_g,34555
|
|
@@ -64,12 +64,12 @@ rucio/common/stomp_utils.py,sha256=3GTiRTJ0roe5OX_wgkVwOJYAIhGgYbhiROHc2M8LQT8,5
|
|
|
64
64
|
rucio/common/stopwatch.py,sha256=_9zxoLjr8A0wUDJsljK4vZNDCI-dIOgpcxXiCNVJcHU,1641
|
|
65
65
|
rucio/common/test_rucio_server.py,sha256=2teFpN5Pthp-zQt1_aErOURDTgOhFP9GKdEr1NMmc4o,5085
|
|
66
66
|
rucio/common/types.py,sha256=THfYyGKy7KUEvkBgAXSkdI2SxZBlsSr6E3sF9OkEms4,11764
|
|
67
|
-
rucio/common/utils.py,sha256=
|
|
67
|
+
rucio/common/utils.py,sha256=wiQRieXYLWzpZo5T9s3omMTsP6N1JfJAoig7MwrgmcQ,62391
|
|
68
68
|
rucio/common/schema/__init__.py,sha256=2nmfxV4ps9J030fUoSiJs4OQCxiEk77rPrNeGk9xgZs,7800
|
|
69
69
|
rucio/common/schema/generic.py,sha256=NkjdxVutlRm-7AvgQf9bTW0Gb0AomuiV1iwfXOPNmIQ,15811
|
|
70
70
|
rucio/common/schema/generic_multi_vo.py,sha256=Owk9JMxycAcayTDnx-9kiXZSRBHC_jPaq79jjE1FiB0,15035
|
|
71
71
|
rucio/rse/__init__.py,sha256=imxCKNQN59aPqPhMd2yKg7mHBMFL00OkQT1Gqb8tF54,3290
|
|
72
|
-
rucio/rse/rsemanager.py,sha256=
|
|
72
|
+
rucio/rse/rsemanager.py,sha256=6jIkD9XEpMKnlltcALutX6Uox5Kv1wcLnW_-Qlj0GKM,41061
|
|
73
73
|
rucio/rse/translation.py,sha256=qfqc4jEB1Rq6yj3xjTz3ivxT5Hg2716M8ldO1BleSDg,9013
|
|
74
74
|
rucio/rse/protocols/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
|
|
75
75
|
rucio/rse/protocols/bittorrent.py,sha256=ZBm_n7vU_NGXQaaZJWKQ-KUp6nYOMdbLqTvGuKN_LKk,7475
|
|
@@ -89,16 +89,16 @@ rucio/rse/protocols/ssh.py,sha256=pHPAQx2bPNkMrtqbCqDfq7OXoy7XphQ-i2Stzdvnf1k,17
|
|
|
89
89
|
rucio/rse/protocols/storm.py,sha256=Z4fzklxG-x70A0Lugg1jE1RicwCSeF27iz0MXO-4to0,7864
|
|
90
90
|
rucio/rse/protocols/webdav.py,sha256=nNMWEVqO1nYxJWrCVBoWLhG-XG2-ee5CL5H_MNRwkg0,24513
|
|
91
91
|
rucio/rse/protocols/xrootd.py,sha256=oJHueVR44dcW5nkg8jCbr9PetV9UIti3C0tka_m7yIk,12604
|
|
92
|
-
rucio_clients-37.
|
|
93
|
-
rucio_clients-37.
|
|
94
|
-
rucio_clients-37.
|
|
95
|
-
rucio_clients-37.
|
|
96
|
-
rucio_clients-37.
|
|
97
|
-
rucio_clients-37.
|
|
98
|
-
rucio_clients-37.
|
|
99
|
-
rucio_clients-37.
|
|
100
|
-
rucio_clients-37.
|
|
101
|
-
rucio_clients-37.
|
|
102
|
-
rucio_clients-37.
|
|
103
|
-
rucio_clients-37.
|
|
104
|
-
rucio_clients-37.
|
|
92
|
+
rucio_clients-37.5.0.data/data/requirements.client.txt,sha256=uGqQvHApEbAsTgkHDqGFTmPmKtd2vL7o4rv4LO8ikjM,1790
|
|
93
|
+
rucio_clients-37.5.0.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
|
|
94
|
+
rucio_clients-37.5.0.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
|
|
95
|
+
rucio_clients-37.5.0.data/data/etc/rucio.cfg.template,sha256=wBFnaJrJmaYw3B6cZbsVzU-16pdyNJ8L86GZNJMp1Ng,8005
|
|
96
|
+
rucio_clients-37.5.0.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
|
|
97
|
+
rucio_clients-37.5.0.data/scripts/rucio,sha256=xQRL_0mwut48KxOgWZexsSx9jfnaZHqSTAo7OnCHAgA,5081
|
|
98
|
+
rucio_clients-37.5.0.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
|
|
99
|
+
rucio_clients-37.5.0.dist-info/licenses/AUTHORS.rst,sha256=c4MEJjLcFZ5euNtPA7jGFL26javbFKpWTvxBoIs_l6w,4726
|
|
100
|
+
rucio_clients-37.5.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
101
|
+
rucio_clients-37.5.0.dist-info/METADATA,sha256=u-qmrxK6EQQtlLC4RWZ3bUBwKIrdUBoxcGuTejjta24,1747
|
|
102
|
+
rucio_clients-37.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
103
|
+
rucio_clients-37.5.0.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
|
|
104
|
+
rucio_clients-37.5.0.dist-info/RECORD,,
|
|
File without changes
|
{rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/etc/rucio.cfg.atlas.client.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rucio_clients-37.4.0.data → rucio_clients-37.5.0.data}/data/rucio_client/merge_rucio_configs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|