rucio-clients 34.0.0rc2__tar.gz → 34.1.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-34.0.0rc2 → rucio-clients-34.1.0}/PKG-INFO +1 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/bin/rucio +23 -15
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/bin/rucio-admin +24 -14
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/__init__.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/alembicrevision.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/__init__.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/accountclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/accountlimitclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/baseclient.py +8 -11
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/client.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/configclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/credentialclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/didclient.py +22 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/diracclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/downloadclient.py +3 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/exportclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/fileclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/importclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/lifetimeclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/lockclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/metaconventionsclient.py +6 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/pingclient.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/replicaclient.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/requestclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/rseclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/ruleclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/scopeclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/subscriptionclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/touchclient.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/client/uploadclient.py +17 -8
- {rucio-clients-34.0.0rc2/lib/rucio/rse/protocols → rucio-clients-34.1.0/lib/rucio/common}/__init__.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/cache.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/config.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/constants.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/constraints.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/didtype.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/exception.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/extra.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/logging.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/pcache.py +4 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/plugins.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/policy.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/__init__.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/atlas.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/belleii.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/cms.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/domatpc.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/escape.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/generic.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/generic_multi_vo.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/icecube.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/schema/lsst.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/stomp_utils.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/stopwatch.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/test_rucio_server.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/types.py +6 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/common/utils.py +8 -9
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/__init__.py +3 -4
- {rucio-clients-34.0.0rc2/lib/rucio/common → rucio-clients-34.1.0/lib/rucio/rse/protocols}/__init__.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/bittorrent.py +3 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/cache.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/dummy.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/gfal.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/globus.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/gsiftp.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/http_cache.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/mock.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/ngarc.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/posix.py +4 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/protocol.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/rclone.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/rfio.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/srm.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/ssh.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/storm.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/webdav.py +5 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/protocols/xrootd.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/rse/rsemanager.py +2 -4
- rucio-clients-34.1.0/lib/rucio/vcsversion.py +11 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio/version.py +0 -1
- rucio-clients-34.1.0/pyproject.toml +61 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/setup.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/setuputil.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_abacus_account.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_abacus_collection_replica.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_abacus_rse.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_account.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_account_limits.py +1 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_api_external_representation.py +4 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_archive.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_auditor.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_auditor_hdfs.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_auditor_srmdumps.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_authentication.py +6 -8
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_automatix.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_bad_replica.py +8 -11
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_bb8.py +9 -9
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_belleii.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_bin_rucio.py +14 -11
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_boolean.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_clients.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_common_types.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_config.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_conveyor.py +22 -21
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_conveyor_submitter.py +26 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_counter.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_credential.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_curl.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_daemons.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_dataset_replicas.py +5 -7
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_db.py +4 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_did.py +83 -12
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_did_meta_plugins.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_didtype.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_download.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_dumper.py +4 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_dumper_consistency.py +1 -7
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_dumper_data_model.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_dumper_path_parsing.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_filter_engine.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_heartbeat.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_hermes.py +4 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_identity.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_impl_upload_download.py +3 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_import_export.py +7 -10
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_judge_cleaner.py +3 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_judge_evaluator.py +3 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_judge_injector.py +5 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_judge_repairer.py +7 -8
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_lifetime.py +6 -8
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_message.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_meta_conventions.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_meta_did.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_module_import.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_monitor.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_multi_vo.py +10 -10
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_naming_convention.py +1 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_oauthmanager.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_oidc.py +5 -10
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_permission.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_pfns.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_ping.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_preparer.py +4 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_qos.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_quarantined_replica.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_reaper.py +5 -7
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_redirect.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_replica.py +8 -15
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_replica_recoverer.py +5 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_replica_sorting.py +6 -6
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_request.py +4 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_root_proxy.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse.py +27 -19
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_expression_parser.py +2 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_lfn2path.py +1 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_gfal2.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_gfal2_impl.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_posix.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_rclone.py +3 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_rsync.py +3 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_srm.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_ssh.py +3 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_webdav.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_protocol_xrootd.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rse_selector.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rucio_server.py +0 -1
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_rule.py +44 -17
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_schema_cms.py +0 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_scope.py +3 -4
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_subscription.py +25 -28
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_throttler.py +14 -8
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_tpc.py +9 -10
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_trace.py +5 -5
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_transfer.py +11 -11
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_transfer_plugins.py +7 -10
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_undertaker.py +2 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_upload.py +2 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tests/test_utils.py +1 -2
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/tools/merge_rucio_configs.py +2 -5
- rucio-clients-34.0.0rc2/lib/rucio/vcsversion.py +0 -11
- rucio-clients-34.0.0rc2/pyproject.toml +0 -3
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/AUTHORS.rst +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/ChangeLog +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/LICENSE +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/MANIFEST.in +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/README.rst +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/etc/rucio.cfg.template +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/pylintrc +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/requirements.txt +0 -0
- {rucio-clients-34.0.0rc2 → rucio-clients-34.1.0}/setup.cfg +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
2
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
4
3
|
#
|
|
5
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -27,27 +26,40 @@ import time
|
|
|
27
26
|
import traceback
|
|
28
27
|
import unittest
|
|
29
28
|
import uuid
|
|
29
|
+
from configparser import NoOptionError, NoSectionError
|
|
30
30
|
from copy import deepcopy
|
|
31
31
|
from datetime import datetime
|
|
32
32
|
from functools import wraps
|
|
33
33
|
|
|
34
|
-
from configparser import NoOptionError, NoSectionError
|
|
35
34
|
from tabulate import tabulate
|
|
36
35
|
|
|
37
36
|
# rucio module has the same name as this executable module, so this rule fails. pylint: disable=no-name-in-module
|
|
38
37
|
from rucio import version
|
|
39
38
|
from rucio.client import Client
|
|
40
39
|
from rucio.common.config import config_get, config_get_float
|
|
41
|
-
from rucio.common.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
from rucio.common.constants import ReplicaState
|
|
41
|
+
from rucio.common.exception import (
|
|
42
|
+
AccessDenied,
|
|
43
|
+
CannotAuthenticate,
|
|
44
|
+
DataIdentifierAlreadyExists,
|
|
45
|
+
DataIdentifierNotFound,
|
|
46
|
+
DIDFilterSyntaxError,
|
|
47
|
+
DuplicateContent,
|
|
48
|
+
DuplicateCriteriaInDIDFilter,
|
|
49
|
+
DuplicateRule,
|
|
50
|
+
InputValidationError,
|
|
51
|
+
InvalidObject,
|
|
52
|
+
InvalidRSEExpression,
|
|
53
|
+
InvalidType,
|
|
54
|
+
MissingDependency,
|
|
55
|
+
RSENotFound,
|
|
56
|
+
RucioException,
|
|
57
|
+
RuleNotFound,
|
|
58
|
+
UnsupportedOperation,
|
|
59
|
+
)
|
|
46
60
|
from rucio.common.extra import import_extras
|
|
47
61
|
from rucio.common.test_rucio_server import TestRucioServer
|
|
48
|
-
from rucio.common.utils import
|
|
49
|
-
parse_did_filter_from_string_fe, extract_scope, setup_logger, StoreAndDeprecateWarningAction
|
|
50
|
-
from rucio.common.constants import ReplicaState
|
|
62
|
+
from rucio.common.utils import Color, StoreAndDeprecateWarningAction, chunks, detect_client_location, extract_scope, parse_did_filter_from_string, parse_did_filter_from_string_fe, setup_logger, sizefmt
|
|
51
63
|
|
|
52
64
|
EXTRA_MODULES = import_extras(['argcomplete'])
|
|
53
65
|
|
|
@@ -488,7 +500,7 @@ def attach(args):
|
|
|
488
500
|
try:
|
|
489
501
|
f = open(dids[0], 'r')
|
|
490
502
|
dids = [did.rstrip() for did in f.readlines()]
|
|
491
|
-
except
|
|
503
|
+
except OSError:
|
|
492
504
|
logger.error("Can't open file '" + dids[0] + "'.")
|
|
493
505
|
return FAILURE
|
|
494
506
|
|
|
@@ -1334,9 +1346,6 @@ def info_rule(args):
|
|
|
1334
1346
|
|
|
1335
1347
|
Retrieve information about a rule.
|
|
1336
1348
|
"""
|
|
1337
|
-
if args.estimate_ttc:
|
|
1338
|
-
logger.error('"--estimate-ttc" is deprecated!')
|
|
1339
|
-
return FAILURE
|
|
1340
1349
|
client = get_client(args)
|
|
1341
1350
|
if args.examine:
|
|
1342
1351
|
analysis = client.examine_replication_rule(rule_id=args.rule_id)
|
|
@@ -2352,7 +2361,6 @@ You can filter by key/value, e.g.::
|
|
|
2352
2361
|
info_rule_parser.set_defaults(function=info_rule)
|
|
2353
2362
|
info_rule_parser.add_argument(dest='rule_id', action='store', help='The rule ID')
|
|
2354
2363
|
info_rule_parser.add_argument('--examine', dest='examine', action='store_true', help='Detailed analysis of transfer errors')
|
|
2355
|
-
info_rule_parser.add_argument('--estimate-ttc', dest='estimate_ttc', action='store_true', help='Deprecated, specifying this will cause the program to fail.')
|
|
2356
2364
|
|
|
2357
2365
|
# The list_rules command
|
|
2358
2366
|
list_rules_parser = subparsers.add_parser('list-rules', help='List replication rules.', formatter_class=argparse.RawDescriptionHelpFormatter, epilog='''Usage example
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
2
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
4
3
|
#
|
|
5
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -25,25 +24,36 @@ import signal
|
|
|
25
24
|
import sys
|
|
26
25
|
import time
|
|
27
26
|
import traceback
|
|
28
|
-
from
|
|
27
|
+
from configparser import NoOptionError, NoSectionError
|
|
29
28
|
from functools import wraps
|
|
29
|
+
from textwrap import dedent
|
|
30
30
|
|
|
31
|
-
from configparser import NoOptionError, NoSectionError
|
|
32
31
|
from tabulate import tabulate
|
|
33
32
|
|
|
34
33
|
from rucio import version
|
|
35
34
|
from rucio.client import Client
|
|
36
35
|
from rucio.common.config import config_get
|
|
37
|
-
from rucio.common.exception import (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
from rucio.common.exception import (
|
|
37
|
+
AccessDenied,
|
|
38
|
+
AccountNotFound,
|
|
39
|
+
CannotAuthenticate,
|
|
40
|
+
ConfigNotFound,
|
|
41
|
+
DataIdentifierAlreadyExists,
|
|
42
|
+
DataIdentifierNotFound,
|
|
43
|
+
Duplicate,
|
|
44
|
+
DuplicateContent,
|
|
45
|
+
InputValidationError,
|
|
46
|
+
InvalidObject,
|
|
47
|
+
InvalidRSEExpression,
|
|
48
|
+
ReplicaIsLocked,
|
|
49
|
+
ReplicaNotFound,
|
|
50
|
+
RSENotFound,
|
|
51
|
+
RSEOperationNotSupported,
|
|
52
|
+
RuleNotFound,
|
|
53
|
+
ScopeNotFound,
|
|
54
|
+
)
|
|
43
55
|
from rucio.common.extra import import_extras
|
|
44
|
-
from rucio.common.utils import
|
|
45
|
-
render_json, parse_response, extract_scope, clean_surls,
|
|
46
|
-
StoreAndDeprecateWarningAction)
|
|
56
|
+
from rucio.common.utils import StoreAndDeprecateWarningAction, chunks, clean_surls, construct_surl, extract_scope, get_bytes_value_from_string, parse_response, render_json, sizefmt
|
|
47
57
|
from rucio.rse import rsemanager as rsemgr
|
|
48
58
|
|
|
49
59
|
EXTRA_MODULES = import_extras(['argcomplete'])
|
|
@@ -1277,7 +1287,7 @@ def import_data(args):
|
|
|
1277
1287
|
print('There was problem with decoding your file.')
|
|
1278
1288
|
print(error)
|
|
1279
1289
|
return FAILURE
|
|
1280
|
-
except
|
|
1290
|
+
except OSError as error:
|
|
1281
1291
|
print('There was a problem with reading your file.')
|
|
1282
1292
|
print(error)
|
|
1283
1293
|
return FAILURE
|
|
@@ -1309,7 +1319,7 @@ def export_data(args):
|
|
|
1309
1319
|
print('File successfully written.')
|
|
1310
1320
|
print('Data successfully exported to %s' % args.file_path)
|
|
1311
1321
|
return SUCCESS
|
|
1312
|
-
except
|
|
1322
|
+
except OSError as error:
|
|
1313
1323
|
print('There was a problem with reading your file.')
|
|
1314
1324
|
print(error)
|
|
1315
1325
|
return FAILURE
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,8 +17,7 @@ from urllib.parse import quote_plus
|
|
|
18
17
|
|
|
19
18
|
from requests.status_codes import codes
|
|
20
19
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
20
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
21
|
from rucio.common.utils import build_url
|
|
24
22
|
|
|
25
23
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,8 +17,7 @@ from urllib.parse import quote_plus
|
|
|
18
17
|
|
|
19
18
|
from requests.status_codes import codes
|
|
20
19
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
20
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
21
|
from rucio.common.utils import build_url
|
|
24
22
|
|
|
25
23
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -24,24 +23,22 @@ import random
|
|
|
24
23
|
import sys
|
|
25
24
|
import time
|
|
26
25
|
from configparser import NoOptionError, NoSectionError
|
|
27
|
-
from os import environ, fdopen,
|
|
26
|
+
from os import environ, fdopen, geteuid, makedirs, path
|
|
28
27
|
from shutil import move
|
|
29
28
|
from tempfile import mkstemp
|
|
30
29
|
from urllib.parse import urlparse
|
|
31
30
|
|
|
32
31
|
from dogpile.cache import make_region
|
|
33
|
-
from requests import
|
|
32
|
+
from requests import Response, Session
|
|
34
33
|
from requests.exceptions import ConnectionError
|
|
35
34
|
from requests.status_codes import codes
|
|
36
35
|
|
|
37
36
|
from rucio import version
|
|
38
37
|
from rucio.common import exception
|
|
39
38
|
from rucio.common.config import config_get, config_get_bool, config_get_int
|
|
40
|
-
from rucio.common.exception import
|
|
41
|
-
NoAuthInformation, MissingClientParameter,
|
|
42
|
-
MissingModuleException, ServerConnectionException)
|
|
39
|
+
from rucio.common.exception import CannotAuthenticate, ClientProtocolNotSupported, MissingClientParameter, MissingModuleException, NoAuthInformation, ServerConnectionException
|
|
43
40
|
from rucio.common.extra import import_extras
|
|
44
|
-
from rucio.common.utils import build_url, get_tmp_dir, my_key_generator, parse_response,
|
|
41
|
+
from rucio.common.utils import build_url, get_tmp_dir, my_key_generator, parse_response, setup_logger, ssh_sign
|
|
45
42
|
|
|
46
43
|
EXTRA_MODULES = import_extras(['requests_kerberos'])
|
|
47
44
|
|
|
@@ -70,7 +67,7 @@ def choice(hosts):
|
|
|
70
67
|
return random.choice(hosts)
|
|
71
68
|
|
|
72
69
|
|
|
73
|
-
class BaseClient
|
|
70
|
+
class BaseClient:
|
|
74
71
|
|
|
75
72
|
"""Main client class for accessing Rucio resources. Handles the authentication."""
|
|
76
73
|
|
|
@@ -415,7 +412,7 @@ class BaseClient(object):
|
|
|
415
412
|
if retry > self.request_retries:
|
|
416
413
|
raise
|
|
417
414
|
continue
|
|
418
|
-
except
|
|
415
|
+
except OSError as error:
|
|
419
416
|
# Handle Broken Pipe
|
|
420
417
|
# While in python3 we can directly catch 'BrokenPipeError', in python2 it doesn't exist.
|
|
421
418
|
if getattr(error, 'errno') != errno.EPIPE:
|
|
@@ -862,7 +859,7 @@ class BaseClient(object):
|
|
|
862
859
|
token_file_handler = open(self.token_file, 'r')
|
|
863
860
|
self.auth_token = token_file_handler.readline()
|
|
864
861
|
self.headers['X-Rucio-Auth-Token'] = self.auth_token
|
|
865
|
-
except
|
|
862
|
+
except OSError as error:
|
|
866
863
|
print("I/O error({0}): {1}".format(error.errno, error.strerror))
|
|
867
864
|
except Exception:
|
|
868
865
|
raise
|
|
@@ -893,7 +890,7 @@ class BaseClient(object):
|
|
|
893
890
|
with fdopen(file_d, "w") as f_exp_epoch:
|
|
894
891
|
f_exp_epoch.write(str(self.token_exp_epoch))
|
|
895
892
|
move(file_n, self.token_exp_epoch_file)
|
|
896
|
-
except
|
|
893
|
+
except OSError as error:
|
|
897
894
|
print("I/O error({0}): {1}".format(error.errno, error.strerror))
|
|
898
895
|
except Exception:
|
|
899
896
|
raise
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from json import dumps
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,8 +14,7 @@
|
|
|
15
14
|
|
|
16
15
|
from requests.status_codes import codes
|
|
17
16
|
|
|
18
|
-
from rucio.client.baseclient import BaseClient
|
|
19
|
-
from rucio.client.baseclient import choice
|
|
17
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
20
18
|
from rucio.common.utils import build_url
|
|
21
19
|
|
|
22
20
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,14 +14,14 @@
|
|
|
15
14
|
|
|
16
15
|
from datetime import datetime
|
|
17
16
|
from json import dumps
|
|
17
|
+
from typing import Any, Optional
|
|
18
18
|
from urllib.parse import quote_plus
|
|
19
19
|
|
|
20
20
|
from requests.status_codes import codes
|
|
21
21
|
|
|
22
|
-
from rucio.client.baseclient import BaseClient
|
|
23
|
-
from rucio.client.baseclient import choice
|
|
22
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
24
23
|
from rucio.common.exception import DeprecationError
|
|
25
|
-
from rucio.common.utils import build_url, render_json, render_json_list
|
|
24
|
+
from rucio.common.utils import build_url, date_to_str, render_json, render_json_list
|
|
26
25
|
|
|
27
26
|
|
|
28
27
|
class DIDClient(BaseClient):
|
|
@@ -342,7 +341,7 @@ class DIDClient(BaseClient):
|
|
|
342
341
|
exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
|
|
343
342
|
raise exc_cls(exc_msg)
|
|
344
343
|
|
|
345
|
-
def list_files(self, scope, name, long=None):
|
|
344
|
+
def list_files(self, scope: str, name: str, long: Optional[bool] = None):
|
|
346
345
|
"""
|
|
347
346
|
List data identifier file contents.
|
|
348
347
|
|
|
@@ -364,6 +363,24 @@ class DIDClient(BaseClient):
|
|
|
364
363
|
exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
|
|
365
364
|
raise exc_cls(exc_msg)
|
|
366
365
|
|
|
366
|
+
def bulk_list_files(self, dids: list[dict[str, Any]]):
|
|
367
|
+
"""
|
|
368
|
+
List data identifier file contents.
|
|
369
|
+
|
|
370
|
+
:param dids: The list of DIDs.
|
|
371
|
+
"""
|
|
372
|
+
|
|
373
|
+
data = {'dids': dids}
|
|
374
|
+
path = '/'.join([self.DIDS_BASEURL, 'bulkfiles'])
|
|
375
|
+
url = build_url(choice(self.list_hosts), path=path)
|
|
376
|
+
|
|
377
|
+
r = self._send_request(url, type_='POST', data=dumps(data), stream=True)
|
|
378
|
+
if r.status_code == codes.ok:
|
|
379
|
+
return self._load_json_data(r)
|
|
380
|
+
else:
|
|
381
|
+
exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
|
|
382
|
+
raise exc_cls(exc_msg)
|
|
383
|
+
|
|
367
384
|
def get_did(self, scope, name, dynamic=False, dynamic_depth=None):
|
|
368
385
|
"""
|
|
369
386
|
Retrieve a single data identifier.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from json import dumps
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -23,18 +22,16 @@ import shutil
|
|
|
23
22
|
import signal
|
|
24
23
|
import subprocess
|
|
25
24
|
import time
|
|
26
|
-
from queue import
|
|
25
|
+
from queue import Empty, Queue, deque
|
|
27
26
|
from threading import Thread
|
|
28
27
|
|
|
29
28
|
from rucio import version
|
|
30
29
|
from rucio.client.client import Client
|
|
31
30
|
from rucio.common.config import config_get
|
|
32
31
|
from rucio.common.didtype import DID
|
|
33
|
-
from rucio.common.exception import
|
|
32
|
+
from rucio.common.exception import InputValidationError, NoFilesDownloaded, NotAllFilesDownloaded, RucioException
|
|
34
33
|
from rucio.common.pcache import Pcache
|
|
35
|
-
from rucio.common.utils import GLOBALLY_SUPPORTED_CHECKSUMS,
|
|
36
|
-
from rucio.common.utils import adler32, detect_client_location, generate_uuid, parse_replicas_from_string, \
|
|
37
|
-
send_trace, sizefmt, execute, parse_replicas_from_file, extract_scope
|
|
34
|
+
from rucio.common.utils import CHECKSUM_ALGO_DICT, GLOBALLY_SUPPORTED_CHECKSUMS, PREFERRED_CHECKSUM, adler32, detect_client_location, execute, extract_scope, generate_uuid, parse_replicas_from_file, parse_replicas_from_string, send_trace, sizefmt
|
|
38
35
|
from rucio.rse import rsemanager as rsemgr
|
|
39
36
|
|
|
40
37
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,8 +14,7 @@
|
|
|
15
14
|
|
|
16
15
|
from requests.status_codes import codes
|
|
17
16
|
|
|
18
|
-
from rucio.client.baseclient import BaseClient
|
|
19
|
-
from rucio.client.baseclient import choice
|
|
17
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
20
18
|
from rucio.common.utils import build_url, parse_response
|
|
21
19
|
|
|
22
20
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,8 +17,7 @@ from urllib.parse import quote_plus
|
|
|
18
17
|
|
|
19
18
|
from requests.status_codes import codes
|
|
20
19
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
20
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
21
|
from rucio.common.utils import build_url
|
|
24
22
|
|
|
25
23
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,8 +14,7 @@
|
|
|
15
14
|
|
|
16
15
|
from requests.status_codes import codes
|
|
17
16
|
|
|
18
|
-
from rucio.client.baseclient import BaseClient
|
|
19
|
-
from rucio.client.baseclient import choice
|
|
17
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
20
18
|
from rucio.common.utils import build_url, render_json
|
|
21
19
|
|
|
22
20
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from json import loads
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url, render_json
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from urllib.parse import quote_plus
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url, render_json
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -14,15 +13,16 @@
|
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
16
15
|
from json import dumps, loads
|
|
16
|
+
from typing import TYPE_CHECKING, Optional, Union
|
|
17
17
|
from urllib.parse import quote_plus
|
|
18
18
|
|
|
19
19
|
from requests.status_codes import codes
|
|
20
20
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
21
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
22
|
from rucio.common.utils import build_url
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from rucio.db.sqla.constants import KeyType
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class MetaConventionClient(BaseClient):
|
|
@@ -31,7 +31,7 @@ class MetaConventionClient(BaseClient):
|
|
|
31
31
|
|
|
32
32
|
META_BASEURL = 'meta_conventions'
|
|
33
33
|
|
|
34
|
-
def add_key(self, key: str, key_type: Union[KeyType, str], value_type: Optional[str] = None, value_regexp: Optional[str] = None) -> Optional[bool]:
|
|
34
|
+
def add_key(self, key: str, key_type: Union['KeyType', str], value_type: Optional[str] = None, value_regexp: Optional[str] = None) -> Optional[bool]:
|
|
35
35
|
"""
|
|
36
36
|
Sends the request to add an allowed key for DID metadata (update the DID Metadata Conventions table with a new key).
|
|
37
37
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -19,9 +18,8 @@ from urllib.parse import quote_plus
|
|
|
19
18
|
|
|
20
19
|
from requests.status_codes import codes
|
|
21
20
|
|
|
22
|
-
from rucio.client.baseclient import BaseClient
|
|
23
|
-
from rucio.
|
|
24
|
-
from rucio.common.utils import build_url, render_json, chunks
|
|
21
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
|
+
from rucio.common.utils import build_url, chunks, render_json
|
|
25
23
|
|
|
26
24
|
|
|
27
25
|
class ReplicaClient(BaseClient):
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from urllib.parse import quote_plus
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,8 +17,7 @@ from urllib.parse import quote
|
|
|
18
17
|
|
|
19
18
|
from requests.status_codes import codes
|
|
20
19
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
20
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
21
|
from rucio.common.utils import build_url
|
|
24
22
|
|
|
25
23
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -19,8 +18,7 @@ from urllib.parse import quote_plus
|
|
|
19
18
|
|
|
20
19
|
from requests.status_codes import codes
|
|
21
20
|
|
|
22
|
-
from rucio.client.baseclient import BaseClient
|
|
23
|
-
from rucio.client.baseclient import choice
|
|
21
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
24
22
|
from rucio.common.utils import build_url
|
|
25
23
|
|
|
26
24
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,8 +17,7 @@ from urllib.parse import quote_plus
|
|
|
18
17
|
|
|
19
18
|
from requests.status_codes import codes
|
|
20
19
|
|
|
21
|
-
from rucio.client.baseclient import BaseClient
|
|
22
|
-
from rucio.client.baseclient import choice
|
|
20
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
23
21
|
from rucio.common.utils import build_url
|
|
24
22
|
|
|
25
23
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from json import dumps
|
|
|
17
16
|
|
|
18
17
|
from requests.status_codes import codes
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.utils import build_url
|
|
23
21
|
|
|
24
22
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
# Copyright European Organization for Nuclear Research (CERN) since 2012
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,8 +16,7 @@ from json import dumps
|
|
|
17
16
|
|
|
18
17
|
from requests import post
|
|
19
18
|
|
|
20
|
-
from rucio.client.baseclient import BaseClient
|
|
21
|
-
from rucio.client.baseclient import choice
|
|
19
|
+
from rucio.client.baseclient import BaseClient, choice
|
|
22
20
|
from rucio.common.exception import RucioException, UnsupportedDIDType
|
|
23
21
|
|
|
24
22
|
|