rucio-clients 37.1.0.post1__tar.gz → 37.3.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.3.0}/PKG-INFO +1 -2
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/plugins.py +1 -1
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/utils.py +17 -10
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/vcsversion.py +3 -3
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/setuputil.py +0 -1
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_did.py +26 -1
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_trace.py +29 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/AUTHORS.rst +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/ChangeLog +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/LICENSE +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/MANIFEST.in +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/README.md +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/bin/rucio +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/bin/rucio-admin +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/etc/rucio.cfg.template +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/alembicrevision.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/bin_legacy/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/bin_legacy/rucio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/bin_legacy/rucio_admin.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/command.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/did.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/lifetime_exception.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/rule.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/scope.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/subscription.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/upload.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/cli/utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/accountclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/baseclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/client.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/configclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/credentialclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/didclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/diracclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/downloadclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/exportclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/fileclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/importclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/lockclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/metaconventionsclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/pingclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/replicaclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/requestclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/richclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/rseclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/ruleclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/scopeclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/touchclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/client/uploadclient.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/bittorrent.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/checksum.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/client.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/constants.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/constraints.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/didtype.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/exception.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/extra.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/logging.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/pcache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/policy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/schema/generic.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/stopwatch.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/common/types.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/rse/translation.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio/version.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/pyproject.toml +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/requirements/requirements.client.txt +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/setup.cfg +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/setup.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_abacus_account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_abacus_collection_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_abacus_rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_account.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_account_limits.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_archive.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_auditor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_auditor_hdfs.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_auditor_srmdumps.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_authentication.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_automatix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_bad_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_bb8.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_belleii.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_bin_rucio.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_boolean.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_cli_client_structure.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_clients.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_config.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_conveyor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_conveyor_submitter.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_counter.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_credential.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_curl.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_daemons.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_dataset_replicas.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_db.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_did_meta_plugins.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_dumper.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_filter_engine.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_gateway_external_representation.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_heartbeat.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_hermes.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_identity.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_impl_upload_download.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_import_export.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_judge_cleaner.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_judge_evaluator.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_judge_injector.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_judge_repairer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_lifetime.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_message.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_meta_conventions.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_meta_did.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_module_import.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_monitor.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_multi_vo.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_naming_convention.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_oauthmanager.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_oidc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_permission.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_pfns.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_ping.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_policy_package.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_preparer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_qos.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_quarantined_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_reaper.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_redirect.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_replica.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_replica_recoverer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_replica_sorting.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_request.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_root_proxy.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_expression_parser.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_lfn2path.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_posix.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_srm.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rse_selector.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rucio_server.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_rule.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_scope.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_subscription.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_throttler.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_tpc.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_transfer.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_transfer_plugins.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_undertaker.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_upload.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.0}/tests/test_utils.py +0 -0
- {rucio_clients-37.1.0.post1 → rucio_clients-37.3.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.3.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
|
|
@@ -156,7 +156,7 @@ class PolicyPackageAlgorithms:
|
|
|
156
156
|
# import from utils here to avoid circular import
|
|
157
157
|
|
|
158
158
|
env_name = 'RUCIO_POLICY_PACKAGE' + ('' if not vo else '_' + vo.upper())
|
|
159
|
-
package =
|
|
159
|
+
package = os.getenv(env_name, "")
|
|
160
160
|
if not package:
|
|
161
161
|
package = str(config.config_get('policy', 'package' + ('' if not vo else '-' + vo)))
|
|
162
162
|
|
|
@@ -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.3.0',
|
|
8
8
|
'branch_nick': 'release-37',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': '874ee3e820d3ff64ab941ccfe8a02906b5540066',
|
|
10
|
+
'revno': 13716
|
|
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 """
|
|
@@ -129,3 +129,32 @@ def test_non_existant_event_type_validation_rejection():
|
|
|
129
129
|
obj = json.dumps({"eventType": f"{event_type}"})
|
|
130
130
|
with pytest.raises(TraceValidationSchemaNotFound):
|
|
131
131
|
validate_schema(obj)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def test_trace_no_data(rest_client):
|
|
135
|
+
"""
|
|
136
|
+
TRACE (REST): submit a trace via POST with no data
|
|
137
|
+
"""
|
|
138
|
+
response = rest_client.post('/traces/', data=None, content_type=[('Content-Type', 'application/octet-stream')])
|
|
139
|
+
assert response.status_code == 400
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def test_trace_sent_json_dump(rest_client):
|
|
143
|
+
"""
|
|
144
|
+
TRACE (REST): submit a trace identically to how it is sent in utils
|
|
145
|
+
"""
|
|
146
|
+
trace_data = {
|
|
147
|
+
"uuid": str(uuid.uuid4()),
|
|
148
|
+
"string": "deadbeef",
|
|
149
|
+
"hex": 0xDEADBEEF,
|
|
150
|
+
"int": 3,
|
|
151
|
+
"float": 3.14,
|
|
152
|
+
"long": 314314314314314314,
|
|
153
|
+
"timestamp": time.time(),
|
|
154
|
+
"datetime_str": str(
|
|
155
|
+
datetime.datetime.now().astimezone(datetime.timezone.utc)
|
|
156
|
+
),
|
|
157
|
+
"boolean": True
|
|
158
|
+
}
|
|
159
|
+
response = rest_client.post('/traces/', data=json.dumps(trace_data))
|
|
160
|
+
assert response.status_code == 201
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.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
|
{rucio_clients-37.1.0.post1 → rucio_clients-37.3.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.3.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
|