rucio 32.3.1__tar.gz → 32.4.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-32.3.1 → rucio-32.4.0}/PKG-INFO +1 -1
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/fts3.py +62 -1
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/vcsversion.py +3 -3
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +10 -1
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_clients.py +1 -40
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_conveyor.py +24 -3
- {rucio-32.3.1 → rucio-32.4.0}/AUTHORS.rst +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/ChangeLog +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/LICENSE +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/MANIFEST.in +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/README.rst +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-abacus-account +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-abacus-collection-replica +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-abacus-rse +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-admin +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-atropos +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-auditor +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-automatix +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-bb8 +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-c3po +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-cache-client +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-cache-consumer +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-finisher +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-poller +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-preparer +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-receiver +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-stager +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-submitter +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-conveyor-throttler +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-dark-reaper +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-dumper +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-follower +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-hermes +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-judge-cleaner +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-judge-evaluator +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-judge-injector +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-judge-repairer +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-kronos +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-light-reaper +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-minos +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-minos-temporary-expiration +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-necromancer +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-oauth-manager +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-reaper +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-replica-recoverer +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-storage-consistency-actions +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-transmogrifier +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/bin/rucio-undertaker +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/alembic.ini.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/alembic_offline.ini.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/globus-config.yml.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/ldap.cfg.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/rucio.cfg.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/etc/rucio_multi_vo.cfg.template +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/alembicrevision.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/account.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/account_limit.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/authentication.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/config.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/credential.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/dirac.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/exporter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/heartbeat.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/identity.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/importer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/lifetime_exception.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/lock.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/permission.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/quarantined_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/request.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/rule.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/scope.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/subscription.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/temporary_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/api/vo.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/accountclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/baseclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/client.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/configclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/didclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/diracclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/exportclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/fileclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/importclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/lockclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/metaclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/pingclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/requestclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/rseclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/touchclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/client/uploadclient.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/cache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/config.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/constants.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/constraints.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/didtype.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/dumper/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/dumper/consistency.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/dumper/data_models.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/exception.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/extra.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/logging.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/pcache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/policy.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/cms.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/schema/lsst.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/types.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/common/utils.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/account.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/account_counter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/account_limit.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/authentication.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/config.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/credential.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/dirac.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/distance.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/exporter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/heartbeat.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/identity.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/importer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/lifetime_exception.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/lock.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/message.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/monitor.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/naming_convention.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/nongrid_trace.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/oidc.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/atlas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/belleii.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/cms.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/escape.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/generic.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/quarantined_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/replica_sorter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/request.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rse_counter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rse_expression_parser.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rse_selector.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rule.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/rule_grouping.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/scope.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/subscription.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/temporary_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/topology.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/trace.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/transfer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/vo.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/core/volatile_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/abacus/account.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/abacus/rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/auditor/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/auditor/srmdumps.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/automatix/automatix.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/badreplicas/minos.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/bb8/common.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/cache/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/cache/consumer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/common.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/common.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/finisher.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/poller.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/stager.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/submitter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/conveyor/throttler.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/follower/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/follower/follower.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/hermes/hermes.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/judge/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/judge/injector.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/judge/repairer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/reaper/light_reaper.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/reaper/reaper.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/storage/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/constants.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/models.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/sautils.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/session.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/types.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/db/sqla/util.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/protocol.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/tests/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/tests/common.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/tests/common_server.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/globus.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/globus_library.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/mock.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/transfertool/transfertool.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/version.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/common.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/tmp_dids.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/main.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio/web/rest/metrics.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/lib/rucio.egg-info/SOURCES.txt +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/pylintrc +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/pyproject.toml +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/requirements.txt +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/setup.cfg +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/setup.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/setuputil.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_abacus_account.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_abacus_collection_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_abacus_rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_account.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_account_limits.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_api_external_representation.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_archive.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_auditor.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_auditor_hdfs.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_auditor_srmdumps.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_authentication.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_automatix.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_bad_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_bb8.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_belleii.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_bin_rucio.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_boolean.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_common_types.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_config.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_conveyor_submitter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_counter.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_credential.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_curl.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_daemons.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_dataset_replicas.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_db.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_did_meta_plugins.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_didtype.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_download.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_dumper.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_dumper_consistency.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_dumper_data_model.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_dumper_path_parsing.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_filter_engine.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_heartbeat.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_hermes.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_identity.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_impl_upload_download.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_import_export.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_judge_cleaner.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_judge_evaluator.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_judge_injector.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_judge_repairer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_lifetime.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_message.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_meta.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_meta_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_module_import.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_monitor.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_multi_vo.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_naming_convention.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_oauthmanager.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_oidc.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_permission.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_pfns.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_ping.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_preparer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_qos.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_quarantined_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_reaper.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_redirect.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_replica.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_replica_recoverer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_replica_sorting.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_request.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_root_proxy.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_expression_parser.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_lfn2path.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_posix.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_srm.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rse_selector.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rucio_server.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_rule.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_schema_cms.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_scope.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_subscription.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_temporary_did.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_throttler.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_tpc.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_trace.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_transfer.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_undertaker.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_upload.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tests/test_utils.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tools/bootstrap.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tools/merge_rucio_configs.py +0 -0
- {rucio-32.3.1 → rucio-32.4.0}/tools/reset_database.py +0 -0
|
@@ -31,7 +31,7 @@ from requests.adapters import ReadTimeout
|
|
|
31
31
|
from requests.packages.urllib3 import disable_warnings # pylint: disable=import-error
|
|
32
32
|
|
|
33
33
|
from rucio.common.cache import make_region_memcached
|
|
34
|
-
from rucio.common.config import config_get, config_get_bool
|
|
34
|
+
from rucio.common.config import config_get, config_get_bool, config_get_int
|
|
35
35
|
from rucio.common.constants import FTS_JOB_TYPE, FTS_STATE, FTS_COMPLETE_STATE
|
|
36
36
|
from rucio.common.exception import TransferToolTimeout, TransferToolWrongAnswer, DuplicateFileTransferSubmission
|
|
37
37
|
from rucio.common.stopwatch import Stopwatch
|
|
@@ -104,6 +104,61 @@ PATH_CHECKSUM_VALIDATION_STRATEGY: dict[tuple[str, str], str] = {
|
|
|
104
104
|
('none', 'none'): 'none',
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
_SCITAGS_NEXT_REFRESH = datetime.datetime.utcnow()
|
|
108
|
+
_SCITAGS_EXP_ID = None
|
|
109
|
+
_SCITAGS_ACTIVITY_IDS = {}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def _scitags_ids(logger: Callable[..., Any] = logging.log) -> "tuple[int | None, dict[str, int]]":
|
|
113
|
+
"""
|
|
114
|
+
Re-fetch if needed and return the scitags ids
|
|
115
|
+
"""
|
|
116
|
+
enabled = config_get_bool('packet-marking', 'enabled', default=False)
|
|
117
|
+
if not enabled:
|
|
118
|
+
return None, {}
|
|
119
|
+
|
|
120
|
+
now = datetime.datetime.utcnow()
|
|
121
|
+
global _SCITAGS_ACTIVITY_IDS
|
|
122
|
+
global _SCITAGS_EXP_ID
|
|
123
|
+
global _SCITAGS_NEXT_REFRESH
|
|
124
|
+
if _SCITAGS_NEXT_REFRESH < now:
|
|
125
|
+
exp_name = config_get('packet-marking', 'exp_name', default='')
|
|
126
|
+
fetch_url = config_get('packet-marking', 'fetch_url', default='https://www.scitags.org/api.json')
|
|
127
|
+
fetch_interval = config_get_int('packet-marking', 'fetch_interval', default=datetime.timedelta(hours=48).seconds)
|
|
128
|
+
fetch_timeout = config_get_int('packet-marking', 'fetch_timeout', default=5)
|
|
129
|
+
|
|
130
|
+
_SCITAGS_NEXT_REFRESH = now + datetime.timedelta(seconds=fetch_interval)
|
|
131
|
+
|
|
132
|
+
if exp_name:
|
|
133
|
+
had_exception = False
|
|
134
|
+
exp_id = None
|
|
135
|
+
activity_ids = {}
|
|
136
|
+
try:
|
|
137
|
+
result = requests.get(fetch_url, timeout=fetch_timeout)
|
|
138
|
+
if result and result.status_code == 200:
|
|
139
|
+
marks = result.json()
|
|
140
|
+
for experiment in marks.get('experiments', []):
|
|
141
|
+
if experiment.get('expName') == exp_name:
|
|
142
|
+
exp_id = experiment.get('expId')
|
|
143
|
+
for activity_dict in experiment.get('activities', []):
|
|
144
|
+
activity_name = activity_dict.get('activityName')
|
|
145
|
+
activity_id = activity_dict.get('activityId')
|
|
146
|
+
if activity_name and activity_id:
|
|
147
|
+
activity_ids[activity_name] = int(activity_id)
|
|
148
|
+
break
|
|
149
|
+
except (requests.exceptions.RequestException, TypeError, ValueError):
|
|
150
|
+
had_exception = True
|
|
151
|
+
logger(logging.WARNING, 'Failed to fetch the scitags markings', exc_info=True)
|
|
152
|
+
|
|
153
|
+
if had_exception:
|
|
154
|
+
# Retry quicker after fetch errors
|
|
155
|
+
_SCITAGS_NEXT_REFRESH = min(_SCITAGS_NEXT_REFRESH, now + datetime.timedelta(minutes=5))
|
|
156
|
+
else:
|
|
157
|
+
_SCITAGS_EXP_ID = exp_id
|
|
158
|
+
_SCITAGS_ACTIVITY_IDS = activity_ids
|
|
159
|
+
|
|
160
|
+
return _SCITAGS_EXP_ID, _SCITAGS_ACTIVITY_IDS
|
|
161
|
+
|
|
107
162
|
|
|
108
163
|
def _pick_cert_file(vo: "Optional[str]") -> "Optional[str]":
|
|
109
164
|
cert = None
|
|
@@ -791,6 +846,8 @@ class FTS3Transfertool(Transfertool):
|
|
|
791
846
|
self.cert = None
|
|
792
847
|
self.verify = True # True is the default setting of a requests.* method
|
|
793
848
|
|
|
849
|
+
self.scitags_exp_id, self.scitags_activity_ids = _scitags_ids(logger=logger)
|
|
850
|
+
|
|
794
851
|
@classmethod
|
|
795
852
|
def _pick_fts_servers(cls, source_rse: "RseData", dest_rse: "RseData"):
|
|
796
853
|
"""
|
|
@@ -882,6 +939,10 @@ class FTS3Transfertool(Transfertool):
|
|
|
882
939
|
'selection_strategy': self.source_strategy if self.source_strategy else _configured_source_strategy(transfer.rws.activity, logger=self.logger),
|
|
883
940
|
'activity': rws.activity
|
|
884
941
|
}
|
|
942
|
+
if isinstance(self.scitags_exp_id, int):
|
|
943
|
+
activity_id = self.scitags_activity_ids.get(rws.activity)
|
|
944
|
+
if isinstance(activity_id, int):
|
|
945
|
+
t_file['metadata']['scitags_id'] = self.scitags_exp_id << 6 | activity_id
|
|
885
946
|
return t_file
|
|
886
947
|
|
|
887
948
|
def submit(self, transfers, job_params, timeout=None):
|
|
@@ -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.
|
|
7
|
+
'version': '32.4.0',
|
|
8
8
|
'branch_nick': 'release-32-LTS',
|
|
9
|
-
'revision_id': '
|
|
10
|
-
'revno':
|
|
9
|
+
'revision_id': 'b32edac1a7e6c5f13575c92112afaa9e4b7e31b8',
|
|
10
|
+
'revno': 12629
|
|
11
11
|
}
|
|
@@ -24,7 +24,7 @@ from rucio.api.did import add_did, add_dids, list_content, list_content_history,
|
|
|
24
24
|
resurrect, get_users_following_did, remove_did_from_followed, add_did_to_followed, delete_metadata, \
|
|
25
25
|
set_metadata_bulk, set_dids_metadata_bulk
|
|
26
26
|
from rucio.api.rule import list_replication_rules, list_associated_replication_rules_for_file
|
|
27
|
-
from rucio.common.exception import ScopeNotFound, DataIdentifierNotFound, DataIdentifierAlreadyExists, \
|
|
27
|
+
from rucio.common.exception import ScopeNotFound, DatabaseException, DataIdentifierNotFound, DataIdentifierAlreadyExists, \
|
|
28
28
|
DuplicateContent, AccessDenied, KeyNotFound, Duplicate, InvalidValueForKey, UnsupportedStatus, \
|
|
29
29
|
UnsupportedOperation, RSENotFound, RuleNotFound, InvalidMetadata, InvalidPath, FileAlreadyExists, InvalidObject, FileConsistencyMismatch
|
|
30
30
|
from rucio.common.utils import render_json, APIEncoder
|
|
@@ -655,6 +655,15 @@ class DIDs(ErrorHandlingMethodView):
|
|
|
655
655
|
return generate_http_error_flask(409, error)
|
|
656
656
|
except AccessDenied as error:
|
|
657
657
|
return generate_http_error_flask(401, error)
|
|
658
|
+
except DatabaseException as error:
|
|
659
|
+
if 'DELETED_DIDS_PK violated' in str(error):
|
|
660
|
+
return generate_http_error_flask(
|
|
661
|
+
status_code=406,
|
|
662
|
+
exc=error.__class__.__name__,
|
|
663
|
+
exc_msg=str('A deleted DID {} with scope {} is reused'.format(name, scope))
|
|
664
|
+
)
|
|
665
|
+
else:
|
|
666
|
+
return generate_http_error_flask(406, error)
|
|
658
667
|
|
|
659
668
|
return 'Created', 201
|
|
660
669
|
|
|
@@ -15,10 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
from datetime import datetime, timedelta
|
|
17
17
|
|
|
18
|
-
from http.server import SimpleHTTPRequestHandler
|
|
19
|
-
from http.server import HTTPServer
|
|
20
18
|
from os import rename
|
|
21
|
-
from threading import Thread
|
|
22
19
|
|
|
23
20
|
import pytest
|
|
24
21
|
|
|
@@ -27,6 +24,7 @@ from rucio.client.client import Client
|
|
|
27
24
|
from rucio.common.config import config_get, config_set
|
|
28
25
|
from rucio.common.exception import CannotAuthenticate, ClientProtocolNotSupported, RucioException
|
|
29
26
|
from rucio.common.utils import execute
|
|
27
|
+
from tests.mocks.mock_http_server import MockServer
|
|
30
28
|
|
|
31
29
|
|
|
32
30
|
@pytest.fixture
|
|
@@ -37,43 +35,6 @@ def client_token_path_override(file_config_mock, function_scope_prefix, tmp_path
|
|
|
37
35
|
config_set('client', 'auth_token_file_path', str(tmp_path / f'{function_scope_prefix}token'))
|
|
38
36
|
|
|
39
37
|
|
|
40
|
-
class MockServer:
|
|
41
|
-
"""
|
|
42
|
-
Start A simple http server in a separate thread to serve as MOCK for testing the client
|
|
43
|
-
"""
|
|
44
|
-
|
|
45
|
-
class Handler(SimpleHTTPRequestHandler):
|
|
46
|
-
def send_code_and_message(self, code, headers, message):
|
|
47
|
-
"""
|
|
48
|
-
Helper which wraps the quite-low-level BaseHTTPRequestHandler primitives and is used to send reponses.
|
|
49
|
-
"""
|
|
50
|
-
self.send_response(code)
|
|
51
|
-
self.send_header("Content-type", "text/plain")
|
|
52
|
-
for name, content in headers.items():
|
|
53
|
-
self.send_header(name, content)
|
|
54
|
-
self.end_headers()
|
|
55
|
-
self.wfile.write(message.encode())
|
|
56
|
-
|
|
57
|
-
def __init__(self, request_handler_cls):
|
|
58
|
-
self.server = HTTPServer(('localhost', 0), request_handler_cls)
|
|
59
|
-
self.thread = Thread(target=self.server.serve_forever)
|
|
60
|
-
self.thread.daemon = True
|
|
61
|
-
|
|
62
|
-
def __enter__(self):
|
|
63
|
-
self.thread.start()
|
|
64
|
-
return self
|
|
65
|
-
|
|
66
|
-
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
67
|
-
self.server.shutdown()
|
|
68
|
-
self.thread.join()
|
|
69
|
-
self.server.server_close()
|
|
70
|
-
|
|
71
|
-
@property
|
|
72
|
-
def base_url(self):
|
|
73
|
-
name, port = self.server.server_address
|
|
74
|
-
return 'http://{}:{}'.format(name, port)
|
|
75
|
-
|
|
76
|
-
|
|
77
38
|
@pytest.mark.usefixtures("client_token_path_override")
|
|
78
39
|
class TestBaseClient:
|
|
79
40
|
""" To test Clients"""
|
|
@@ -49,6 +49,7 @@ from rucio.db.sqla.session import read_session, transactional_session
|
|
|
49
49
|
from rucio.tests.common import skip_rse_tests_with_accounts
|
|
50
50
|
from rucio.transfertool.fts3 import FTS3Transfertool
|
|
51
51
|
from tests.ruciopytest import NoParallelGroups
|
|
52
|
+
from tests.mocks.mock_http_server import MockServer
|
|
52
53
|
|
|
53
54
|
MAX_POLL_WAIT_SECONDS = 60
|
|
54
55
|
TEST_FTS_HOST = 'https://fts:8446'
|
|
@@ -118,6 +119,24 @@ def __get_source(request_id, src_rse_id, scope, name, *, session=None):
|
|
|
118
119
|
.first()
|
|
119
120
|
|
|
120
121
|
|
|
122
|
+
@pytest.fixture
|
|
123
|
+
def scitags_mock(core_config_mock):
|
|
124
|
+
"""Run a mock http server which always returns the content of scitags.json from test/inputs"""
|
|
125
|
+
from tests.inputs import SCITAGS_JSON
|
|
126
|
+
from pathlib import Path
|
|
127
|
+
|
|
128
|
+
class _SendScitagsJson(MockServer.Handler):
|
|
129
|
+
def do_GET(self):
|
|
130
|
+
file_content = Path(SCITAGS_JSON).read_text()
|
|
131
|
+
self.send_code_and_message(200, {'Content-Type': 'application/json'}, file_content)
|
|
132
|
+
|
|
133
|
+
with MockServer(_SendScitagsJson) as mock_server:
|
|
134
|
+
core_config.set('packet-marking', 'enabled', True)
|
|
135
|
+
core_config.set('packet-marking', 'fetch_url', mock_server.base_url)
|
|
136
|
+
core_config.set('packet-marking', 'exp_name', 'atlas')
|
|
137
|
+
yield mock_server
|
|
138
|
+
|
|
139
|
+
|
|
121
140
|
@skip_rse_tests_with_accounts
|
|
122
141
|
@pytest.mark.dirty(reason="leaves files in XRD containers")
|
|
123
142
|
@pytest.mark.noparallel(groups=[NoParallelGroups.XRD, NoParallelGroups.SUBMITTER, NoParallelGroups.POLLER, NoParallelGroups.FINISHER])
|
|
@@ -528,7 +547,7 @@ def test_multihop_receiver_on_failure(vo, did_factory, replica_client, root_acco
|
|
|
528
547
|
@pytest.mark.parametrize("caches_mock", [{"caches_to_mock": [
|
|
529
548
|
'rucio.core.rse_expression_parser.REGION', # The list of multihop RSEs is retrieved by rse expression
|
|
530
549
|
]}], indirect=True)
|
|
531
|
-
def test_multihop_receiver_on_success(vo, did_factory, root_account, caches_mock, metrics_mock):
|
|
550
|
+
def test_multihop_receiver_on_success(vo, did_factory, root_account, caches_mock, metrics_mock, scitags_mock):
|
|
532
551
|
"""
|
|
533
552
|
Verify that the receiver correctly handles successful multihop jobs
|
|
534
553
|
"""
|
|
@@ -547,7 +566,7 @@ def test_multihop_receiver_on_success(vo, did_factory, root_account, caches_mock
|
|
|
547
566
|
|
|
548
567
|
did = did_factory.upload_test_file(src_rse)
|
|
549
568
|
rule_priority = 5
|
|
550
|
-
rule_core.add_rule(dids=[did], account=root_account, copies=1, rse_expression=dst_rse, grouping='ALL', weight=None, lifetime=3600, locked=False, subscription_id=None, priority=rule_priority)
|
|
569
|
+
rule_core.add_rule(dids=[did], account=root_account, copies=1, rse_expression=dst_rse, grouping='ALL', weight=None, lifetime=3600, locked=False, subscription_id=None, priority=rule_priority, activity='test')
|
|
551
570
|
submitter(once=True, rses=[{'id': rse_id} for rse_id in all_rses], group_bulk=2, partition_wait_time=0, transfertype='single', filter_transfertool=None)
|
|
552
571
|
|
|
553
572
|
request = __wait_for_state_transition(dst_rse_id=jump_rse_id, run_poller=False, **did)
|
|
@@ -556,7 +575,9 @@ def test_multihop_receiver_on_success(vo, did_factory, root_account, caches_mock
|
|
|
556
575
|
assert request['state'] == RequestState.DONE
|
|
557
576
|
|
|
558
577
|
fts_response = FTS3Transfertool(external_host=TEST_FTS_HOST).bulk_query({request['external_id']: {request['id']: request}})
|
|
559
|
-
|
|
578
|
+
fts_response = fts_response[request['external_id']][request['id']]
|
|
579
|
+
assert fts_response.job_response['priority'] == rule_priority
|
|
580
|
+
assert fts_response.file_response['file_metadata'].get('scitags_id') is not None
|
|
560
581
|
|
|
561
582
|
# Two hops; both handled by receiver
|
|
562
583
|
assert metrics_mock.get_sample_value('rucio_daemons_conveyor_receiver_update_request_state_total', labels={'updated': 'True'}) >= 2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|