rucio-clients 38.3.0__py3-none-any.whl → 38.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.

Files changed (48) hide show
  1. rucio/cli/bin_legacy/rucio.py +12 -7
  2. rucio/cli/bin_legacy/rucio_admin.py +9 -2
  3. rucio/cli/did.py +1 -1
  4. rucio/cli/opendata.py +19 -2
  5. rucio/cli/replica.py +6 -2
  6. rucio/cli/rule.py +0 -1
  7. rucio/cli/scope.py +9 -0
  8. rucio/cli/utils.py +11 -0
  9. rucio/client/accountclient.py +20 -19
  10. rucio/client/accountlimitclient.py +5 -4
  11. rucio/client/baseclient.py +25 -25
  12. rucio/client/configclient.py +7 -6
  13. rucio/client/credentialclient.py +2 -1
  14. rucio/client/didclient.py +33 -32
  15. rucio/client/diracclient.py +2 -1
  16. rucio/client/downloadclient.py +3 -1
  17. rucio/client/exportclient.py +2 -1
  18. rucio/client/importclient.py +2 -1
  19. rucio/client/lifetimeclient.py +3 -2
  20. rucio/client/lockclient.py +4 -3
  21. rucio/client/metaconventionsclient.py +5 -4
  22. rucio/client/opendataclient.py +8 -7
  23. rucio/client/pingclient.py +2 -1
  24. rucio/client/replicaclient.py +27 -26
  25. rucio/client/requestclient.py +8 -8
  26. rucio/client/rseclient.py +31 -28
  27. rucio/client/ruleclient.py +13 -12
  28. rucio/client/scopeclient.py +44 -4
  29. rucio/client/subscriptionclient.py +6 -5
  30. rucio/common/constants.py +18 -0
  31. rucio/common/didtype.py +18 -11
  32. rucio/common/exception.py +20 -0
  33. rucio/common/plugins.py +9 -7
  34. rucio/rse/protocols/webdav.py +5 -2
  35. rucio/vcsversion.py +3 -3
  36. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/data/etc/rucio.cfg.template +2 -3
  37. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/METADATA +1 -1
  38. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/RECORD +48 -48
  39. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/data/etc/rse-accounts.cfg.template +0 -0
  40. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
  41. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/data/requirements.client.txt +0 -0
  42. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/data/rucio_client/merge_rucio_configs.py +0 -0
  43. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/scripts/rucio +0 -0
  44. {rucio_clients-38.3.0.data → rucio_clients-38.5.0.data}/scripts/rucio-admin +0 -0
  45. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/WHEEL +0 -0
  46. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/licenses/AUTHORS.rst +0 -0
  47. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/licenses/LICENSE +0 -0
  48. {rucio_clients-38.3.0.dist-info → rucio_clients-38.5.0.dist-info}/top_level.txt +0 -0
rucio/client/didclient.py CHANGED
@@ -20,6 +20,7 @@ from urllib.parse import quote_plus
20
20
  from requests.status_codes import codes
21
21
 
22
22
  from rucio.client.baseclient import BaseClient, choice
23
+ from rucio.common.constants import HTTPMethod
23
24
  from rucio.common.exception import DeprecationError
24
25
  from rucio.common.utils import build_url, date_to_str, render_json
25
26
 
@@ -28,7 +29,6 @@ if TYPE_CHECKING:
28
29
 
29
30
 
30
31
  class DIDClient(BaseClient):
31
-
32
32
  """DataIdentifier client class for working with data identifiers"""
33
33
 
34
34
  DIDS_BASEURL = 'dids'
@@ -64,7 +64,7 @@ class DIDClient(BaseClient):
64
64
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), 'dids', 'search'])
65
65
 
66
66
  # stringify dates.
67
- if isinstance(filters, dict): # backwards compatibility for filters as single {}
67
+ if isinstance(filters, dict): # backwards compatibility for filters as single {}
68
68
  filters = [filters]
69
69
  for or_group in filters:
70
70
  for key, value in or_group.items():
@@ -80,7 +80,7 @@ class DIDClient(BaseClient):
80
80
 
81
81
  url = build_url(choice(self.list_hosts), path=path, params=payload)
82
82
 
83
- r = self._send_request(url, type_='GET')
83
+ r = self._send_request(url, method=HTTPMethod.GET)
84
84
 
85
85
  if r.status_code == codes.ok:
86
86
  dids = self._load_json_data(r)
@@ -148,7 +148,7 @@ class DIDClient(BaseClient):
148
148
  data['dids'] = dids
149
149
  if rse:
150
150
  data['rse'] = rse
151
- r = self._send_request(url, type_='POST', data=render_json(**data))
151
+ r = self._send_request(url, method=HTTPMethod.POST, data=render_json(**data))
152
152
  if r.status_code == codes.created:
153
153
  return True
154
154
  else:
@@ -161,7 +161,7 @@ class DIDClient(BaseClient):
161
161
  """
162
162
  path = '/'.join([self.DIDS_BASEURL])
163
163
  url = build_url(choice(self.list_hosts), path=path)
164
- r = self._send_request(url, type_='POST', data=render_json(dids))
164
+ r = self._send_request(url, method=HTTPMethod.POST, data=render_json(dids))
165
165
  if r.status_code == codes.created:
166
166
  return True
167
167
  else:
@@ -245,7 +245,8 @@ class DIDClient(BaseClient):
245
245
  lifetime :
246
246
  DID's lifetime (in seconds).
247
247
  """
248
- return self.add_did(scope=scope, name=name, did_type='CONTAINER', statuses=statuses, meta=meta, rules=rules, lifetime=lifetime)
248
+ return self.add_did(scope=scope, name=name, did_type='CONTAINER', statuses=statuses, meta=meta, rules=rules,
249
+ lifetime=lifetime)
249
250
 
250
251
  def add_containers(self, cnts: "Sequence[dict[str, Any]]") -> bool:
251
252
  """
@@ -284,7 +285,7 @@ class DIDClient(BaseClient):
284
285
  data: dict[str, Any] = {'dids': dids}
285
286
  if rse:
286
287
  data['rse'] = rse
287
- r = self._send_request(url, type_='POST', data=render_json(**data))
288
+ r = self._send_request(url, method=HTTPMethod.POST, data=render_json(**data))
288
289
  if r.status_code == codes.created:
289
290
  return True
290
291
  else:
@@ -313,7 +314,7 @@ class DIDClient(BaseClient):
313
314
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'dids'])
314
315
  url = build_url(choice(self.list_hosts), path=path)
315
316
  data = {'dids': dids}
316
- r = self._send_request(url, type_='DEL', data=render_json(**data))
317
+ r = self._send_request(url, method=HTTPMethod.DELETE, data=render_json(**data))
317
318
  if r.status_code == codes.ok:
318
319
  return True
319
320
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
@@ -339,7 +340,7 @@ class DIDClient(BaseClient):
339
340
  path = '/'.join([self.DIDS_BASEURL, 'attachments'])
340
341
  url = build_url(choice(self.list_hosts), path=path)
341
342
  data = {'ignore_duplicate': ignore_duplicate, 'attachments': attachments}
342
- r = self._send_request(url, type_='POST', data=dumps(data))
343
+ r = self._send_request(url, method=HTTPMethod.POST, data=dumps(data))
343
344
  if r.status_code in (codes.ok, codes.no_content, codes.created):
344
345
  return True
345
346
 
@@ -482,9 +483,9 @@ class DIDClient(BaseClient):
482
483
  return self.attach_dids(scope=scope, name=name, dids=cnts)
483
484
 
484
485
  def list_content(
485
- self,
486
- scope: str,
487
- name: str
486
+ self,
487
+ scope: str,
488
+ name: str
488
489
  ) -> "Iterator[dict[str, Any]]":
489
490
  """
490
491
  List data identifier contents.
@@ -499,7 +500,7 @@ class DIDClient(BaseClient):
499
500
 
500
501
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'dids'])
501
502
  url = build_url(choice(self.list_hosts), path=path)
502
- r = self._send_request(url, type_='GET')
503
+ r = self._send_request(url, method=HTTPMethod.GET)
503
504
  if r.status_code == codes.ok:
504
505
  return self._load_json_data(r)
505
506
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
@@ -524,7 +525,7 @@ class DIDClient(BaseClient):
524
525
 
525
526
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'dids', 'history'])
526
527
  url = build_url(choice(self.list_hosts), path=path)
527
- r = self._send_request(url, type_='GET')
528
+ r = self._send_request(url, method=HTTPMethod.GET)
528
529
  if r.status_code == codes.ok:
529
530
  return self._load_json_data(r)
530
531
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
@@ -555,7 +556,7 @@ class DIDClient(BaseClient):
555
556
  payload['long'] = True
556
557
  url = build_url(choice(self.list_hosts), path=path, params=payload)
557
558
 
558
- r = self._send_request(url, type_='GET')
559
+ r = self._send_request(url, method=HTTPMethod.GET)
559
560
  if r.status_code == codes.ok:
560
561
  return self._load_json_data(r)
561
562
  else:
@@ -576,7 +577,7 @@ class DIDClient(BaseClient):
576
577
  path = '/'.join([self.DIDS_BASEURL, 'bulkfiles'])
577
578
  url = build_url(choice(self.list_hosts), path=path)
578
579
 
579
- r = self._send_request(url, type_='POST', data=dumps(data), stream=True)
580
+ r = self._send_request(url, method=HTTPMethod.POST, data=dumps(data), stream=True)
580
581
  if r.status_code == codes.ok:
581
582
  return self._load_json_data(r)
582
583
  else:
@@ -613,7 +614,7 @@ class DIDClient(BaseClient):
613
614
  elif dynamic:
614
615
  params['dynamic_depth'] = 'FILE'
615
616
  url = build_url(choice(self.list_hosts), path=path, params=params)
616
- r = self._send_request(url, type_='GET')
617
+ r = self._send_request(url, method=HTTPMethod.GET)
617
618
  if r.status_code == codes.ok:
618
619
  return next(self._load_json_data(r))
619
620
  else:
@@ -642,7 +643,7 @@ class DIDClient(BaseClient):
642
643
  url = build_url(choice(self.list_hosts), path=path)
643
644
  payload = {}
644
645
  payload['plugin'] = plugin
645
- r = self._send_request(url, type_='GET', params=payload)
646
+ r = self._send_request(url, method=HTTPMethod.GET, params=payload)
646
647
  if r.status_code == codes.ok:
647
648
  meta = self._load_json_data(r)
648
649
  return next(meta)
@@ -670,7 +671,7 @@ class DIDClient(BaseClient):
670
671
  data = {'dids': dids, 'inherit': inherit, 'plugin': plugin}
671
672
  path = '/'.join([self.DIDS_BASEURL, 'bulkmeta'])
672
673
  url = build_url(choice(self.list_hosts), path=path)
673
- r = self._send_request(url, type_='POST', data=dumps(data))
674
+ r = self._send_request(url, method=HTTPMethod.POST, data=dumps(data))
674
675
  if r.status_code == codes.ok:
675
676
  return self._load_json_data(r)
676
677
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
@@ -703,7 +704,7 @@ class DIDClient(BaseClient):
703
704
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'meta', key])
704
705
  url = build_url(choice(self.list_hosts), path=path)
705
706
  data = dumps({'value': value, 'recursive': recursive})
706
- r = self._send_request(url, type_='POST', data=data)
707
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
707
708
  if r.status_code == codes.created:
708
709
  return True
709
710
  else:
@@ -734,7 +735,7 @@ class DIDClient(BaseClient):
734
735
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'meta'])
735
736
  url = build_url(choice(self.list_hosts), path=path)
736
737
  data = dumps({'meta': meta, 'recursive': recursive})
737
- r = self._send_request(url, type_='POST', data=data)
738
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
738
739
  if r.status_code == codes.created:
739
740
  return True
740
741
  else:
@@ -760,7 +761,7 @@ class DIDClient(BaseClient):
760
761
  path = '/'.join([self.DIDS_BASEURL, 'bulkdidsmeta'])
761
762
  url = build_url(choice(self.list_hosts), path=path)
762
763
  data = dumps({'dids': dids, 'recursive': recursive})
763
- r = self._send_request(url, type_='POST', data=data)
764
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
764
765
  if r.status_code == codes.created:
765
766
  return True
766
767
  else:
@@ -788,7 +789,7 @@ class DIDClient(BaseClient):
788
789
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'status'])
789
790
  url = build_url(choice(self.list_hosts), path=path)
790
791
  data = dumps(kwargs)
791
- r = self._send_request(url, type_='PUT', data=data)
792
+ r = self._send_request(url, method=HTTPMethod.PUT, data=data)
792
793
  if r.status_code in (codes.ok, codes.no_content, codes.created):
793
794
  return True
794
795
 
@@ -833,7 +834,7 @@ class DIDClient(BaseClient):
833
834
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'meta'])
834
835
  url = build_url(choice(self.list_hosts), path=path, params={'key': key})
835
836
 
836
- r = self._send_request(url, type_='DEL')
837
+ r = self._send_request(url, method=HTTPMethod.DELETE)
837
838
  if r.status_code == codes.ok:
838
839
  return True
839
840
  else:
@@ -858,7 +859,7 @@ class DIDClient(BaseClient):
858
859
 
859
860
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'rules'])
860
861
  url = build_url(choice(self.list_hosts), path=path)
861
- r = self._send_request(url, type_='GET')
862
+ r = self._send_request(url, method=HTTPMethod.GET)
862
863
  if r.status_code == codes.ok:
863
864
  return self._load_json_data(r)
864
865
  else:
@@ -883,7 +884,7 @@ class DIDClient(BaseClient):
883
884
 
884
885
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'associated_rules'])
885
886
  url = build_url(choice(self.list_hosts), path=path)
886
- r = self._send_request(url, type_='GET')
887
+ r = self._send_request(url, method=HTTPMethod.GET)
887
888
  if r.status_code == codes.ok:
888
889
  return self._load_json_data(r)
889
890
  else:
@@ -907,7 +908,7 @@ class DIDClient(BaseClient):
907
908
 
908
909
  path = '/'.join([self.DIDS_BASEURL, guid, 'guid'])
909
910
  url = build_url(choice(self.list_hosts), path=path)
910
- r = self._send_request(url, type_='GET')
911
+ r = self._send_request(url, method=HTTPMethod.GET)
911
912
  if r.status_code == codes.ok:
912
913
  return self._load_json_data(r)
913
914
  else:
@@ -941,7 +942,7 @@ class DIDClient(BaseClient):
941
942
  payload['recursive'] = True
942
943
  url = build_url(choice(self.list_hosts), path=path, params=payload)
943
944
 
944
- r = self._send_request(url, type_='GET')
945
+ r = self._send_request(url, method=HTTPMethod.GET)
945
946
  if r.status_code == codes.ok:
946
947
  return self._load_json_data(r)
947
948
  else:
@@ -967,7 +968,7 @@ class DIDClient(BaseClient):
967
968
  path = '/'.join([self.DIDS_BASEURL, quote_plus(scope), quote_plus(name), 'parents'])
968
969
  url = build_url(choice(self.list_hosts), path=path)
969
970
 
970
- r = self._send_request(url, type_='GET')
971
+ r = self._send_request(url, method=HTTPMethod.GET)
971
972
  if r.status_code == codes.ok:
972
973
  return self._load_json_data(r)
973
974
  else:
@@ -1007,7 +1008,7 @@ class DIDClient(BaseClient):
1007
1008
  'nbfiles': str(nbfiles)
1008
1009
  })
1009
1010
  url = build_url(choice(self.list_hosts), path=path)
1010
- r = self._send_request(url, type_='POST', data=data)
1011
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
1011
1012
  if r.status_code == codes.created:
1012
1013
  return True
1013
1014
  else:
@@ -1025,7 +1026,7 @@ class DIDClient(BaseClient):
1025
1026
  """
1026
1027
  path = '/'.join([self.DIDS_BASEURL, 'resurrect'])
1027
1028
  url = build_url(choice(self.list_hosts), path=path)
1028
- r = self._send_request(url, type_='POST', data=dumps(dids))
1029
+ r = self._send_request(url, method=HTTPMethod.POST, data=dumps(dids))
1029
1030
  if r.status_code == codes.created:
1030
1031
  return True
1031
1032
  else:
@@ -1049,7 +1050,7 @@ class DIDClient(BaseClient):
1049
1050
  path = '/'.join([self.ARCHIVES_BASEURL, quote_plus(scope), quote_plus(name), 'files'])
1050
1051
  url = build_url(choice(self.list_hosts), path=path)
1051
1052
 
1052
- r = self._send_request(url, type_='GET')
1053
+ r = self._send_request(url, method=HTTPMethod.GET)
1053
1054
  if r.status_code == codes.ok:
1054
1055
  return self._load_json_data(r)
1055
1056
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
@@ -18,6 +18,7 @@ from typing import TYPE_CHECKING, Any, Literal, Optional
18
18
  from requests.status_codes import codes
19
19
 
20
20
  from rucio.client.baseclient import BaseClient, choice
21
+ from rucio.common.constants import HTTPMethod
21
22
  from rucio.common.utils import build_url
22
23
 
23
24
  if TYPE_CHECKING:
@@ -113,7 +114,7 @@ class DiracClient(BaseClient):
113
114
 
114
115
  r = self._send_request(
115
116
  url,
116
- type_='POST',
117
+ method=HTTPMethod.POST,
117
118
  data=dumps({'lfns': lfns, 'ignore_availability': ignore_availability, 'parents_metadata': parents_metadata})
118
119
  )
119
120
 
@@ -1856,7 +1856,9 @@ class DownloadClient:
1856
1856
  did_name = did[1]
1857
1857
  elif len(did) == 1:
1858
1858
  if self.extract_scope_convention == 'belleii':
1859
- scopes = [scope for scope in self.client.list_scopes()]
1859
+ scopes = self.client.list_scopes()
1860
+ if not isinstance(scopes, list):
1861
+ scopes = [scope['scope'] for scope in scopes]
1860
1862
  did_scope, did_name = extract_scope(did[0], scopes)
1861
1863
  else:
1862
1864
  did = did_str.split('.')
@@ -17,6 +17,7 @@ from typing import Any
17
17
  from requests.status_codes import codes
18
18
 
19
19
  from rucio.client.baseclient import BaseClient, choice
20
+ from rucio.common.constants import HTTPMethod
20
21
  from rucio.common.utils import build_url, parse_response
21
22
 
22
23
 
@@ -83,7 +84,7 @@ class ExportClient(BaseClient):
83
84
  path = '/'.join([self.EXPORT_BASEURL])
84
85
  url = build_url(choice(self.list_hosts), path=path, params=payload)
85
86
 
86
- r = self._send_request(url, type_='GET')
87
+ r = self._send_request(url, method=HTTPMethod.GET)
87
88
  if r.status_code == codes.ok:
88
89
  return parse_response(r.text)
89
90
  else:
@@ -17,6 +17,7 @@ from typing import Any
17
17
  from requests.status_codes import codes
18
18
 
19
19
  from rucio.client.baseclient import BaseClient, choice
20
+ from rucio.common.constants import HTTPMethod
20
21
  from rucio.common.utils import build_url, render_json
21
22
 
22
23
 
@@ -37,7 +38,7 @@ class ImportClient(BaseClient):
37
38
  path = '/'.join([self.IMPORT_BASEURL])
38
39
  url = build_url(choice(self.list_hosts), path=path)
39
40
 
40
- r = self._send_request(url, type_='POST', data=render_json(**data))
41
+ r = self._send_request(url, method=HTTPMethod.POST, data=render_json(**data))
41
42
  if r.status_code == codes.created:
42
43
  return r.text
43
44
  else:
@@ -18,6 +18,7 @@ from typing import TYPE_CHECKING, Any, Optional
18
18
  from requests.status_codes import codes
19
19
 
20
20
  from rucio.client.baseclient import BaseClient, choice
21
+ from rucio.common.constants import HTTPMethod
21
22
  from rucio.common.utils import build_url, render_json
22
23
 
23
24
  if TYPE_CHECKING:
@@ -81,7 +82,7 @@ class LifetimeClient(BaseClient):
81
82
  params['states'] = exception_id
82
83
  url = build_url(choice(self.list_hosts), path=path, params=params)
83
84
 
84
- result = self._send_request(url)
85
+ result = self._send_request(url, method=HTTPMethod.GET)
85
86
  if result.status_code == codes.ok:
86
87
  lifetime_exceptions = self._load_json_data(result)
87
88
  return lifetime_exceptions
@@ -133,7 +134,7 @@ class LifetimeClient(BaseClient):
133
134
  path = self.LIFETIME_BASEURL + '/'
134
135
  url = build_url(choice(self.list_hosts), path=path)
135
136
  data = {'dids': dids, 'account': account, 'pattern': pattern, 'comments': comments, 'expires_at': expires_at}
136
- result = self._send_request(url, type_='POST', data=render_json(**data))
137
+ result = self._send_request(url, method=HTTPMethod.POST, data=render_json(**data))
137
138
  if result.status_code == codes.created:
138
139
  return loads(result.text)
139
140
  exc_cls, exc_msg = self._get_exception(headers=result.headers, status_code=result.status_code, data=result.content)
@@ -18,6 +18,7 @@ from urllib.parse import quote_plus
18
18
  from requests.status_codes import codes
19
19
 
20
20
  from rucio.client.baseclient import BaseClient, choice
21
+ from rucio.common.constants import HTTPMethod
21
22
  from rucio.common.utils import build_url, render_json
22
23
 
23
24
  if TYPE_CHECKING:
@@ -50,7 +51,7 @@ class LockClient(BaseClient):
50
51
  path = '/'.join([self.LOCKS_BASEURL, quote_plus(scope), quote_plus(name)])
51
52
  url = build_url(choice(self.list_hosts), path=path, params={'did_type': 'dataset'})
52
53
 
53
- result = self._send_request(url)
54
+ result = self._send_request(url, method=HTTPMethod.GET)
54
55
  if result.status_code == codes.ok: # pylint: disable-msg=E1101
55
56
  locks = self._load_json_data(result)
56
57
  return locks
@@ -87,7 +88,7 @@ class LockClient(BaseClient):
87
88
  path = '/'.join([self.LOCKS_BASEURL, "bulk_locks_for_dids"])
88
89
  url = build_url(choice(self.list_hosts), path=path)
89
90
 
90
- result = self._send_request(url, type_='POST', data=render_json(dids=dids))
91
+ result = self._send_request(url, method=HTTPMethod.POST, data=render_json(dids=dids))
91
92
  if result.status_code == codes.ok: # pylint: disable-msg=E1101
92
93
  out = []
93
94
  for lock in self._load_json_data(result):
@@ -113,7 +114,7 @@ class LockClient(BaseClient):
113
114
  path = '/'.join([self.LOCKS_BASEURL, rse])
114
115
  url = build_url(choice(self.list_hosts), path=path, params={'did_type': 'dataset'})
115
116
 
116
- result = self._send_request(url)
117
+ result = self._send_request(url, method=HTTPMethod.GET)
117
118
  if result.status_code == codes.ok: # pylint: disable-msg=E1101
118
119
  locks = self._load_json_data(result)
119
120
  return locks
@@ -19,6 +19,7 @@ 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 HTTPMethod
22
23
  from rucio.common.utils import build_url
23
24
 
24
25
  if TYPE_CHECKING:
@@ -63,7 +64,7 @@ class MetaConventionClient(BaseClient):
63
64
  'value_regexp': value_regexp,
64
65
  'key_type': key_type})
65
66
 
66
- r = self._send_request(url, type_='POST', data=data)
67
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
67
68
 
68
69
  if r.status_code == codes.created:
69
70
  return True
@@ -81,7 +82,7 @@ class MetaConventionClient(BaseClient):
81
82
  """
82
83
  path = self.META_BASEURL + '/'
83
84
  url = build_url(choice(self.list_hosts), path=path)
84
- r = self._send_request(url)
85
+ r = self._send_request(url, method=HTTPMethod.GET)
85
86
  if r.status_code == codes.ok:
86
87
  keys = loads(r.text)
87
88
  return keys
@@ -99,7 +100,7 @@ class MetaConventionClient(BaseClient):
99
100
  """
100
101
  path = '/'.join([self.META_BASEURL, quote_plus(key)]) + '/'
101
102
  url = build_url(choice(self.list_hosts), path=path)
102
- r = self._send_request(url)
103
+ r = self._send_request(url, method=HTTPMethod.GET)
103
104
  if r.status_code == codes.ok:
104
105
  values = loads(r.text)
105
106
  return values
@@ -131,7 +132,7 @@ class MetaConventionClient(BaseClient):
131
132
  path = '/'.join([self.META_BASEURL, quote_plus(key)]) + '/'
132
133
  data = dumps({'value': value})
133
134
  url = build_url(choice(self.list_hosts), path=path)
134
- r = self._send_request(url, type_='POST', data=data)
135
+ r = self._send_request(url, method=HTTPMethod.POST, data=data)
135
136
  if r.status_code == codes.created:
136
137
  return True
137
138
  else:
@@ -20,6 +20,7 @@ from requests.status_codes import codes
20
20
 
21
21
  from rucio.client.baseclient import BaseClient, choice
22
22
  from rucio.common.config import config_get
23
+ from rucio.common.constants import HTTPMethod
23
24
  from rucio.common.utils import build_url, render_json
24
25
 
25
26
  if TYPE_CHECKING:
@@ -85,7 +86,7 @@ class OpenDataClient(BaseClient):
85
86
  raise ValueError('state and public cannot be provided at the same time.')
86
87
 
87
88
  url = build_url(self.get_opendata_host(public=public), path=path)
88
- r = self._send_request(url, type_='GET', params=params)
89
+ r = self._send_request(url, method=HTTPMethod.GET, params=params)
89
90
  if r.status_code == codes.ok:
90
91
  return json.loads(r.content.decode('utf-8'))
91
92
  else:
@@ -115,7 +116,7 @@ class OpenDataClient(BaseClient):
115
116
  path = '/'.join([self.opendata_private_dids_base_url, quote_plus(scope), quote_plus(name)])
116
117
  url = build_url(self.get_opendata_host(public=False), path=path)
117
118
 
118
- r = self._send_request(url, type_='POST')
119
+ r = self._send_request(url, method=HTTPMethod.POST)
119
120
 
120
121
  if r.status_code == codes.created:
121
122
  return True
@@ -146,7 +147,7 @@ class OpenDataClient(BaseClient):
146
147
  path = '/'.join([self.opendata_private_dids_base_url, quote_plus(scope), quote_plus(name)])
147
148
  url = build_url(self.get_opendata_host(public=False), path=path)
148
149
 
149
- r = self._send_request(url, type_='DEL')
150
+ r = self._send_request(url, method=HTTPMethod.DELETE)
150
151
 
151
152
  if r.status_code == codes.no_content:
152
153
  return True
@@ -162,7 +163,7 @@ class OpenDataClient(BaseClient):
162
163
  state: Optional["OPENDATA_DID_STATE_LITERAL"] = None,
163
164
  meta: Optional[dict] = None,
164
165
  doi: Optional[str] = None,
165
- ) -> bool:
166
+ ) -> dict[str, Any]:
166
167
  """
167
168
  Update an existing Opendata DID in the Opendata catalog.
168
169
 
@@ -198,10 +199,10 @@ class OpenDataClient(BaseClient):
198
199
  if doi is not None:
199
200
  data['doi'] = doi
200
201
 
201
- r = self._send_request(url, type_='PUT', data=render_json(**data))
202
+ r = self._send_request(url, method=HTTPMethod.PUT, data=render_json(**data))
202
203
 
203
204
  if r.status_code == codes.ok:
204
- return True
205
+ return json.loads(r.content.decode('utf-8'))
205
206
  else:
206
207
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
207
208
  raise exc_cls(exc_msg)
@@ -236,7 +237,7 @@ class OpenDataClient(BaseClient):
236
237
  path = '/'.join([base_url, quote_plus(scope), quote_plus(name)])
237
238
  url = build_url(self.get_opendata_host(public=public), path=path)
238
239
 
239
- r = self._send_request(url, type_='GET', params={
240
+ r = self._send_request(url, method=HTTPMethod.GET, params={
240
241
  'files': 1 if include_files else 0,
241
242
  'meta': 1 if include_metadata else 0,
242
243
  'doi': 1 if include_doi else 0,
@@ -18,6 +18,7 @@ from typing import Any
18
18
  from requests.status_codes import codes
19
19
 
20
20
  from rucio.client.baseclient import BaseClient
21
+ from rucio.common.constants import HTTPMethod
21
22
  from rucio.common.utils import build_url
22
23
 
23
24
 
@@ -67,7 +68,7 @@ class PingClient(BaseClient):
67
68
  headers = None
68
69
  path = 'ping'
69
70
  url = build_url(self.host, path=path)
70
- r = self._send_request(url, headers=headers, type_='GET')
71
+ r = self._send_request(url, headers=headers, method=HTTPMethod.GET)
71
72
 
72
73
  if r.status_code == codes.ok:
73
74
  server_info = loads(r.text)