rucio-clients 1.30.5__tar.gz → 1.30.6__tar.gz

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 (93) hide show
  1. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/PKG-INFO +1 -1
  2. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/exception.py +11 -0
  3. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/cms.py +23 -10
  4. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/vcsversion.py +3 -3
  5. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/AUTHORS.rst +0 -0
  6. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/ChangeLog +0 -0
  7. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/LICENSE +0 -0
  8. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/MANIFEST.in +0 -0
  9. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/README.rst +0 -0
  10. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/bin/rucio +0 -0
  11. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/bin/rucio-admin +0 -0
  12. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rse-accounts.cfg.template +0 -0
  13. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rucio.cfg.atlas.client.template +0 -0
  14. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rucio.cfg.template +0 -0
  15. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/__init__.py +0 -0
  16. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/alembicrevision.py +0 -0
  17. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/__init__.py +0 -0
  18. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/accountclient.py +0 -0
  19. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/accountlimitclient.py +0 -0
  20. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/baseclient.py +0 -0
  21. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/client.py +0 -0
  22. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/configclient.py +0 -0
  23. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/credentialclient.py +0 -0
  24. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/didclient.py +0 -0
  25. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/diracclient.py +0 -0
  26. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/downloadclient.py +0 -0
  27. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/exportclient.py +0 -0
  28. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/fileclient.py +0 -0
  29. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/importclient.py +0 -0
  30. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/lifetimeclient.py +0 -0
  31. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/lockclient.py +0 -0
  32. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/metaclient.py +0 -0
  33. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/pingclient.py +0 -0
  34. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/replicaclient.py +0 -0
  35. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/requestclient.py +0 -0
  36. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/rseclient.py +0 -0
  37. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/ruleclient.py +0 -0
  38. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/scopeclient.py +0 -0
  39. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/subscriptionclient.py +0 -0
  40. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/touchclient.py +0 -0
  41. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/uploadclient.py +0 -0
  42. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/__init__.py +0 -0
  43. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/cache.py +0 -0
  44. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/config.py +0 -0
  45. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/constants.py +0 -0
  46. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/constraints.py +0 -0
  47. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/didtype.py +0 -0
  48. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/extra.py +0 -0
  49. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/logging.py +0 -0
  50. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/pcache.py +0 -0
  51. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/policy.py +0 -0
  52. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/__init__.py +0 -0
  53. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/atlas.py +0 -0
  54. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/belleii.py +0 -0
  55. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/domatpc.py +0 -0
  56. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/escape.py +0 -0
  57. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/generic.py +0 -0
  58. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  59. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/icecube.py +0 -0
  60. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/lsst.py +0 -0
  61. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/stomp_utils.py +0 -0
  62. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/stopwatch.py +0 -0
  63. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/test_rucio_server.py +0 -0
  64. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/types.py +0 -0
  65. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/utils.py +0 -0
  66. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/__init__.py +0 -0
  67. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/__init__.py +0 -0
  68. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/cache.py +0 -0
  69. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/dummy.py +0 -0
  70. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/gfal.py +0 -0
  71. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/globus.py +0 -0
  72. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  73. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/http_cache.py +0 -0
  74. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/mock.py +0 -0
  75. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/ngarc.py +0 -0
  76. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/posix.py +0 -0
  77. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/protocol.py +0 -0
  78. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/rclone.py +0 -0
  79. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/rfio.py +0 -0
  80. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/srm.py +0 -0
  81. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/ssh.py +0 -0
  82. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/storm.py +0 -0
  83. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/webdav.py +0 -0
  84. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/xrootd.py +0 -0
  85. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/rsemanager.py +0 -0
  86. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/version.py +0 -0
  87. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
  88. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/pylintrc +0 -0
  89. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/pyproject.toml +0 -0
  90. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/requirements.txt +0 -0
  91. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setup.cfg +0 -0
  92. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setup.py +0 -0
  93. {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setuputil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio-clients
3
- Version: 1.30.5
3
+ Version: 1.30.6
4
4
  Summary: Rucio Client Lite Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -1069,3 +1069,14 @@ class PolicyPackageVersionError(RucioException):
1069
1069
  super(PolicyPackageVersionError, self).__init__(*args, **kwargs)
1070
1070
  self._message = 'Policy package %s is not compatible with this Rucio version' % package
1071
1071
  self.error_code = 103
1072
+
1073
+
1074
+ class InvalidSourceReplicaExpression(RucioException):
1075
+ """
1076
+ Source Replica Expression Considered Invalid
1077
+ """
1078
+
1079
+ def __init__(self, *args, **kwargs):
1080
+ super(InvalidSourceReplicaExpression, self).__init__(*args, **kwargs)
1081
+ self._message = 'Provided Source Replica expression is considered invalid.'
1082
+ self.error_code = 104
@@ -445,21 +445,34 @@ def validate_cms_did(obj):
445
445
  Special checking for DIDs
446
446
  Most of the checking is done with JSON schema, but this check
447
447
  makes sure user LFNs are in the correct /store/user/rucio/USERNAME namespace
448
+ makes sure group LFNs are in the correct /store/group/rucio/GROUPNAME namespace
448
449
  """
449
450
  if not obj:
450
451
  return
451
452
 
452
- lfn = obj['name']
453
453
  did_type = obj['type']
454
+ lfn = obj['name']
454
455
  scope = obj['scope']
455
- if scope.startswith('user.') and did_type == 'FILE':
456
- _, user = scope.split('.', 1)
457
- if not lfn.startswith('/store/user/rucio/%s/' % user):
458
- raise InvalidObject("Problem with LFN %(lfn)s : Not allowed for user %(user)s" % locals())
459
- if lfn.startswith('/store/user') and not lfn.startswith('/store/user/rucio/'):
460
- raise InvalidObject("Problem with LFN %(lfn)s : Legacy user files are not managed with Rucio")
461
- if lfn.startswith('/store/user/rucio') and not scope.startswith('user.'):
462
- raise InvalidObject("Problem with LFN %(lfn)s : Only user scopes allowed in /store/user/rucio")
463
- if scope == 'logs' and did_type == 'FILE':
456
+
457
+ if did_type != "FILE":
458
+ return
459
+
460
+ verify_scope_lfn_match(lfn, scope, "user")
461
+ verify_scope_lfn_match(lfn, scope, "group")
462
+
463
+ if scope == 'logs':
464
464
  if not lfn.startswith('/store/logs/'):
465
465
  raise InvalidObject("Problem with LFN %(lfn)s : Logs must start with /store/logs" % locals())
466
+
467
+
468
+ def verify_scope_lfn_match(lfn, scope, scope_type):
469
+ if lfn.startswith(f'/store/{scope_type}') and not lfn.startswith(f'/store/{scope_type}/rucio/'):
470
+ raise InvalidObject(f"Problem with LFN {lfn} : Legacy {scope_type} files are not managed with Rucio")
471
+
472
+ if lfn.startswith(f'/store/{scope_type}/rucio') and not scope.startswith(f'{scope_type}.'):
473
+ raise InvalidObject(f"Problem with LFN {lfn}: Only {scope_type} scopes allowed in /store/{scope_type}/rucio")
474
+
475
+ if scope.startswith(f'{scope_type}.'):
476
+ _, account = scope.split('.', 1)
477
+ if not lfn.startswith(f'/store/{scope_type}/rucio/{account}/'):
478
+ raise InvalidObject(f"Problem with LFN {lfn} : Not allowed for {scope_type} {account}")
@@ -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': '1.30.5',
7
+ 'version': '1.30.6',
8
8
  'branch_nick': 'release-1.30',
9
- 'revision_id': '12ee0d8af9bdcd871ea646266ad1f47b7092c0f0',
10
- 'revno': 12367
9
+ 'revision_id': '82390181cf8dc300ec59afeb569ad0be93819e7f',
10
+ 'revno': 12373
11
11
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes