rucio-clients 32.8.1__tar.gz → 32.8.2__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-32.8.1 → rucio_clients-32.8.2}/PKG-INFO +1 -1
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/uploadclient.py +8 -2
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/vcsversion.py +3 -3
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_upload.py +33 -1
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/AUTHORS.rst +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/ChangeLog +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/LICENSE +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/MANIFEST.in +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/README.rst +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/bin/rucio +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/bin/rucio-admin +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/etc/rse-accounts.cfg.template +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/etc/rucio.cfg.template +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/alembicrevision.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/accountclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/baseclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/client.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/configclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/didclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/diracclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/exportclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/fileclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/importclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/lockclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/metaclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/pingclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/requestclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/rseclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/client/touchclient.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/cache.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/config.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/constants.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/constraints.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/didtype.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/exception.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/extra.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/logging.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/pcache.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/policy.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/cms.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/schema/lsst.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/types.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/common/utils.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio/version.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/pylintrc +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/pyproject.toml +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/requirements.txt +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/setup.cfg +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/setup.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/setuputil.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_abacus_account.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_abacus_collection_replica.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_abacus_rse.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_account.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_account_limits.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_api_external_representation.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_archive.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_auditor.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_auditor_hdfs.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_auditor_srmdumps.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_authentication.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_automatix.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_bad_replica.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_bb8.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_belleii.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_bin_rucio.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_boolean.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_clients.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_common_types.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_config.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_conveyor.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_conveyor_submitter.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_counter.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_credential.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_curl.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_daemons.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_dataset_replicas.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_db.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_did.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_did_meta_plugins.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_didtype.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_download.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_dumper.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_dumper_consistency.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_dumper_data_model.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_dumper_path_parsing.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_filter_engine.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_heartbeat.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_hermes.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_identity.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_impl_upload_download.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_import_export.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_judge_cleaner.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_judge_evaluator.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_judge_injector.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_judge_repairer.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_lifetime.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_message.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_meta.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_meta_did.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_module_import.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_monitor.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_multi_vo.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_naming_convention.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_oauthmanager.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_oidc.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_permission.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_pfns.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_ping.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_preparer.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_qos.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_quarantined_replica.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_reaper.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_redirect.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_replica.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_replica_recoverer.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_replica_sorting.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_request.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_root_proxy.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_expression_parser.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_lfn2path.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_posix.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_srm.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rse_selector.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rucio_server.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_rule.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_schema_cms.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_scope.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_subscription.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_temporary_did.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_throttler.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_tpc.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_trace.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_transfer.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_undertaker.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tests/test_utils.py +0 -0
- {rucio-clients-32.8.1 → rucio_clients-32.8.2}/tools/merge_rucio_configs.py +0 -0
|
@@ -275,7 +275,6 @@ class UploadClient:
|
|
|
275
275
|
state_reason = str(error)
|
|
276
276
|
|
|
277
277
|
if success:
|
|
278
|
-
num_succeeded += 1
|
|
279
278
|
trace['transferEnd'] = time.time()
|
|
280
279
|
trace['clientState'] = 'DONE'
|
|
281
280
|
file['state'] = 'A'
|
|
@@ -285,6 +284,7 @@ class UploadClient:
|
|
|
285
284
|
if summary_file_path:
|
|
286
285
|
summary.append(copy.deepcopy(file))
|
|
287
286
|
|
|
287
|
+
registration_succeeded = True
|
|
288
288
|
if not no_register:
|
|
289
289
|
if register_after_upload:
|
|
290
290
|
self._register_file(file, registered_dataset_dids, ignore_availability=ignore_availability, activity=activity)
|
|
@@ -293,6 +293,7 @@ class UploadClient:
|
|
|
293
293
|
try:
|
|
294
294
|
self.client.update_replicas_states(rse, files=[replica_for_api])
|
|
295
295
|
except Exception as error:
|
|
296
|
+
registration_succeeded = False
|
|
296
297
|
logger(logging.ERROR, 'Failed to update replica state for file {}'.format(basename))
|
|
297
298
|
logger(logging.DEBUG, 'Details: {}'.format(str(error)))
|
|
298
299
|
|
|
@@ -301,8 +302,13 @@ class UploadClient:
|
|
|
301
302
|
try:
|
|
302
303
|
self.client.attach_dids(file['dataset_scope'], file['dataset_name'], [file_did])
|
|
303
304
|
except Exception as error:
|
|
304
|
-
|
|
305
|
+
registration_succeeded = False
|
|
306
|
+
logger(logging.ERROR, 'Failed to attach file to the dataset')
|
|
305
307
|
logger(logging.DEBUG, 'Attaching to dataset {}'.format(str(error)))
|
|
308
|
+
|
|
309
|
+
# only report success if the registration operations succeeded as well
|
|
310
|
+
if registration_succeeded:
|
|
311
|
+
num_succeeded += 1
|
|
306
312
|
else:
|
|
307
313
|
trace['clientState'] = 'FAILED'
|
|
308
314
|
trace['stateReason'] = state_reason
|
|
@@ -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': '32.8.
|
|
7
|
+
'version': '32.8.2',
|
|
8
8
|
'branch_nick': 'release-32-LTS',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': 'b5058c4450243e369b37401bbf98f3b9a1e295ca',
|
|
10
|
+
'revno': 12659
|
|
11
11
|
}
|
|
@@ -22,9 +22,11 @@ from tempfile import TemporaryDirectory
|
|
|
22
22
|
from unittest.mock import patch
|
|
23
23
|
|
|
24
24
|
from rucio.client.downloadclient import DownloadClient
|
|
25
|
+
from rucio.client.client import Client
|
|
25
26
|
from rucio.client.uploadclient import UploadClient
|
|
26
27
|
from rucio.common.config import config_add_section, config_set
|
|
27
|
-
from rucio.common.
|
|
28
|
+
from rucio.common.constants import RseAttr
|
|
29
|
+
from rucio.common.exception import InputValidationError, NoFilesUploaded, NotAllFilesUploaded, ResourceTemporaryUnavailable
|
|
28
30
|
from rucio.common.utils import adler32, generate_uuid
|
|
29
31
|
from rucio.core.rse import add_protocol, add_rse_attribute
|
|
30
32
|
|
|
@@ -403,3 +405,33 @@ def test_upload_file_ignore_availability(rse_factory, scope, upload_client, file
|
|
|
403
405
|
|
|
404
406
|
status = upload_client.upload(item, ignore_availability=True)
|
|
405
407
|
assert status == 0
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
@pytest.fixture
|
|
411
|
+
def upload_client_registration_fail():
|
|
412
|
+
logger = logging.getLogger('upload_client')
|
|
413
|
+
logger.addHandler(logging.StreamHandler())
|
|
414
|
+
logger.setLevel(logging.DEBUG)
|
|
415
|
+
# modify the client object used by upload_client so that replica registration fails
|
|
416
|
+
class RegistrationFailureClient(Client):
|
|
417
|
+
def __init__(self, **args):
|
|
418
|
+
super(RegistrationFailureClient, self).__init__(**args)
|
|
419
|
+
def update_replicas_states(self, rse, files):
|
|
420
|
+
# simulate server timing out
|
|
421
|
+
raise ResourceTemporaryUnavailable
|
|
422
|
+
return UploadClient(logger=logger, _client=RegistrationFailureClient())
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
def test_upload_registration_fail(rse, scope, upload_client_registration_fail, file_factory):
|
|
426
|
+
local_file = file_factory.file_generator()
|
|
427
|
+
fn = os.path.basename(local_file)
|
|
428
|
+
|
|
429
|
+
# upload a file and check that exception is raised
|
|
430
|
+
with pytest.raises(NoFilesUploaded):
|
|
431
|
+
upload_client_registration_fail.upload([{
|
|
432
|
+
'path': local_file,
|
|
433
|
+
'rse': rse,
|
|
434
|
+
'did_scope': scope,
|
|
435
|
+
'did_name': fn,
|
|
436
|
+
'guid': generate_uuid()
|
|
437
|
+
}])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|