rucio 35.4.0__tar.gz → 35.5.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 might be problematic. Click here for more details.
- {rucio-35.4.0 → rucio-35.5.0}/PKG-INFO +1 -1
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-replica-recoverer +3 -3
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/didclient.py +2 -2
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/subscription.py +19 -14
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/sautils.py +10 -2
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/fts3.py +3 -4
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/fts3_plugins.py +7 -5
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/vcsversion.py +3 -3
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -1
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_transfer_plugins.py +40 -4
- {rucio-35.4.0 → rucio-35.5.0}/AUTHORS.rst +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/ChangeLog +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/LICENSE +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/MANIFEST.in +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/README.md +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-account +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-collection-replica +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-abacus-rse +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-admin +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-atropos +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-auditor +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-automatix +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-bb8 +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-c3po +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-cache-client +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-cache-consumer +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-finisher +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-poller +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-preparer +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-receiver +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-stager +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-submitter +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-conveyor-throttler +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-dark-reaper +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-dumper +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-follower +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-hermes +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-cleaner +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-evaluator +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-injector +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-judge-repairer +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-kronos +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-minos +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-minos-temporary-expiration +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-necromancer +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-oauth-manager +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-reaper +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-rse-decommissioner +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-storage-consistency-actions +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-transmogrifier +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/bin/rucio-undertaker +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/alembic.ini.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/alembic_offline.ini.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/globus-config.yml.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/ldap.cfg.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/rucio.cfg.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/etc/rucio_multi_vo.cfg.template +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/alembicrevision.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/accountclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/baseclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/client.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/configclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/diracclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/exportclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/fileclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/importclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/lockclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/metaconventionsclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/pingclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/requestclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/rseclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/touchclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/client/uploadclient.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/cache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/constants.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/constraints.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/didtype.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/consistency.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/data_models.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/exception.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/extra.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/logging.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/pcache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/plugins.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/policy.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/types.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/common/utils.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account_counter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/account_limit.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/authentication.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/credential.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/dirac.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/distance.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/exporter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/heartbeat.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/identity.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/importer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/lifetime_exception.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/lock.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/message.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/meta_conventions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/monitor.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/naming_convention.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/nongrid_trace.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/oidc.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/atlas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/belleii.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/escape.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/generic.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/quarantined_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/replica_sorter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/request.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_counter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_expression_parser.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rse_selector.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rule.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/rule_grouping.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/scope.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/topology.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/trace.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/transfer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/vo.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/core/volatile_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/account.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/abacus/rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/auditor/srmdumps.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/automatix/automatix.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/minos.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/common.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/cache/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/cache/consumer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/common.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/common.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/finisher.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/poller.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/stager.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/submitter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/conveyor/throttler.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/follower/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/follower/follower.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/hermes/hermes.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/injector.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/judge/repairer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/reaper/reaper.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/constants.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b0070f3695c8_add_deletedidmeta_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b5493606bbf5_fix_primary_key_for_subscription_history.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/models.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/session.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/types.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/db/sqla/util.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/account.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/account_limit.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/authentication.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/credential.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/dirac.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/exporter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/heartbeat.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/identity.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/importer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/lifetime_exception.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/lock.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/meta_conventions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/permission.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/quarantined_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/request.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/rule.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/scope.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/subscription.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/gateway/vo.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/common.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/tests/common_server.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/globus.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/globus_library.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/mock.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/transfertool/transfertool.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/version.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/common.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/types.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/main.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/metrics.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio/web/rest/ping.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/lib/rucio.egg-info/SOURCES.txt +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/pylintrc +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/pyproject.toml +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/requirements/requirements.server.txt +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/setup.cfg +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/setup.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/setuputil.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_account.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_collection_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_abacus_rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_account.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_account_limits.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_archive.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor_hdfs.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_auditor_srmdumps.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_authentication.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_automatix.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_bad_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_bb8.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_belleii.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_bin_rucio.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_boolean.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_clients.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_common_types.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_config.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_conveyor.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_conveyor_submitter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_counter.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_credential.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_curl.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_daemons.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_dataset_replicas.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_db.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_did_meta_plugins.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_didtype.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_download.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_consistency.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_data_model.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_dumper_path_parsing.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_filter_engine.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_gateway_external_representation.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_heartbeat.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_hermes.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_identity.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_impl_upload_download.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_import_export.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_cleaner.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_evaluator.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_injector.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_judge_repairer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_lifetime.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_message.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_meta_conventions.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_meta_did.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_module_import.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_monitor.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_multi_vo.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_naming_convention.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_oauthmanager.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_oidc.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_permission.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_pfns.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_ping.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_preparer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_qos.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_quarantined_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_reaper.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_redirect.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica_recoverer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_replica_sorting.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_request.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_root_proxy.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_expression_parser.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_lfn2path.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_posix.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_srm.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rse_selector.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rucio_server.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_rule.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_scope.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_subscription.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_throttler.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_tpc.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_trace.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_transfer.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_undertaker.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_upload.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tests/test_utils.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tools/bootstrap.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tools/merge_rucio_configs.py +0 -0
- {rucio-35.4.0 → rucio-35.5.0}/tools/reset_database.py +0 -0
|
@@ -227,11 +227,11 @@ Note that attempting the use the ``--vos`` argument when in single-VO mode will
|
|
|
227
227
|
$ rucio-replica-recoverer --run-once --vos abc xyz
|
|
228
228
|
2020-07-28 15:21:33,349 5488 WARNING Ignoring argument vos, this is only applicable in a multi-VO setup.
|
|
229
229
|
''', formatter_class=argparse.RawDescriptionHelpFormatter) # NOQA: E501
|
|
230
|
-
parser.add_argument("--nattempts", action="store", default=5, help='Minimum count of suspicious file replica appearance in bad_replicas table. Default value is 5.')
|
|
231
|
-
parser.add_argument("--younger-than", action="store", default=5, help='Consider all file replicas logged in bad_replicas table since specified number of younger-than days. Default value is 5.')
|
|
230
|
+
parser.add_argument("--nattempts", action="store", default=5, type=int, help='Minimum count of suspicious file replica appearance in bad_replicas table. Default value is 5.')
|
|
231
|
+
parser.add_argument("--younger-than", action="store", default=5, type=int, help='Consider all file replicas logged in bad_replicas table since specified number of younger-than days. Default value is 5.')
|
|
232
232
|
parser.add_argument('--vos', nargs='+', type=str, help='Optional list of VOs to consider. Only used in multi-VO mode.')
|
|
233
233
|
parser.add_argument("--run-once", action="store_true", default=False, help='One iteration only.')
|
|
234
|
-
parser.add_argument("--limit-suspicious-files-on-rse", action="store", default=5, help='Maximum number of suspicious replicas on an RSE before that RSE is considered problematic and the suspicious replicas on that RSE are declared "TEMPORARY_UNAVAILABLE". Default value is 5.')
|
|
234
|
+
parser.add_argument("--limit-suspicious-files-on-rse", action="store", default=5, type=int, help='Maximum number of suspicious replicas on an RSE before that RSE is considered problematic and the suspicious replicas on that RSE are declared "TEMPORARY_UNAVAILABLE". Default value is 5.')
|
|
235
235
|
parser.add_argument('--json-file-name', action="store", default="/opt/rucio/etc/suspicious_replica_recoverer.json", type=str, help='Name of the json file that that contains the policies which will be used by the suspicious replica recoverer.')
|
|
236
236
|
parser.add_argument('--sleep-time', action="store", default=3600, type=int, help='Concurrency control: Thread sleep time after each chunk of work.')
|
|
237
237
|
parser.add_argument('--active-mode', action="store_true", default=False, help='If NOT specified, the daemon will run without taking any actions on any files. In either case, the log file will be produced normally.')
|
|
@@ -92,7 +92,7 @@ class DIDClient(BaseClient):
|
|
|
92
92
|
self,
|
|
93
93
|
scope: str,
|
|
94
94
|
name: str,
|
|
95
|
-
did_type: Literal['
|
|
95
|
+
did_type: Literal['DATASET', 'CONTAINER'],
|
|
96
96
|
statuses: Optional["Mapping[str, Any]"] = None,
|
|
97
97
|
meta: Optional["Mapping[str, Any]"] = None,
|
|
98
98
|
rules: Optional["Sequence[Mapping[str, Any]]"] = None,
|
|
@@ -105,7 +105,7 @@ class DIDClient(BaseClient):
|
|
|
105
105
|
|
|
106
106
|
:param scope: The scope name.
|
|
107
107
|
:param name: The data identifier name.
|
|
108
|
-
:param did_type: The data identifier type (
|
|
108
|
+
:param did_type: The data identifier type (dataset|container).
|
|
109
109
|
:param statuses: Dictionary with statuses, e.g. {'monotonic':True}.
|
|
110
110
|
:param meta: Meta-data associated with the data identifier is represented using key/value pairs in a dictionary.
|
|
111
111
|
:param rules: Replication rules associated with the data identifier. A list of dictionaries, e.g., [{'copies': 2, 'rse_expression': 'TIERS1'}, ].
|
|
@@ -17,7 +17,7 @@ import logging
|
|
|
17
17
|
import re
|
|
18
18
|
from configparser import NoOptionError, NoSectionError
|
|
19
19
|
from json import dumps
|
|
20
|
-
from typing import TYPE_CHECKING
|
|
20
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
21
21
|
|
|
22
22
|
from sqlalchemy import and_, delete, func, select
|
|
23
23
|
from sqlalchemy.exc import IntegrityError, NoResultFound, StatementError
|
|
@@ -26,12 +26,11 @@ from sqlalchemy.orm import aliased
|
|
|
26
26
|
from rucio.common.config import config_get_bool
|
|
27
27
|
from rucio.common.exception import RucioException, SubscriptionDuplicate, SubscriptionNotFound
|
|
28
28
|
from rucio.db.sqla import models
|
|
29
|
-
from rucio.db.sqla.constants import SubscriptionState
|
|
29
|
+
from rucio.db.sqla.constants import RuleState, SubscriptionState
|
|
30
30
|
from rucio.db.sqla.session import read_session, stream_session, transactional_session
|
|
31
31
|
|
|
32
32
|
if TYPE_CHECKING:
|
|
33
33
|
from collections.abc import Callable, Iterator
|
|
34
|
-
from typing import Any, Optional
|
|
35
34
|
|
|
36
35
|
from sqlalchemy.orm import Session
|
|
37
36
|
|
|
@@ -46,10 +45,10 @@ def add_subscription(name: str,
|
|
|
46
45
|
filter_: str,
|
|
47
46
|
replication_rules: str,
|
|
48
47
|
comments: str,
|
|
49
|
-
lifetime:
|
|
50
|
-
retroactive:
|
|
51
|
-
dry_run:
|
|
52
|
-
priority:
|
|
48
|
+
lifetime: Optional[int] = None,
|
|
49
|
+
retroactive: Optional[bool] = False,
|
|
50
|
+
dry_run: Optional[bool] = False,
|
|
51
|
+
priority: Optional[int] = 3,
|
|
53
52
|
*, session: "Session") -> str:
|
|
54
53
|
"""
|
|
55
54
|
Adds a new subscription which will be verified against every new added file and dataset
|
|
@@ -151,7 +150,7 @@ def update_subscription(name: str,
|
|
|
151
150
|
keep_history = config_get_bool('subscriptions', 'keep_history')
|
|
152
151
|
except (NoOptionError, NoSectionError, RuntimeError):
|
|
153
152
|
keep_history = False
|
|
154
|
-
values = {'state': SubscriptionState.UPDATED}
|
|
153
|
+
values: dict[str, Any] = {'state': SubscriptionState.UPDATED}
|
|
155
154
|
if 'filter' in metadata and metadata['filter']:
|
|
156
155
|
values['filter'] = dumps(metadata['filter'])
|
|
157
156
|
if 'replication_rules' in metadata and metadata['replication_rules']:
|
|
@@ -212,9 +211,9 @@ def update_subscription(name: str,
|
|
|
212
211
|
|
|
213
212
|
|
|
214
213
|
@stream_session
|
|
215
|
-
def list_subscriptions(name:
|
|
214
|
+
def list_subscriptions(name: Optional[str] = None,
|
|
216
215
|
account: "Optional[InternalAccount]" = None,
|
|
217
|
-
state:
|
|
216
|
+
state: Optional[SubscriptionState] = None,
|
|
218
217
|
*, session: "Session",
|
|
219
218
|
logger: "LoggerFunction" = logging.log) -> "Iterator[SubscriptionType]":
|
|
220
219
|
"""
|
|
@@ -282,7 +281,13 @@ def delete_subscription(subscription_id: str, *, session: "Session") -> None:
|
|
|
282
281
|
|
|
283
282
|
|
|
284
283
|
@stream_session
|
|
285
|
-
def list_subscription_rule_states(
|
|
284
|
+
def list_subscription_rule_states(
|
|
285
|
+
name: Optional[str] = None,
|
|
286
|
+
account: Optional["InternalAccount"] = None,
|
|
287
|
+
*,
|
|
288
|
+
session: "Session",
|
|
289
|
+
logger: "LoggerFunction" = logging.log
|
|
290
|
+
) -> "Iterator[tuple[InternalAccount, str, RuleState, int]]":
|
|
286
291
|
"""Returns a list of with the number of rules per state for a subscription.
|
|
287
292
|
|
|
288
293
|
:param name: Name of the subscription
|
|
@@ -311,7 +316,7 @@ def list_subscription_rule_states(name=None, account=None, *, session: "Session"
|
|
|
311
316
|
)
|
|
312
317
|
|
|
313
318
|
if account:
|
|
314
|
-
if '*' in account.internal:
|
|
319
|
+
if account.internal and '*' in account.internal:
|
|
315
320
|
account_str = account.internal.replace('*', '%')
|
|
316
321
|
stmt = stmt.where(
|
|
317
322
|
subscription.account.like(account_str)
|
|
@@ -332,11 +337,11 @@ def list_subscription_rule_states(name=None, account=None, *, session: "Session"
|
|
|
332
337
|
)
|
|
333
338
|
|
|
334
339
|
for row in session.execute(stmt).all():
|
|
335
|
-
yield row
|
|
340
|
+
yield row._tuple()
|
|
336
341
|
|
|
337
342
|
|
|
338
343
|
@read_session
|
|
339
|
-
def get_subscription_by_id(subscription_id, *, session: "Session"):
|
|
344
|
+
def get_subscription_by_id(subscription_id: str, *, session: "Session") -> "SubscriptionType":
|
|
340
345
|
"""
|
|
341
346
|
Get a specific subscription by id.
|
|
342
347
|
|
|
@@ -17,18 +17,26 @@ SQLAlchemy utilities
|
|
|
17
17
|
|
|
18
18
|
'''
|
|
19
19
|
|
|
20
|
+
from typing import TYPE_CHECKING, Any, Union
|
|
21
|
+
|
|
20
22
|
from sqlalchemy.ext.compiler import compiles
|
|
21
23
|
from sqlalchemy.sql.expression import ClauseElement, Executable
|
|
22
24
|
|
|
25
|
+
if TYPE_CHECKING:
|
|
26
|
+
from sqlalchemy import Table
|
|
27
|
+
from sqlalchemy.engine.interfaces import SQLCompiler
|
|
28
|
+
from sqlalchemy.sql.schema import Column
|
|
29
|
+
from sqlalchemy.sql.selectable import Select
|
|
30
|
+
|
|
23
31
|
|
|
24
32
|
class InsertFromSelect(Executable, ClauseElement):
|
|
25
|
-
def __init__(self, insert_spec, select):
|
|
33
|
+
def __init__(self, insert_spec: "Union[Table, list[Column]]", select: "Select") -> None:
|
|
26
34
|
self.insert_spec = insert_spec
|
|
27
35
|
self.select = select
|
|
28
36
|
|
|
29
37
|
|
|
30
38
|
@compiles(InsertFromSelect)
|
|
31
|
-
def visit_insert_from_select(element, compiler, **kw):
|
|
39
|
+
def visit_insert_from_select(element: InsertFromSelect, compiler: "SQLCompiler", **kw: Any) -> str:
|
|
32
40
|
if isinstance(element.insert_spec, list):
|
|
33
41
|
columns = []
|
|
34
42
|
for column in element.insert_spec:
|
|
@@ -1041,10 +1041,9 @@ class FTS3Transfertool(Transfertool):
|
|
|
1041
1041
|
if isinstance(activity_id, int):
|
|
1042
1042
|
t_file['scitag'] = self.scitags_exp_id << 6 | activity_id
|
|
1043
1043
|
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
t_file = deep_merge_dict(source=plugin_hints, destination=t_file)
|
|
1044
|
+
if t_file['metadata']['dst_type'] == 'TAPE':
|
|
1045
|
+
for plugin in self.tape_metadata_plugins:
|
|
1046
|
+
t_file = deep_merge_dict(source=plugin.hints(t_file['metadata']), destination=t_file)
|
|
1048
1047
|
|
|
1049
1048
|
return t_file
|
|
1050
1049
|
|
|
@@ -62,7 +62,7 @@ class FTS3TapeMetadataPlugin(PolicyPackageAlgorithms):
|
|
|
62
62
|
func=lambda x: cls._activity_hints(cls, x), # type: ignore
|
|
63
63
|
init_func=lambda: cls._init_instance_activity_hints(cls)) # type: ignore
|
|
64
64
|
cls.register(cls.DEFAULT, func=lambda x: cls._default(cls, x)) # type: ignore
|
|
65
|
-
cls.register("test", func=lambda x: cls._collocation(cls
|
|
65
|
+
cls.register("test", func=lambda x: cls._collocation(cls._test_collocation, x))
|
|
66
66
|
|
|
67
67
|
@classmethod
|
|
68
68
|
def register(cls: type[FTS3TapeMetadataPluginType], name: str, func: Callable, init_func: Optional[Callable] = None) -> None:
|
|
@@ -99,17 +99,19 @@ class FTS3TapeMetadataPlugin(PolicyPackageAlgorithms):
|
|
|
99
99
|
|
|
100
100
|
return {"scheduling_hints": {"priority": priority}}
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
@staticmethod
|
|
103
|
+
def _collocation(collocation_func: 'Callable', hints: dict[str, Any]) -> dict[str, dict]:
|
|
103
104
|
"""
|
|
104
|
-
Wraps a '
|
|
105
|
+
Wraps a 'collocation' style plugin for formatting
|
|
105
106
|
|
|
106
107
|
:param collocation_func: Function that defines the collocation rules
|
|
107
108
|
:param hints: kwargs utilized by the collocation rules
|
|
108
109
|
:return: Collocation hints produced by the collocation_func, wrapped
|
|
109
110
|
"""
|
|
110
|
-
return {"collocation_hints": collocation_func(
|
|
111
|
+
return {"collocation_hints": collocation_func(**hints)}
|
|
111
112
|
|
|
112
|
-
|
|
113
|
+
@staticmethod
|
|
114
|
+
def _test_collocation(**kwargs: dict) -> dict[str, Any]:
|
|
113
115
|
return {"0": "", "1": "", "2": "", "3": ""}
|
|
114
116
|
|
|
115
117
|
def _default(self, *hints: dict) -> dict:
|
|
@@ -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': '35.
|
|
7
|
+
'version': '35.5.0',
|
|
8
8
|
'branch_nick': 'release-35-LTS',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': 'f5e7f329eb6baed9096242ee497152cd14464b2c',
|
|
10
|
+
'revno': 13174
|
|
11
11
|
}
|
|
@@ -185,7 +185,6 @@ class UserPass(ErrorHandlingMethodView):
|
|
|
185
185
|
headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate'
|
|
186
186
|
headers.add('Cache-Control', 'post-check=0, pre-check=0')
|
|
187
187
|
headers['Pragma'] = 'no-cache'
|
|
188
|
-
|
|
189
188
|
vo = extract_vo(request.headers)
|
|
190
189
|
account = request.headers.get('X-Rucio-Account', default=None)
|
|
191
190
|
username = request.headers.get('X-Rucio-Username', default=None)
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
import logging
|
|
16
|
+
from unittest.mock import MagicMock
|
|
16
17
|
|
|
17
18
|
import pytest
|
|
18
19
|
|
|
@@ -31,9 +32,14 @@ MAX_POLL_WAIT_SECONDS = 60
|
|
|
31
32
|
TEST_FTS_HOST = "https://fts:8446"
|
|
32
33
|
|
|
33
34
|
|
|
34
|
-
def _make_transfer_path(
|
|
35
|
+
def _make_transfer_path(
|
|
36
|
+
did,
|
|
37
|
+
rse_factory,
|
|
38
|
+
root_account,
|
|
39
|
+
dst_rse_is_tape: bool = True
|
|
40
|
+
):
|
|
35
41
|
_, src_rse_id = rse_factory.make_mock_rse()
|
|
36
|
-
dst_rse, dst_rse_id = rse_factory.make_mock_rse()
|
|
42
|
+
dst_rse, dst_rse_id = rse_factory.make_mock_rse(rse_type="TAPE" if dst_rse_is_tape else "DISK")
|
|
37
43
|
all_rses = [src_rse_id, dst_rse_id]
|
|
38
44
|
distance_core.add_distance(src_rse_id, dst_rse_id, distance=1)
|
|
39
45
|
|
|
@@ -229,8 +235,8 @@ def test_multiple_plugin_concat(file_config_mock, did_factory, rse_factory, root
|
|
|
229
235
|
generated_collocation_hints = job_params["archive_metadata"]["collocation_hints"]
|
|
230
236
|
assert expected_hints["collocation_hints"] == generated_collocation_hints
|
|
231
237
|
|
|
232
|
-
|
|
233
|
-
assert expected_hints["scheduling_hints"] ==
|
|
238
|
+
generated_scheduling_hints = job_params["archive_metadata"]["scheduling_hints"]
|
|
239
|
+
assert expected_hints["scheduling_hints"] == generated_scheduling_hints
|
|
234
240
|
|
|
235
241
|
|
|
236
242
|
@pytest.mark.parametrize("file_config_mock", [
|
|
@@ -284,3 +290,33 @@ def test_include_none_by_default(did_factory, rse_factory, root_account):
|
|
|
284
290
|
|
|
285
291
|
job_params = fts3_tool._file_from_transfer(transfer_path[0], job_params)
|
|
286
292
|
assert "archive_metadata" not in job_params
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def test_no_metadata_if_dest_is_not_tape(did_factory, rse_factory, root_account):
|
|
296
|
+
"""
|
|
297
|
+
If the destination RSE is not tape,
|
|
298
|
+
no tape metadata plugin should run,
|
|
299
|
+
and no archive metadata should be included.
|
|
300
|
+
"""
|
|
301
|
+
|
|
302
|
+
mock_did = did_factory.random_file_did()
|
|
303
|
+
mock_metadata_plugin = MagicMock()
|
|
304
|
+
transfer_path = _make_transfer_path(mock_did, rse_factory, root_account, dst_rse_is_tape=False)
|
|
305
|
+
|
|
306
|
+
fts3_tool = FTS3Transfertool(TEST_FTS_HOST)
|
|
307
|
+
|
|
308
|
+
fts3_tool.tape_metadata_plugins = [mock_metadata_plugin] # type: ignore
|
|
309
|
+
|
|
310
|
+
job_params = build_job_params(
|
|
311
|
+
transfer_path=transfer_path,
|
|
312
|
+
bring_online=None,
|
|
313
|
+
default_lifetime=None,
|
|
314
|
+
archive_timeout_override=None,
|
|
315
|
+
max_time_in_queue=None,
|
|
316
|
+
logger=logging.log,
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
job_params = fts3_tool._file_from_transfer(transfer_path[0], job_params)
|
|
320
|
+
|
|
321
|
+
assert not mock_metadata_plugin.called
|
|
322
|
+
assert "archive_metadata" not in job_params
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|