rucio-clients 37.7.1__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.

Files changed (40) hide show
  1. rucio/alembicrevision.py +1 -1
  2. rucio/cli/bin_legacy/rucio.py +51 -107
  3. rucio/cli/bin_legacy/rucio_admin.py +26 -26
  4. rucio/cli/command.py +1 -0
  5. rucio/cli/did.py +2 -2
  6. rucio/cli/opendata.py +132 -0
  7. rucio/cli/replica.py +15 -5
  8. rucio/cli/rule.py +7 -2
  9. rucio/cli/scope.py +3 -2
  10. rucio/cli/utils.py +28 -4
  11. rucio/client/baseclient.py +9 -1
  12. rucio/client/client.py +2 -0
  13. rucio/client/diracclient.py +73 -12
  14. rucio/client/opendataclient.py +249 -0
  15. rucio/client/subscriptionclient.py +30 -0
  16. rucio/client/uploadclient.py +10 -13
  17. rucio/common/constants.py +4 -1
  18. rucio/common/exception.py +55 -0
  19. rucio/common/plugins.py +45 -8
  20. rucio/common/schema/generic.py +5 -3
  21. rucio/common/schema/generic_multi_vo.py +4 -2
  22. rucio/common/types.py +8 -7
  23. rucio/common/utils.py +176 -11
  24. rucio/rse/protocols/protocol.py +9 -5
  25. rucio/rse/translation.py +17 -6
  26. rucio/vcsversion.py +4 -4
  27. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/data/etc/rucio.cfg.template +2 -2
  28. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/data/requirements.client.txt +1 -1
  29. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/scripts/rucio +2 -1
  30. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/METADATA +2 -2
  31. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/RECORD +39 -38
  32. rucio/client/fileclient.py +0 -57
  33. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/data/etc/rse-accounts.cfg.template +0 -0
  34. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
  35. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/data/rucio_client/merge_rucio_configs.py +0 -0
  36. {rucio_clients-37.7.1.data → rucio_clients-38.0.0rc1.data}/scripts/rucio-admin +0 -0
  37. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/WHEEL +0 -0
  38. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/licenses/AUTHORS.rst +0 -0
  39. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/licenses/LICENSE +0 -0
  40. {rucio_clients-37.7.1.dist-info → rucio_clients-38.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -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
- self.translator = RSEDeterministicTranslation(self.rse['rse'], rse_settings, self.attributes)
73
- if getattr(rsemanager, 'CLIENT_MODE', None) and \
74
- not RSEDeterministicTranslation.supports(self.rse.get('lfn2pfn_algorithm')):
75
- # Remote server has an algorithm we don't understand; always make the server do the lookup.
76
- setattr(self, 'lfns2pfns', self.__lfns2pfns_client)
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
- return super()._get_one_algorithm(cls._algorithm_type, algorithm_name)
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
- if algorithm == 'default':
262
+ algorithm_callable = None
263
+ if algorithm == 'default' or algorithm == RSEDeterministicTranslation._DEFAULT_LFN2PFN:
255
264
  algorithm = RSEDeterministicTranslation._DEFAULT_LFN2PFN
256
- algorithm_callable = super()._get_one_algorithm(RSEDeterministicTranslation._algorithm_type, algorithm)
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': '37.7.1',
8
- 'branch_nick': 'release-37',
9
- 'revision_id': '87b1cc805709f99515d5f513e8a22af3042eca51',
10
- 'revno': 13828
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.12.2 # Type annotations that are not yet supported in the `typing` module
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: 37.7.1
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<=1.2.2
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=lNSQZYA4U_fsMW8l0dHpiV243XZhioqvVo9ihmpuQBo,690
3
- rucio/vcsversion.py,sha256=9qoNkWEmbm-Pu9pTotSVIWws0KsDR_UeaNJ2HWf7_r8,244
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=xU52wQhkyH85htZQyqOCOZOPizoMHY87FG6hNojk59Q,10784
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=BWUFT7lZY3YiAM09HTufPzFi5A-s0SYfTl5wijp3SyM,9158
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/replica.py,sha256=ZRvLONlD0enuuDLgDm5iAia-HEaOg8PDepJPImEu9fo,8169
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=MV9zXEbzSSHyfbktP2mjFr9Sdl-mO0t4Pq3GdGmgq_Q,8875
15
- rucio/cli/scope.py,sha256=0AuXGSQWYOas1EgkFq6KCuwqh_fuMzUgnp_jqQ_Y2t0,1574
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=uICXhVjsmnRpwvgY7FLxTvyC_88BgH5I_v7iutix4eI,9739
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=Q3bFveGyxmAtrTuGpgbcRk3jjuZk5ggyazlJ0p2fugY,145080
21
- rucio/cli/bin_legacy/rucio_admin.py,sha256=8wot361PeDJKTZ6BDE_Of_eGe7pKcKLhj7WG5NNKhNI,140833
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=LvGIGSi-oCOWQjYUD5jG3QffDrI39eFJbi20zrjIe60,50535
26
- rucio/client/client.py,sha256=XEDzDmujYyTYnSbQOBh19XirM-gxnTWC6Xy6oXjFgNk,4409
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=hgF_eF5_NfY0UTedrXMtmuwT4rVgCf3-bdsv7VhObDA,2467
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=SVCOSfwJGSx-DRGznMFnt8ez1zqvGfpIKne9f7DhdNo,8417
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=EQuVDOGveGF78qTz2akw86e96C-Oydux4d-imAoXYvU,72145
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=5IFslVCrULMpyRX9j40wC2zAHLZM99kom1iDoqW44Lg,7603
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=U4Jnpv8QTkNmMG2scV4bYNzOqLsMnfrmiGeSH-P_B_g,34555
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=oXATA8pgCkpfq9qleJ9tVk8aenUpKXzjOkR-Vx4c3-U,7117
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=ylN3wIQePDZ5fcqYdG66RMefjk65nKMvLSPlMTfHhOQ,11836
67
- rucio/common/utils.py,sha256=Q4CC6hT42lIqSZ22U1WmsZpU7VoGXPFeeRDDbrpbT4Q,62391
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=NkjdxVutlRm-7AvgQf9bTW0Gb0AomuiV1iwfXOPNmIQ,15811
70
- rucio/common/schema/generic_multi_vo.py,sha256=Owk9JMxycAcayTDnx-9kiXZSRBHC_jPaq79jjE1FiB0,15035
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=8hrq8eLuF3C6MQP9AXfb0_7S_IGMiOpBaNCTJRS5cm8,9030
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=RffRogww34G62TzwFdQCfe19xrsf_G36SwlaR4U7YdE,15286
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-37.7.1.data/data/requirements.client.txt,sha256=uGqQvHApEbAsTgkHDqGFTmPmKtd2vL7o4rv4LO8ikjM,1790
93
- rucio_clients-37.7.1.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
94
- rucio_clients-37.7.1.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
95
- rucio_clients-37.7.1.data/data/etc/rucio.cfg.template,sha256=wBFnaJrJmaYw3B6cZbsVzU-16pdyNJ8L86GZNJMp1Ng,8005
96
- rucio_clients-37.7.1.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
97
- rucio_clients-37.7.1.data/scripts/rucio,sha256=xQRL_0mwut48KxOgWZexsSx9jfnaZHqSTAo7OnCHAgA,5081
98
- rucio_clients-37.7.1.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
99
- rucio_clients-37.7.1.dist-info/licenses/AUTHORS.rst,sha256=c4MEJjLcFZ5euNtPA7jGFL26javbFKpWTvxBoIs_l6w,4726
100
- rucio_clients-37.7.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
101
- rucio_clients-37.7.1.dist-info/METADATA,sha256=78CpC12slaxVrrqa1zLH8USQJnCEm1yLEKV-WOAZfNc,1747
102
- rucio_clients-37.7.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
- rucio_clients-37.7.1.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
104
- rucio_clients-37.7.1.dist-info/RECORD,,
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,,
@@ -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)