rucio-clients 37.1.0.post1__tar.gz → 37.2.0__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-37.1.0.post1 → rucio_clients-37.2.0}/PKG-INFO +1 -2
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/utils.py +17 -10
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/vcsversion.py +3 -3
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/setuputil.py +0 -1
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_did.py +26 -1
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/AUTHORS.rst +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/ChangeLog +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/LICENSE +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/MANIFEST.in +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/README.md +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/bin/rucio +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/bin/rucio-admin +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/etc/rucio.cfg.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/alembicrevision.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/bin_legacy/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/bin_legacy/rucio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/bin_legacy/rucio_admin.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/command.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/did.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/lifetime_exception.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/rule.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/scope.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/subscription.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/upload.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/cli/utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/accountclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/baseclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/client.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/configclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/credentialclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/didclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/diracclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/downloadclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/exportclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/fileclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/importclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/lockclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/metaconventionsclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/pingclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/replicaclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/requestclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/richclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/rseclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/ruleclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/scopeclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/touchclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/uploadclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/bittorrent.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/checksum.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/client.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/constants.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/constraints.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/didtype.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/exception.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/extra.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/logging.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/pcache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/plugins.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/policy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/schema/generic.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/stopwatch.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/types.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/rse/translation.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/version.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/pyproject.toml +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/requirements/requirements.client.txt +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/setup.cfg +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/setup.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_abacus_account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_abacus_collection_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_abacus_rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_account_limits.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_archive.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_auditor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_auditor_hdfs.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_auditor_srmdumps.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_authentication.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_automatix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_bad_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_bb8.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_belleii.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_bin_rucio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_boolean.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_cli_client_structure.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_clients.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_conveyor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_conveyor_submitter.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_counter.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_credential.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_curl.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_daemons.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_dataset_replicas.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_db.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_did_meta_plugins.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_dumper.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_filter_engine.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_gateway_external_representation.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_heartbeat.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_hermes.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_identity.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_impl_upload_download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_import_export.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_judge_cleaner.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_judge_evaluator.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_judge_injector.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_judge_repairer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_lifetime.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_message.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_meta_conventions.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_meta_did.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_module_import.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_monitor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_multi_vo.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_naming_convention.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_oauthmanager.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_oidc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_permission.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_pfns.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_ping.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_policy_package.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_preparer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_qos.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_quarantined_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_reaper.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_redirect.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_replica_recoverer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_replica_sorting.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_request.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_root_proxy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_expression_parser.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_lfn2path.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_posix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_srm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rse_selector.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rucio_server.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_rule.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_scope.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_subscription.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_throttler.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_tpc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_trace.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_transfer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_transfer_plugins.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_undertaker.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_upload.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tools/merge_rucio_configs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rucio-clients
|
|
3
|
-
Version: 37.
|
|
3
|
+
Version: 37.2.0
|
|
4
4
|
Summary: Rucio Client Lite Package
|
|
5
5
|
Home-page: https://rucio.cern.ch/
|
|
6
6
|
Author: Rucio
|
|
@@ -26,7 +26,6 @@ Requires-Dist: dogpile-cache<=1.2.2
|
|
|
26
26
|
Requires-Dist: packaging
|
|
27
27
|
Requires-Dist: tabulate
|
|
28
28
|
Requires-Dist: jsonschema
|
|
29
|
-
Requires-Dist: dataclasses
|
|
30
29
|
Requires-Dist: rich
|
|
31
30
|
Requires-Dist: typing_extensions
|
|
32
31
|
Provides-Extra: ssh
|
|
@@ -595,20 +595,17 @@ class ScopeExtractionAlgorithms(PolicyPackageAlgorithms):
|
|
|
595
595
|
@staticmethod
|
|
596
596
|
def extract_scope_default(did: str, scopes: Optional['Sequence[str]']) -> 'Sequence[str]':
|
|
597
597
|
"""
|
|
598
|
-
Default
|
|
598
|
+
Default scope extraction algorithm. Extracts the scope from the DID.
|
|
599
599
|
|
|
600
600
|
:param did: The DID to extract the scope from.
|
|
601
|
+
:param scopes: Not used in the default algorithm.
|
|
601
602
|
|
|
602
|
-
:returns: A tuple containing the extracted scope and the
|
|
603
|
+
:returns: A tuple containing the extracted scope and the name.
|
|
603
604
|
"""
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
if name.endswith('/'):
|
|
609
|
-
name = name[:-1]
|
|
610
|
-
return scope, name
|
|
611
|
-
else:
|
|
605
|
+
|
|
606
|
+
# This block is ATLAS specific, to be removed in the future.
|
|
607
|
+
# More info at https://github.com/rucio/rucio/pull/7521
|
|
608
|
+
if did.find(':') == -1:
|
|
612
609
|
scope = did.split('.')[0]
|
|
613
610
|
if did.startswith('user') or did.startswith('group'):
|
|
614
611
|
scope = ".".join(did.split('.')[0:2])
|
|
@@ -616,6 +613,16 @@ class ScopeExtractionAlgorithms(PolicyPackageAlgorithms):
|
|
|
616
613
|
did = did[:-1]
|
|
617
614
|
return scope, did
|
|
618
615
|
|
|
616
|
+
parts = did.split(':')
|
|
617
|
+
if len(parts) != 2:
|
|
618
|
+
msg = f"Cannot extract scope and name from DID {did}. The DID should have exactly one colon but found {len(parts)} colons."
|
|
619
|
+
raise RucioException(msg)
|
|
620
|
+
scope, name = parts
|
|
621
|
+
if not scope or not name:
|
|
622
|
+
msg = f"Cannot extract scope and name from DID {did}. Found empty scope or name."
|
|
623
|
+
raise RucioException(msg)
|
|
624
|
+
return scope, name
|
|
625
|
+
|
|
619
626
|
@staticmethod
|
|
620
627
|
def extract_scope_dirac(did: str, scopes: Optional['Sequence[str]']) -> 'Sequence[str]':
|
|
621
628
|
# Default dirac scope extract algorithm. Scope is the second element in the LFN or the first one (VO name)
|
|
@@ -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
|
+
'version': '37.2.0',
|
|
8
8
|
'branch_nick': 'release-37',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': 'ebd2ace1ae33234044fc2d70c35f6ae8f59127ce',
|
|
10
|
+
'revno': 13666
|
|
11
11
|
}
|
|
@@ -17,7 +17,7 @@ from datetime import datetime, timedelta
|
|
|
17
17
|
import pytest
|
|
18
18
|
|
|
19
19
|
from rucio.common import exception
|
|
20
|
-
from rucio.common.exception import DataIdentifierAlreadyExists, DataIdentifierNotFound, FileAlreadyExists, FileConsistencyMismatch, InvalidPath, ScopeNotFound, UnsupportedOperation, UnsupportedStatus
|
|
20
|
+
from rucio.common.exception import DataIdentifierAlreadyExists, DataIdentifierNotFound, DuplicateContent, FileAlreadyExists, FileConsistencyMismatch, InvalidPath, ScopeNotFound, UnsupportedOperation, UnsupportedStatus
|
|
21
21
|
from rucio.common.types import InternalScope
|
|
22
22
|
from rucio.common.utils import generate_uuid
|
|
23
23
|
from rucio.core.did import (
|
|
@@ -180,6 +180,31 @@ class TestDIDCore:
|
|
|
180
180
|
|
|
181
181
|
detach_dids(scope=mock_scope, name=parent_name, dids=files)
|
|
182
182
|
|
|
183
|
+
def test_attach_dids_ignore_duplicates(self, vo, mock_scope, root_account, rse_factory):
|
|
184
|
+
""" DATA IDENTIFIERS (CORE): Attach DIDs with the ignore duplicates flag """
|
|
185
|
+
rse, rse_id = rse_factory.make_mock_rse()
|
|
186
|
+
|
|
187
|
+
parent_name = did_name_generator('container')
|
|
188
|
+
child_name = did_name_generator('dataset')
|
|
189
|
+
|
|
190
|
+
dids_attachment = [{'scope': mock_scope, 'name': child_name}]
|
|
191
|
+
|
|
192
|
+
add_did(scope=mock_scope, name=parent_name, did_type=DIDType.CONTAINER, account=root_account)
|
|
193
|
+
add_did(scope=mock_scope, name=child_name, did_type=DIDType.DATASET, account=root_account)
|
|
194
|
+
|
|
195
|
+
# Attach once
|
|
196
|
+
attach_dids(scope=mock_scope, name=parent_name, rse_id=rse_id, dids=dids_attachment, account=root_account,
|
|
197
|
+
ignore_duplicate=True)
|
|
198
|
+
|
|
199
|
+
# Attach again with ignore_duplicate flag, should work
|
|
200
|
+
attach_dids(scope=mock_scope, name=parent_name, rse_id=rse_id, dids=dids_attachment, account=root_account,
|
|
201
|
+
ignore_duplicate=True)
|
|
202
|
+
|
|
203
|
+
# Attach again without the flag, should produce error
|
|
204
|
+
with pytest.raises(DuplicateContent):
|
|
205
|
+
attach_dids(scope=mock_scope, name=parent_name, rse_id=rse_id, dids=dids_attachment, account=root_account,
|
|
206
|
+
ignore_duplicate=False)
|
|
207
|
+
|
|
183
208
|
@pytest.mark.dirty
|
|
184
209
|
def test_add_did_to_followed(self, mock_scope, root_account):
|
|
185
210
|
""" DATA IDENTIFIERS (CORE): Mark a did as followed """
|
|
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
|
{rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/client/metaconventionsclient.py
RENAMED
|
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
|
{rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/lib/rucio/common/schema/generic_multi_vo.py
RENAMED
|
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
|
{rucio_clients-37.1.0.post1 → rucio_clients-37.2.0}/tests/test_gateway_external_representation.py
RENAMED
|
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
|