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.
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/PKG-INFO +1 -1
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/exception.py +11 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/cms.py +23 -10
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/vcsversion.py +3 -3
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/AUTHORS.rst +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/ChangeLog +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/LICENSE +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/MANIFEST.in +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/README.rst +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/bin/rucio +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/bin/rucio-admin +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rse-accounts.cfg.template +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/etc/rucio.cfg.template +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/alembicrevision.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/accountclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/baseclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/client.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/configclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/didclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/diracclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/exportclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/fileclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/importclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/lockclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/metaclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/pingclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/requestclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/rseclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/touchclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/client/uploadclient.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/cache.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/config.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/constants.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/constraints.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/didtype.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/extra.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/logging.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/pcache.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/policy.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/schema/lsst.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/types.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/common/utils.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio/version.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/pylintrc +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/pyproject.toml +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/requirements.txt +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setup.cfg +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setup.py +0 -0
- {rucio-clients-1.30.5 → rucio-clients-1.30.6}/setuputil.py +0 -0
|
@@ -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
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
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.
|
|
7
|
+
'version': '1.30.6',
|
|
8
8
|
'branch_nick': 'release-1.30',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|