rucio-clients 37.7.0__py3-none-any.whl → 38.0.0rc1__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/alembicrevision.py +1 -1
- rucio/cli/bin_legacy/rucio.py +51 -107
- rucio/cli/bin_legacy/rucio_admin.py +26 -26
- rucio/cli/command.py +1 -0
- rucio/cli/did.py +2 -2
- rucio/cli/opendata.py +132 -0
- rucio/cli/replica.py +15 -5
- rucio/cli/rule.py +7 -2
- rucio/cli/scope.py +3 -2
- rucio/cli/utils.py +28 -4
- rucio/client/baseclient.py +9 -1
- rucio/client/client.py +2 -0
- rucio/client/diracclient.py +73 -12
- rucio/client/opendataclient.py +249 -0
- rucio/client/subscriptionclient.py +30 -0
- rucio/client/uploadclient.py +10 -13
- rucio/common/constants.py +4 -1
- rucio/common/exception.py +55 -0
- rucio/common/plugins.py +45 -8
- rucio/common/schema/generic.py +5 -3
- rucio/common/schema/generic_multi_vo.py +4 -2
- rucio/common/types.py +8 -7
- rucio/common/utils.py +176 -11
- rucio/rse/protocols/protocol.py +9 -5
- rucio/rse/translation.py +17 -6
- rucio/vcsversion.py +4 -4
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/etc/rucio.cfg.template +2 -2
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/requirements.client.txt +1 -1
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/scripts/rucio +2 -1
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/METADATA +2 -2
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/RECORD +39 -38
- rucio/client/fileclient.py +0 -57
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/etc/rse-accounts.cfg.template +0 -0
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/rucio_client/merge_rucio_configs.py +0 -0
- {rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/scripts/rucio-admin +0 -0
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/WHEEL +0 -0
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/licenses/AUTHORS.rst +0 -0
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/licenses/LICENSE +0 -0
- {rucio_clients-37.7.0.dist-info → rucio_clients-38.0.0rc1.dist-info}/top_level.txt +0 -0
rucio/rse/protocols/protocol.py
CHANGED
|
@@ -69,11 +69,15 @@ class RSEProtocol(ABC):
|
|
|
69
69
|
self.rse = rse_settings
|
|
70
70
|
self.logger = logger
|
|
71
71
|
if self.rse['deterministic']:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
#
|
|
76
|
-
|
|
72
|
+
if getattr(rsemanager, 'SERVER_MODE', None):
|
|
73
|
+
vo = get_rse_vo(self.rse['id'])
|
|
74
|
+
if getattr(rsemanager, 'CLIENT_MODE', None):
|
|
75
|
+
# assume client has only one VO policy package configured
|
|
76
|
+
vo = ''
|
|
77
|
+
if not RSEDeterministicTranslation.supports(self.rse.get('lfn2pfn_algorithm')):
|
|
78
|
+
# Remote server has an algorithm we don't understand; always make the server do the lookup.
|
|
79
|
+
setattr(self, 'lfns2pfns', self.__lfns2pfns_client)
|
|
80
|
+
self.translator = RSEDeterministicTranslation(self.rse['rse'], rse_settings, self.attributes, vo)
|
|
77
81
|
else:
|
|
78
82
|
if getattr(rsemanager, 'CLIENT_MODE', None):
|
|
79
83
|
setattr(self, 'lfns2pfns', self.__lfns2pfns_client)
|
rucio/rse/translation.py
CHANGED
|
@@ -50,7 +50,7 @@ class RSEDeterministicScopeTranslation(PolicyPackageAlgorithms):
|
|
|
50
50
|
algorithm_name = "def"
|
|
51
51
|
logger.debug("PFN2LFN: Falling back to %s algorithm.", 'default' if algorithm_name == 'def' else algorithm_name)
|
|
52
52
|
|
|
53
|
-
self.parser = self.get_parser(algorithm_name)
|
|
53
|
+
self.parser = self.get_parser(algorithm_name, vo)
|
|
54
54
|
|
|
55
55
|
@classmethod
|
|
56
56
|
def _module_init_(cls) -> None:
|
|
@@ -60,8 +60,14 @@ class RSEDeterministicScopeTranslation(PolicyPackageAlgorithms):
|
|
|
60
60
|
cls.register(cls._default, "def")
|
|
61
61
|
|
|
62
62
|
@classmethod
|
|
63
|
-
def get_parser(cls, algorithm_name: str) -> 'Callable[..., Any]':
|
|
64
|
-
|
|
63
|
+
def get_parser(cls, algorithm_name: str, vo: str) -> 'Callable[..., Any]':
|
|
64
|
+
result = None
|
|
65
|
+
if algorithm_name == vo:
|
|
66
|
+
# default algorithm for VO
|
|
67
|
+
result = super()._get_default_algorithm(RSEDeterministicScopeTranslation._algorithm_type, vo)
|
|
68
|
+
if result is None:
|
|
69
|
+
result = super()._get_one_algorithm(cls._algorithm_type, algorithm_name)
|
|
70
|
+
return result
|
|
65
71
|
|
|
66
72
|
@classmethod
|
|
67
73
|
def register(
|
|
@@ -111,7 +117,8 @@ class RSEDeterministicTranslation(PolicyPackageAlgorithms):
|
|
|
111
117
|
self,
|
|
112
118
|
rse: Optional[str] = None,
|
|
113
119
|
rse_attributes: Optional["RSESettingsDict"] = None,
|
|
114
|
-
protocol_attributes: Optional[dict[str, Any]] = None
|
|
120
|
+
protocol_attributes: Optional[dict[str, Any]] = None,
|
|
121
|
+
vo: str = DEFAULT_VO
|
|
115
122
|
):
|
|
116
123
|
"""
|
|
117
124
|
Initialize a translator object from the RSE, its attributes, and the protocol-specific
|
|
@@ -125,6 +132,7 @@ class RSEDeterministicTranslation(PolicyPackageAlgorithms):
|
|
|
125
132
|
self.rse = rse
|
|
126
133
|
self.rse_attributes = rse_attributes if rse_attributes else {}
|
|
127
134
|
self.protocol_attributes = protocol_attributes if protocol_attributes else {}
|
|
135
|
+
self.vo = vo
|
|
128
136
|
|
|
129
137
|
@classmethod
|
|
130
138
|
def supports(
|
|
@@ -251,9 +259,12 @@ class RSEDeterministicTranslation(PolicyPackageAlgorithms):
|
|
|
251
259
|
:returns: RSE specific URI of the physical file
|
|
252
260
|
"""
|
|
253
261
|
algorithm = self.rse_attributes.get(RseAttr.LFN2PFN_ALGORITHM, 'default')
|
|
254
|
-
|
|
262
|
+
algorithm_callable = None
|
|
263
|
+
if algorithm == 'default' or algorithm == RSEDeterministicTranslation._DEFAULT_LFN2PFN:
|
|
255
264
|
algorithm = RSEDeterministicTranslation._DEFAULT_LFN2PFN
|
|
256
|
-
|
|
265
|
+
algorithm_callable = super()._get_default_algorithm(RSEDeterministicTranslation._algorithm_type, self.vo)
|
|
266
|
+
if algorithm_callable is None:
|
|
267
|
+
algorithm_callable = super()._get_one_algorithm(RSEDeterministicTranslation._algorithm_type, algorithm)
|
|
257
268
|
return algorithm_callable(scope, name, self.rse, self.rse_attributes, self.protocol_attributes)
|
|
258
269
|
|
|
259
270
|
|
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': '
|
|
8
|
-
'branch_nick': '
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
7
|
+
'version': '38.0.0rc1',
|
|
8
|
+
'branch_nick': 'master',
|
|
9
|
+
'revision_id': '7f986b67665c21ac40a2b32732b2f263bafd2f6c',
|
|
10
|
+
'revno': 13890
|
|
11
11
|
}
|
|
@@ -73,8 +73,8 @@ default_mail_from = spamspamspam@cern.ch
|
|
|
73
73
|
|
|
74
74
|
[database]
|
|
75
75
|
default = sqlite:////tmp/rucio.db
|
|
76
|
-
#default = oracle://_____________:___________@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=_________)(PORT=______))(ADDRESS=(PROTOCOL=TCP)(HOST=_________)(PORT=_____))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=__________)))
|
|
77
|
-
#default = oracle://_____________:___________@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=______))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=_____________)))
|
|
76
|
+
#default = oracle+oracledb://_____________:___________@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=_________)(PORT=______))(ADDRESS=(PROTOCOL=TCP)(HOST=_________)(PORT=_____))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=__________)))
|
|
77
|
+
#default = oracle+oracledb://_____________:___________@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=______))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=_____________)))
|
|
78
78
|
#schema=atlas_rucio # only for cern oracle
|
|
79
79
|
#default = mysql+pymysql://rucio:rucio@localhost/rucio
|
|
80
80
|
#default = postgresql+psycopg://rucio:rucio@localhost/rucio
|
|
@@ -6,7 +6,7 @@ tabulate>=0.9.0 # Pretty-print tabul
|
|
|
6
6
|
jsonschema>=4.23.0 # For JSON schema validation (Policy modules)
|
|
7
7
|
packaging>=24.2 # Packaging utilities
|
|
8
8
|
rich>=13.9.4 # For Rich terminal display
|
|
9
|
-
typing-extensions>=4.
|
|
9
|
+
typing-extensions>=4.14.0 # Type annotations that are not yet supported in the `typing` module
|
|
10
10
|
click>=8.1.7 # CLI engine
|
|
11
11
|
|
|
12
12
|
# All dependencies needed in extras for rucio client should be defined here
|
|
@@ -54,6 +54,7 @@ def map_legacy_command() -> Optional[list[str]]:
|
|
|
54
54
|
command_map = {
|
|
55
55
|
"list-file-replicas": ["replica", "list", "file"],
|
|
56
56
|
"list-dataset-replicas": ["replica", "list", "dataset"],
|
|
57
|
+
"list-datasets-rse": ["replica", "list", "dataset", "--rse"],
|
|
57
58
|
"add-dataset": ["did", "add", "--type dataset"],
|
|
58
59
|
"add-container": ["did", "add", "--type container"],
|
|
59
60
|
"attach": ["did", "content", "add"],
|
|
@@ -96,7 +97,7 @@ def map_legacy_command() -> Optional[list[str]]:
|
|
|
96
97
|
|
|
97
98
|
|
|
98
99
|
if __name__ == "__main__":
|
|
99
|
-
commands = ("account", "config", "did", "replica", "rse", "rule", "scope", "subscription", "ping", "whoami", "test-server", "lifetime-exception", "upload", "download")
|
|
100
|
+
commands = ("account", "config", "did", "replica", "rse", "rule", "scope", "subscription", "ping", "whoami", "test-server", "lifetime-exception", "upload", "download", "opendata")
|
|
100
101
|
|
|
101
102
|
parser = argparse.ArgumentParser(add_help=False)
|
|
102
103
|
# Check for legacy flag
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rucio-clients
|
|
3
|
-
Version:
|
|
3
|
+
Version: 38.0.0rc1
|
|
4
4
|
Summary: Rucio Client Lite Package
|
|
5
5
|
Home-page: https://rucio.cern.ch/
|
|
6
6
|
Author: Rucio
|
|
@@ -22,7 +22,7 @@ License-File: AUTHORS.rst
|
|
|
22
22
|
Requires-Dist: click
|
|
23
23
|
Requires-Dist: requests
|
|
24
24
|
Requires-Dist: urllib3
|
|
25
|
-
Requires-Dist: dogpile-cache
|
|
25
|
+
Requires-Dist: dogpile-cache
|
|
26
26
|
Requires-Dist: packaging
|
|
27
27
|
Requires-Dist: tabulate
|
|
28
28
|
Requires-Dist: jsonschema
|
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
rucio/__init__.py,sha256=Y7cPPlHVQPFyN8bSPFC0W3WViEdONr5g_qwBub5rufE,660
|
|
2
|
-
rucio/alembicrevision.py,sha256=
|
|
3
|
-
rucio/vcsversion.py,sha256=
|
|
2
|
+
rucio/alembicrevision.py,sha256=9tnjQLFkTpUEcZqcw-ojWpt4Wbg-5OtMJ0CfjPc0wX8,690
|
|
3
|
+
rucio/vcsversion.py,sha256=BllNYoGH_l-KvMjzfuzQlpdKrigN7WKfxQz65tmjfbI,243
|
|
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
|
|
7
|
-
rucio/cli/command.py,sha256=
|
|
7
|
+
rucio/cli/command.py,sha256=dr9bhugorgc2kX-JsdrRsq9Yfh92sYwaALB7CrX6PNI,10835
|
|
8
8
|
rucio/cli/config.py,sha256=L7vhzAyUVKZBWKKDvrLl7zCei8O6kDyzX_x_-p-vk9M,2706
|
|
9
|
-
rucio/cli/did.py,sha256=
|
|
9
|
+
rucio/cli/did.py,sha256=68LZ7CESYag6Uob39wNob-AgGmASIPyZSz33LZUkopk,9188
|
|
10
10
|
rucio/cli/download.py,sha256=nltAf8nm8P6nrfIu0CUveY4YM6oL5nSR3w6yS4qBbw0,6248
|
|
11
11
|
rucio/cli/lifetime_exception.py,sha256=joi9HdaiYP_g3115IR_ImX7oFlEg1xbSaK-IzmoIVcY,1498
|
|
12
|
-
rucio/cli/
|
|
12
|
+
rucio/cli/opendata.py,sha256=wnfzcVBpCmkA9WQFqNsqtMuT-2QRl1LHBjLBgm_c4AU,4741
|
|
13
|
+
rucio/cli/replica.py,sha256=ZeknO6aKOambwe7lJGWcI_YAflz1-oMYBSZTYvMVIe0,8657
|
|
13
14
|
rucio/cli/rse.py,sha256=J2IjCGUzvv9U0swFcU0ykZ1pYweHqTlXwmpGfSI-VgE,11490
|
|
14
|
-
rucio/cli/rule.py,sha256=
|
|
15
|
-
rucio/cli/scope.py,sha256=
|
|
15
|
+
rucio/cli/rule.py,sha256=H_Yw8hx_DiqX_twEtgEY0x2AkftsRyLboMaXv_Zc6Ac,9090
|
|
16
|
+
rucio/cli/scope.py,sha256=jzP9SK4IDKUrjWzE2Gs34I_gQpXnqmsBd6LbLuJI3QM,1698
|
|
16
17
|
rucio/cli/subscription.py,sha256=kx1ox3OkWqdwfdflhdsv00XSYI6nnUZCp97YBZa4Aw4,4269
|
|
17
18
|
rucio/cli/upload.py,sha256=29gJGfb7jsiA6-UwPCSg1kGZu-OJ-bdxUZr27S2mJEM,3237
|
|
18
|
-
rucio/cli/utils.py,sha256=
|
|
19
|
+
rucio/cli/utils.py,sha256=AEmdlvvebyFqBiM5z2HWrR1_kWmcDR1yLq3694rFqMs,10410
|
|
19
20
|
rucio/cli/bin_legacy/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
|
|
20
|
-
rucio/cli/bin_legacy/rucio.py,sha256=
|
|
21
|
-
rucio/cli/bin_legacy/rucio_admin.py,sha256=
|
|
21
|
+
rucio/cli/bin_legacy/rucio.py,sha256=x6EDudwDEMHComUXABVALkGsbwQiAhkzWuH2fEww_RY,143999
|
|
22
|
+
rucio/cli/bin_legacy/rucio_admin.py,sha256=pRpJhEGMr3-xzw3EsGeVayEiu8NI_UxEI2wSIbeulzI,141046
|
|
22
23
|
rucio/client/__init__.py,sha256=0-jkSlrJf-eqbN4swA5a07eaWd6_6JXPQPLXMs4A3iI,660
|
|
23
24
|
rucio/client/accountclient.py,sha256=kScbVL9rR8pyZRmETOyz_gwffc7biaPriMgDnCLxA_0,18864
|
|
24
25
|
rucio/client/accountlimitclient.py,sha256=SWYdRMAMibWLZOhFb3HBI9vLvmp2uYjEhtM2ej1iGzQ,6905
|
|
25
|
-
rucio/client/baseclient.py,sha256=
|
|
26
|
-
rucio/client/client.py,sha256=
|
|
26
|
+
rucio/client/baseclient.py,sha256=gXh1RfzpQfvsFFm74F82jareOD8k9IlUOVHwwqsFyxI,50798
|
|
27
|
+
rucio/client/client.py,sha256=npg0pFWzqnmnObjFO7QDdSkH1O0jrY-HglXEVfDrWNY,4493
|
|
27
28
|
rucio/client/configclient.py,sha256=pbp_yEem7g8JTVVOMY-ehMyLh6T3Rxf1AxCluLE-JE8,4800
|
|
28
29
|
rucio/client/credentialclient.py,sha256=q4i_t-dIiojRmiY70iuJsAgnPqaZVwkJLbThxoc8_9k,2214
|
|
29
30
|
rucio/client/didclient.py,sha256=66ODAQnrtvwwSo0Cu9FpCRo_36N28tHtUjbrz92hu_c,34619
|
|
30
|
-
rucio/client/diracclient.py,sha256=
|
|
31
|
+
rucio/client/diracclient.py,sha256=MQCY0UxgXXlosL9-dKB469wkZ9XLgPs4dPsuEFfk4Rc,4465
|
|
31
32
|
rucio/client/downloadclient.py,sha256=FoNTNNpry_2qo4XLIQXn7_AsnzLt9XllLB_J0UYTI7k,91687
|
|
32
33
|
rucio/client/exportclient.py,sha256=xYbDSw5ZQlANjcbs2-CG4jVcyhxNm9GQ827_dokSJes,3310
|
|
33
|
-
rucio/client/fileclient.py,sha256=akpgLwhbRTWNriyI8yGWTGgXbTu-Ka5jmwwVdJBwmVw,1756
|
|
34
34
|
rucio/client/importclient.py,sha256=KeEWZhjrsAR5Km_UXwwH7hzgEo9ACJaJXN6de87txe4,1560
|
|
35
35
|
rucio/client/lifetimeclient.py,sha256=lAtAzia-UWMzzkcFGPQ72kaiSe1iIbIaCBrxK0bD3GQ,5958
|
|
36
36
|
rucio/client/lockclient.py,sha256=zQKaGskTeaqH9TBpLQzHe20Qaaor2jZ84LBINElDBAM,4421
|
|
37
37
|
rucio/client/metaconventionsclient.py,sha256=tYvqXtcByiINcmZe0nT5Id2VuyJ2EDDUP2vfOPO6_yY,5655
|
|
38
|
+
rucio/client/opendataclient.py,sha256=x0ESKis92lwX_lrB0nKukJy0qcvT7cZ5jWccoYxPVGg,9107
|
|
38
39
|
rucio/client/pingclient.py,sha256=WU7jwbHoISky-ULw9h1_VqS0opRAM3j3RFnpWC7l48Y,2392
|
|
39
40
|
rucio/client/replicaclient.py,sha256=Gi7vg87g4hhrW_UA9MB1FewGh67FW2wAnSWj4H9oMQk,20591
|
|
40
41
|
rucio/client/requestclient.py,sha256=Vr1lAmAbfX2iGzj_aKRmRFPBpMXbVxIw_0LVAZ5Xtq0,8574
|
|
@@ -42,35 +43,35 @@ rucio/client/richclient.py,sha256=kP6cHQsvCtKEl1c2fycqpDjfLrMAzaMxuZA_kWddm08,10
|
|
|
42
43
|
rucio/client/rseclient.py,sha256=4R-WcCROjPRfWjcWuFM7itf4vmRRk0qvOa-itnTlZ8w,31858
|
|
43
44
|
rucio/client/ruleclient.py,sha256=tlYRFMKVwjCuzketqg2F4XoGydbhNAjkOnm1BGUZEVg,13639
|
|
44
45
|
rucio/client/scopeclient.py,sha256=-rXLdXScKeXavOaw9EwBHYo4SXwfcuqsOG6yGMIBWyM,3485
|
|
45
|
-
rucio/client/subscriptionclient.py,sha256=
|
|
46
|
+
rucio/client/subscriptionclient.py,sha256=gOTC5JfvdHJ6YUQdVWmrA-qgDMi1vnLkLlySiTAk-jw,9417
|
|
46
47
|
rucio/client/touchclient.py,sha256=LZXC2xI4QmmTTW4D1339sNXP1VwOKtxS-K7AaQwSlf4,2873
|
|
47
|
-
rucio/client/uploadclient.py,sha256=
|
|
48
|
+
rucio/client/uploadclient.py,sha256=pXsgzdQXDC8hcyA2lHvHkyrz1gCNsOADJuqS-gfLTFQ,72217
|
|
48
49
|
rucio/common/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
|
|
49
50
|
rucio/common/bittorrent.py,sha256=cpz-axibeHmO-Nk3-RH5JTvF6PjvmrRY0rOCgRjmaHk,8834
|
|
50
51
|
rucio/common/cache.py,sha256=oa1WCodXpsmHzM-LJoYL7wQHw7VMU5I0g3TBg-VzEfo,3389
|
|
51
52
|
rucio/common/checksum.py,sha256=nSqjY8TdDGohpAzcEM2fjv4FPdOKmKr_3U27HalKkoY,5254
|
|
52
53
|
rucio/common/client.py,sha256=vHJ1gnHRBiXC2ZPfSgYPlsdJi0DbvwWDdHHMEOVgBvU,3129
|
|
53
54
|
rucio/common/config.py,sha256=69AhxgP9SXXrlaTqlOCQiaiqGqHLhSfhRFasroGfDdc,24402
|
|
54
|
-
rucio/common/constants.py,sha256=
|
|
55
|
+
rucio/common/constants.py,sha256=5MhQHY24NODmvp71MqHS8BzSird2K1ICmC94clD-JlY,7751
|
|
55
56
|
rucio/common/constraints.py,sha256=MrdiAwKyoaZGfspUWX_53XS2790nXMSMg1JYmTO_ciQ,726
|
|
56
57
|
rucio/common/didtype.py,sha256=nXoyK740yrwsiGX9e9vOc8UX0PXRvKry67C0Sd8SpmM,8010
|
|
57
|
-
rucio/common/exception.py,sha256=
|
|
58
|
+
rucio/common/exception.py,sha256=xGwTXPyC7IwfXqE8ZVfUW7EbStP5NIaeSxzhyBjYdrk,36193
|
|
58
59
|
rucio/common/extra.py,sha256=IE01275vTJobyNiYbptU9NmsUl2Ga_92FSoOODV8Qfk,1054
|
|
59
60
|
rucio/common/logging.py,sha256=_G1QDFpPLghz2VXOjdhC7j-TtZBxmPJsyJtztW7mf68,15874
|
|
60
61
|
rucio/common/pcache.py,sha256=V2OnO4h4v5yaxWT9T9DMJpm-2rLalBzzaqlUWUq5x4c,47097
|
|
61
|
-
rucio/common/plugins.py,sha256=
|
|
62
|
+
rucio/common/plugins.py,sha256=vojZpsEu8jzOdHyrYykJRQnShD_Nq9ODj6EFX3i1OAU,8735
|
|
62
63
|
rucio/common/policy.py,sha256=4i7SHyUpWxagS9nI72nBpWyfvYfz_aH6GH4lFMtDARo,3546
|
|
63
64
|
rucio/common/stomp_utils.py,sha256=3GTiRTJ0roe5OX_wgkVwOJYAIhGgYbhiROHc2M8LQT8,5414
|
|
64
65
|
rucio/common/stopwatch.py,sha256=_9zxoLjr8A0wUDJsljK4vZNDCI-dIOgpcxXiCNVJcHU,1641
|
|
65
66
|
rucio/common/test_rucio_server.py,sha256=2teFpN5Pthp-zQt1_aErOURDTgOhFP9GKdEr1NMmc4o,5085
|
|
66
|
-
rucio/common/types.py,sha256=
|
|
67
|
-
rucio/common/utils.py,sha256=
|
|
67
|
+
rucio/common/types.py,sha256=joi_upIQsi3U3HMmyfVOVQem3404kGI6OixyFzrqavk,11941
|
|
68
|
+
rucio/common/utils.py,sha256=HfWtrQIfQ6-vxQMSrK6RaCSqVlBEAszNHqd5lMRKEec,67306
|
|
68
69
|
rucio/common/schema/__init__.py,sha256=-uf3w__sNiKX21VCNjItjW6nzdTR2ysq-Bdndda_D3w,8038
|
|
69
|
-
rucio/common/schema/generic.py,sha256=
|
|
70
|
-
rucio/common/schema/generic_multi_vo.py,sha256=
|
|
70
|
+
rucio/common/schema/generic.py,sha256=NmmQJ0Z8dHbL7xnbFL7rvXFK29wA8ZGtkwwwMAxzVC0,15887
|
|
71
|
+
rucio/common/schema/generic_multi_vo.py,sha256=UK5DOO-dO7pY6O44t9SJqzeS3xUye_stu_f-EVD-r0s,15107
|
|
71
72
|
rucio/rse/__init__.py,sha256=0Y-ZU-K8E-a_sc6q-rTjstREC25EmxPmtIWig5gFNU4,3361
|
|
72
73
|
rucio/rse/rsemanager.py,sha256=Qi8dUD3z0wUCr7O-GeKHKcjt9ur7Jo9d1H3lpm08KcI,41127
|
|
73
|
-
rucio/rse/translation.py,sha256=
|
|
74
|
+
rucio/rse/translation.py,sha256=3UwhOYoYs6NTm4JvK47VpfkGDdxajbhlSfnJSFQ-llU,9609
|
|
74
75
|
rucio/rse/protocols/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
|
|
75
76
|
rucio/rse/protocols/bittorrent.py,sha256=ZBm_n7vU_NGXQaaZJWKQ-KUp6nYOMdbLqTvGuKN_LKk,7475
|
|
76
77
|
rucio/rse/protocols/cache.py,sha256=vJxwPa32TWMQSmETKJ_9ZcXmB4GS47yQGkB-d7IJAdc,4306
|
|
@@ -81,7 +82,7 @@ rucio/rse/protocols/http_cache.py,sha256=UVovml9RFfLUNyCJRYkYjhDev00Dd-eahJpfmvX
|
|
|
81
82
|
rucio/rse/protocols/mock.py,sha256=yZDK_xgC7aV9sXrbVsWOliQPS8i0SpsSFigDGy32NOk,4495
|
|
82
83
|
rucio/rse/protocols/ngarc.py,sha256=jZTJ9JFZ7CSD11dtbElzCmuwEdH-k30KMznUFUmSmAQ,7244
|
|
83
84
|
rucio/rse/protocols/posix.py,sha256=jmKcFsrvFbbimKNw9WkK2R4d_XkXx_1zM-KOYa5--Ow,10435
|
|
84
|
-
rucio/rse/protocols/protocol.py,sha256=
|
|
85
|
+
rucio/rse/protocols/protocol.py,sha256=ps-Y6XLUbIa_mG4sGeufRFpLAoteW4jYoiA-S9k3ieo,15495
|
|
85
86
|
rucio/rse/protocols/rclone.py,sha256=beZewvum5BN1P7VvCISAdZMuPb-n-MbwBJqeSTHplVM,15293
|
|
86
87
|
rucio/rse/protocols/rfio.py,sha256=8TJ_60pWH7ragdNG9INz_oOK1LXLc-C43iENGAKfOEg,5768
|
|
87
88
|
rucio/rse/protocols/srm.py,sha256=9QFSORsXT-CR_6tDqyXCAQ5BzZifqaDItCYGIlTQGQI,14699
|
|
@@ -89,16 +90,16 @@ rucio/rse/protocols/ssh.py,sha256=pHPAQx2bPNkMrtqbCqDfq7OXoy7XphQ-i2Stzdvnf1k,17
|
|
|
89
90
|
rucio/rse/protocols/storm.py,sha256=Z4fzklxG-x70A0Lugg1jE1RicwCSeF27iz0MXO-4to0,7864
|
|
90
91
|
rucio/rse/protocols/webdav.py,sha256=8UzmBA8vF_-exoUvpIHRQLfhvAvExQsfu-P4WbXGOXI,24810
|
|
91
92
|
rucio/rse/protocols/xrootd.py,sha256=oJHueVR44dcW5nkg8jCbr9PetV9UIti3C0tka_m7yIk,12604
|
|
92
|
-
rucio_clients-
|
|
93
|
-
rucio_clients-
|
|
94
|
-
rucio_clients-
|
|
95
|
-
rucio_clients-
|
|
96
|
-
rucio_clients-
|
|
97
|
-
rucio_clients-
|
|
98
|
-
rucio_clients-
|
|
99
|
-
rucio_clients-
|
|
100
|
-
rucio_clients-
|
|
101
|
-
rucio_clients-
|
|
102
|
-
rucio_clients-
|
|
103
|
-
rucio_clients-
|
|
104
|
-
rucio_clients-
|
|
93
|
+
rucio_clients-38.0.0rc1.data/data/requirements.client.txt,sha256=ob8DW6vHurtEcXZ2j_u67WO_M2Mf7dzJFROKqIQINTo,1790
|
|
94
|
+
rucio_clients-38.0.0rc1.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
|
|
95
|
+
rucio_clients-38.0.0rc1.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
|
|
96
|
+
rucio_clients-38.0.0rc1.data/data/etc/rucio.cfg.template,sha256=hKnGDIm7oIFWBhj6vr5L6bE4TDRHT-7eZh9IsqOHbpo,8023
|
|
97
|
+
rucio_clients-38.0.0rc1.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
|
|
98
|
+
rucio_clients-38.0.0rc1.data/scripts/rucio,sha256=MfHQzU-lmFsKWORw_aJ632TaKE9Oq_AqrFAEIbA0Drs,5167
|
|
99
|
+
rucio_clients-38.0.0rc1.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
|
|
100
|
+
rucio_clients-38.0.0rc1.dist-info/licenses/AUTHORS.rst,sha256=c4MEJjLcFZ5euNtPA7jGFL26javbFKpWTvxBoIs_l6w,4726
|
|
101
|
+
rucio_clients-38.0.0rc1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
102
|
+
rucio_clients-38.0.0rc1.dist-info/METADATA,sha256=NKKMYO3tJ6GT-slX_f0ZeXJdEOHdNX7n2HZcwosQMfE,1743
|
|
103
|
+
rucio_clients-38.0.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
104
|
+
rucio_clients-38.0.0rc1.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
|
|
105
|
+
rucio_clients-38.0.0rc1.dist-info/RECORD,,
|
rucio/client/fileclient.py
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
from json import loads
|
|
16
|
-
from typing import Any
|
|
17
|
-
from urllib.parse import quote_plus
|
|
18
|
-
|
|
19
|
-
from requests.status_codes import codes
|
|
20
|
-
|
|
21
|
-
from rucio.client.baseclient import BaseClient, choice
|
|
22
|
-
from rucio.common.utils import build_url
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class FileClient(BaseClient):
|
|
26
|
-
"""Dataset client class for working with dataset"""
|
|
27
|
-
|
|
28
|
-
BASEURL = 'files'
|
|
29
|
-
|
|
30
|
-
def list_file_replicas(self, scope: str, lfn: str) -> list[dict[str, Any]]:
|
|
31
|
-
"""
|
|
32
|
-
List file replicas.
|
|
33
|
-
|
|
34
|
-
Parameters
|
|
35
|
-
----------
|
|
36
|
-
scope :
|
|
37
|
-
The scope of the file.
|
|
38
|
-
lfn :
|
|
39
|
-
The LFN
|
|
40
|
-
|
|
41
|
-
Returns
|
|
42
|
-
-------
|
|
43
|
-
|
|
44
|
-
List of replicas.
|
|
45
|
-
"""
|
|
46
|
-
path = '/'.join([self.BASEURL, quote_plus(scope), quote_plus(lfn), 'rses'])
|
|
47
|
-
url = build_url(choice(self.list_hosts), path=path)
|
|
48
|
-
|
|
49
|
-
r = self._send_request(url, type_='GET')
|
|
50
|
-
|
|
51
|
-
if r.status_code == codes.ok:
|
|
52
|
-
rses = loads(r.text)
|
|
53
|
-
return rses
|
|
54
|
-
else:
|
|
55
|
-
print(r.status_code)
|
|
56
|
-
exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
|
|
57
|
-
raise exc_cls(exc_msg)
|
{rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/etc/rse-accounts.cfg.template
RENAMED
|
File without changes
|
{rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.data}/data/etc/rucio.cfg.atlas.client.template
RENAMED
|
File without changes
|
{rucio_clients-37.7.0.data → rucio_clients-38.0.0rc1.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
|