rucio-clients 1.31.4__tar.gz → 1.31.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.31.4 → rucio-clients-1.31.6}/PKG-INFO +1 -1
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/bin/rucio +31 -5
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/didclient.py +7 -7
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/utils.py +2 -1
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/vcsversion.py +3 -3
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/AUTHORS.rst +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/ChangeLog +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/LICENSE +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/MANIFEST.in +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/README.rst +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/bin/rucio-admin +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/etc/rse-accounts.cfg.template +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/etc/rucio.cfg.template +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/alembicrevision.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/accountclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/baseclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/client.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/configclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/diracclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/exportclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/fileclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/importclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/lockclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/metaclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/pingclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/requestclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/rseclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/touchclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/client/uploadclient.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/cache.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/config.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/constants.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/constraints.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/didtype.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/exception.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/extra.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/logging.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/pcache.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/policy.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/cms.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/schema/lsst.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/common/types.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio/version.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/pylintrc +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/pyproject.toml +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/requirements.txt +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/setup.cfg +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/setup.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/setuputil.py +0 -0
- {rucio-clients-1.31.4 → rucio-clients-1.31.6}/tools/merge_rucio_configs.py +0 -0
|
@@ -243,6 +243,19 @@ def get_client(args):
|
|
|
243
243
|
return client
|
|
244
244
|
|
|
245
245
|
|
|
246
|
+
def __resolve_containers_to_datasets(scope, name, client):
|
|
247
|
+
"""
|
|
248
|
+
Helper function to resolve a container into its dataset content.
|
|
249
|
+
"""
|
|
250
|
+
datasets = []
|
|
251
|
+
for did in client.list_content(scope, name):
|
|
252
|
+
if did['type'] == 'DATASET':
|
|
253
|
+
datasets.append({'scope': did['scope'], 'name': did['name']})
|
|
254
|
+
elif did['type'] == 'CONTAINER':
|
|
255
|
+
datasets.extend(__resolve_containers_to_datasets(did['scope'], did['name'], client))
|
|
256
|
+
return datasets
|
|
257
|
+
|
|
258
|
+
|
|
246
259
|
@exception_handler
|
|
247
260
|
def ping(args):
|
|
248
261
|
"""
|
|
@@ -1728,7 +1741,11 @@ def add_lifetime_exception(args):
|
|
|
1728
1741
|
dids_list = []
|
|
1729
1742
|
containers = []
|
|
1730
1743
|
datasets = []
|
|
1731
|
-
error_types = ['Total DIDs',
|
|
1744
|
+
error_types = ['Total DIDs',
|
|
1745
|
+
'DID not submitted because it is a file',
|
|
1746
|
+
'DID that are containers and were resolved',
|
|
1747
|
+
'DID not submitted because it is not part of the lifetime campaign',
|
|
1748
|
+
'DID successfully submitted including the one from containers resolved']
|
|
1732
1749
|
for did in dids:
|
|
1733
1750
|
scope, name = get_scope(did, client)
|
|
1734
1751
|
dids_list.append({'scope': scope, 'name': name})
|
|
@@ -1760,11 +1777,20 @@ def add_lifetime_exception(args):
|
|
|
1760
1777
|
logger.warning('%s:%s does not exist' % (scope, name))
|
|
1761
1778
|
|
|
1762
1779
|
if containers:
|
|
1763
|
-
logger.
|
|
1780
|
+
logger.warning('One or more DIDs are containers. They will be resolved into a list of datasets to request exception. Full list below')
|
|
1764
1781
|
for container in containers:
|
|
1765
|
-
logger.
|
|
1766
|
-
|
|
1767
|
-
|
|
1782
|
+
logger.info('Resolving %s:%s into datasets :' % (container['scope'], container['name']))
|
|
1783
|
+
list_datasets = __resolve_containers_to_datasets(container['scope'], container['name'], client)
|
|
1784
|
+
for chunk in chunks(list_datasets, chunk_limit):
|
|
1785
|
+
for meta in client.get_metadata_bulk(chunk):
|
|
1786
|
+
scope, name = meta['scope'], meta['name']
|
|
1787
|
+
logger.debug('%s:%s' % (scope, name))
|
|
1788
|
+
if not meta['eol_at']:
|
|
1789
|
+
logger.warning('%s:%s is not affected by the lifetime model' % (scope, name))
|
|
1790
|
+
summary[3] += 1
|
|
1791
|
+
else:
|
|
1792
|
+
logger.info('%s:%s will be declared' % (scope, name))
|
|
1793
|
+
datasets.append({'scope': scope, 'name': name})
|
|
1768
1794
|
|
|
1769
1795
|
if not datasets:
|
|
1770
1796
|
logger.error('Nothing to submit')
|
|
@@ -85,10 +85,10 @@ class DIDClient(BaseClient):
|
|
|
85
85
|
|
|
86
86
|
:param scope: The scope name.
|
|
87
87
|
:param name: The data identifier name.
|
|
88
|
-
:
|
|
88
|
+
:param type: The data identifier type (file|dataset|container).
|
|
89
89
|
:param statuses: Dictionary with statuses, e.g.g {'monotonic':True}.
|
|
90
|
-
:meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
|
|
91
|
-
:rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
|
|
90
|
+
:param meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
|
|
91
|
+
:param rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
|
|
92
92
|
:param lifetime: DID's lifetime (in seconds).
|
|
93
93
|
:param dids: The content.
|
|
94
94
|
:param rse: The RSE name when registering replicas.
|
|
@@ -136,8 +136,8 @@ class DIDClient(BaseClient):
|
|
|
136
136
|
:param scope: The scope name.
|
|
137
137
|
:param name: The data identifier name.
|
|
138
138
|
:param statuses: Dictionary with statuses, e.g.g {'monotonic':True}.
|
|
139
|
-
:meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
|
|
140
|
-
:rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
|
|
139
|
+
:param meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
|
|
140
|
+
:param rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
|
|
141
141
|
:param lifetime: DID's lifetime (in seconds).
|
|
142
142
|
:param files: The content.
|
|
143
143
|
:param rse: The RSE name when registering replicas.
|
|
@@ -222,7 +222,7 @@ class DIDClient(BaseClient):
|
|
|
222
222
|
attachments is: [attachment, attachment, ...]
|
|
223
223
|
attachment is: {'scope': scope, 'name': name, 'dids': dids}
|
|
224
224
|
dids is: [{'scope': scope, 'name': name}, ...]
|
|
225
|
-
|
|
225
|
+
:param ignore_duplicate: If True, ignore duplicate entries.
|
|
226
226
|
"""
|
|
227
227
|
path = '/'.join([self.DIDS_BASEURL, 'attachments'])
|
|
228
228
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -306,7 +306,7 @@ class DIDClient(BaseClient):
|
|
|
306
306
|
|
|
307
307
|
:param scope: The scope name.
|
|
308
308
|
:param name: The dataset name.
|
|
309
|
-
:param
|
|
309
|
+
:param cnts: The content.
|
|
310
310
|
"""
|
|
311
311
|
return self.attach_dids(scope=scope, name=name, dids=cnts)
|
|
312
312
|
|
|
@@ -1841,7 +1841,8 @@ def check_policy_package_version(package):
|
|
|
1841
1841
|
# package is not versioned
|
|
1842
1842
|
return
|
|
1843
1843
|
supported_version = module.SUPPORTED_VERSION if isinstance(module.SUPPORTED_VERSION, list) else [module.SUPPORTED_VERSION]
|
|
1844
|
-
|
|
1844
|
+
components = 2 if version_string().startswith("1.") else 1
|
|
1845
|
+
current_version = ".".join(version_string().split(".")[:components])
|
|
1845
1846
|
if current_version not in supported_version:
|
|
1846
1847
|
raise PolicyPackageVersionError(package)
|
|
1847
1848
|
|
|
@@ -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.31.
|
|
7
|
+
'version': '1.31.6',
|
|
8
8
|
'branch_nick': 'release-1.31',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': 'f03a675dfe86c894dbebab8fdb00ee1b5615fd49',
|
|
10
|
+
'revno': 12509
|
|
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
|