rucio 35.0.1__tar.gz → 35.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rucio might be problematic. Click here for more details.
- {rucio-35.0.1 → rucio-35.1.0}/PKG-INFO +1 -1
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-admin +3 -1
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-auditor +10 -3
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-dumper +7 -5
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/lockclient.py +2 -2
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/uploadclient.py +7 -10
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/__init__.py +2 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/consistency.py +12 -6
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/data_models.py +11 -11
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/types.py +4 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/utils.py +4 -2
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did.py +13 -465
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/lock.py +6 -3
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/oidc.py +7 -4
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/replica.py +3 -4
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse.py +4 -9
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/srmdumps.py +3 -2
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/session.py +6 -3
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/util.py +4 -2
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/protocol.py +23 -6
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/fts3_plugins.py +4 -3
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/vcsversion.py +3 -3
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +11 -6
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/accounts.py +38 -32
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/archives.py +10 -6
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/auth.py +71 -72
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/common.py +47 -35
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/credentials.py +1 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/dids.py +3 -2
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +1 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/ping.py +1 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/redirect.py +1 -1
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/traces.py +1 -1
- rucio-35.1.0/lib/rucio/web/rest/flaskapi/v1/types.py +20 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio.egg-info/SOURCES.txt +1 -0
- {rucio-35.0.1 → rucio-35.1.0}/AUTHORS.rst +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/ChangeLog +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/LICENSE +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/MANIFEST.in +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/README.md +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-account +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-collection-replica +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-abacus-rse +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-atropos +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-automatix +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-bb8 +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-c3po +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-cache-client +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-cache-consumer +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-finisher +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-poller +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-preparer +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-receiver +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-stager +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-submitter +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-conveyor-throttler +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-dark-reaper +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-follower +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-hermes +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-cleaner +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-evaluator +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-injector +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-judge-repairer +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-kronos +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-minos +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-minos-temporary-expiration +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-necromancer +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-oauth-manager +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-reaper +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-replica-recoverer +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-rse-decommissioner +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-storage-consistency-actions +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-transmogrifier +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/bin/rucio-undertaker +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/alembic.ini.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/alembic_offline.ini.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/globus-config.yml.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/ldap.cfg.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approval_request.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_approved_user.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_denied_user.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/rse-accounts.cfg.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/rucio.cfg.atlas.client.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/rucio.cfg.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/etc/rucio_multi_vo.cfg.template +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/alembicrevision.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/accountclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/accountlimitclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/baseclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/client.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/configclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/credentialclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/didclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/diracclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/downloadclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/exportclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/fileclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/importclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/lifetimeclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/metaconventionsclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/pingclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/replicaclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/requestclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/rseclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/ruleclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/scopeclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/subscriptionclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/client/touchclient.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/cache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/constants.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/constraints.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/didtype.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/dumper/path_parsing.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/exception.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/extra.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/logging.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/pcache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/plugins.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/policy.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/atlas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/belleii.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/domatpc.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/escape.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/generic.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/schema/icecube.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/stomp_utils.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/stopwatch.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/common/test_rucio_server.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account_counter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/account_limit.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/authentication.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/credential.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/filter_engine.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/dirac.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/distance.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/exporter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/heartbeat.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/identity.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/importer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/lifetime_exception.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/message.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/meta_conventions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/monitor.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/naming_convention.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/nongrid_trace.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/atlas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/belleii.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/escape.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/generic.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/quarantined_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/replica_sorter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/request.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_counter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_expression_parser.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rse_selector.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rule.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/rule_grouping.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/scope.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/subscription.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/topology.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/trace.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/transfer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/vo.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/core/volatile_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/account.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/abacus/rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/atropos/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/atropos/atropos.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/auditor/hdfs.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/automatix/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/automatix/automatix.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/minos.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/bb8.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/common.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/c3po.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/cache/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/cache/consumer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/common.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/common.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/finisher.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/poller.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/preparer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/receiver.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/stager.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/submitter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/conveyor/throttler.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/follower/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/follower/follower.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/hermes/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/hermes/hermes.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/cleaner.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/evaluator.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/injector.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/judge/repairer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/oauthmanager/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/reaper/reaper.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/replicarecoverer/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/consistency/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/tracer/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/tracer/kronos.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/transmogrifier/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/undertaker/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/constants.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b0070f3695c8_add_deletedidmeta_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b5493606bbf5_fix_primary_key_for_subscription_history.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/models.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/sautils.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/db/sqla/types.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/account.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/account_limit.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/authentication.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/credential.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/did.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/dirac.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/exporter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/heartbeat.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/identity.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/importer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/lifetime_exception.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/lock.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/meta_conventions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/permission.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/quarantined_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/request.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/rule.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/scope.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/subscription.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/gateway/vo.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/cache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/dummy.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/gfal.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/globus.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/mock.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/posix.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/rclone.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/rfio.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/srm.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/ssh.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/storm.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/webdav.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/rse/rsemanager.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/common.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/tests/common_server.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/fts3.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/globus.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/globus_library.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/mock.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/transfertool/transfertool.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/version.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/__init__.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/main.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/metrics.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/lib/rucio/web/rest/ping.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/pylintrc +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/pyproject.toml +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/requirements/requirements.server.txt +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/setup.cfg +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/setup.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/setuputil.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_account.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_collection_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_abacus_rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_account.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_account_limits.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_archive.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor_hdfs.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_auditor_srmdumps.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_authentication.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_automatix.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_bad_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_bb8.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_belleii.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_bin_rucio.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_boolean.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_clients.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_common_types.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_config.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_conveyor.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_conveyor_submitter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_counter.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_credential.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_curl.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_daemons.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_dataset_replicas.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_db.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_did.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_did_meta_plugins.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_didtype.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_download.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_consistency.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_data_model.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_dumper_path_parsing.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_filter_engine.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_gateway_external_representation.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_heartbeat.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_hermes.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_identity.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_impl_upload_download.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_import_export.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_cleaner.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_evaluator.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_injector.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_judge_repairer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_lifetime.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_message.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_meta_conventions.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_meta_did.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_module_import.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_monitor.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_multi_vo.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_naming_convention.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_oauthmanager.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_oidc.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_permission.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_pfns.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_ping.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_preparer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_qos.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_quarantined_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_reaper.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_redirect.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica_recoverer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_replica_sorting.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_request.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_root_proxy.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_expression_parser.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_lfn2path.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_gfal2.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_posix.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_rclone.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_rsync.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_srm.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_ssh.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_webdav.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_protocol_xrootd.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rse_selector.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rucio_server.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_rule.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_scope.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_subscription.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_throttler.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_tpc.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_trace.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_transfer.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_transfer_plugins.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_undertaker.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_upload.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tests/test_utils.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tools/bootstrap.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tools/merge_rucio_configs.py +0 -0
- {rucio-35.0.1 → rucio-35.1.0}/tools/reset_database.py +0 -0
|
@@ -1196,7 +1196,9 @@ def declare_temporary_unavailable_replicas(args):
|
|
|
1196
1196
|
else:
|
|
1197
1197
|
bad_files = args.listbadfiles
|
|
1198
1198
|
|
|
1199
|
-
|
|
1199
|
+
if args.duration is None:
|
|
1200
|
+
raise ValueError("Duration should have been set, something went wrong!")
|
|
1201
|
+
|
|
1200
1202
|
expiration_date = (datetime.datetime.utcnow() + datetime.timedelta(seconds=args.duration)).isoformat()
|
|
1201
1203
|
|
|
1202
1204
|
chunk_size = 10000
|
|
@@ -21,6 +21,7 @@ import signal
|
|
|
21
21
|
import sys
|
|
22
22
|
import textwrap
|
|
23
23
|
import time
|
|
24
|
+
from configparser import NoSectionError
|
|
24
25
|
from datetime import datetime
|
|
25
26
|
from functools import partial
|
|
26
27
|
from multiprocessing import Event, Pipe, Process, Queue
|
|
@@ -29,6 +30,7 @@ import rucio.common.config as config
|
|
|
29
30
|
import rucio.common.dumper as dumper
|
|
30
31
|
import rucio.daemons.auditor
|
|
31
32
|
from rucio.client.rseclient import RSEClient
|
|
33
|
+
from rucio.common.exception import RSENotFound
|
|
32
34
|
|
|
33
35
|
|
|
34
36
|
def setup_pipe_logger(pipe, loglevel):
|
|
@@ -48,14 +50,17 @@ def main(args):
|
|
|
48
50
|
RETRY_AFTER = 60 * 60 * 24 * 14 # Two weeks
|
|
49
51
|
|
|
50
52
|
nprocs = args.nprocs
|
|
51
|
-
|
|
53
|
+
if nprocs < 1:
|
|
54
|
+
raise RuntimeError("No Processes to Run")
|
|
55
|
+
|
|
52
56
|
if args.rses is None:
|
|
53
57
|
rses_gen = RSEClient().list_rses()
|
|
54
58
|
else:
|
|
55
59
|
rses_gen = RSEClient().list_rses(args.rses)
|
|
56
60
|
|
|
57
61
|
rses = [entry['rse'] for entry in rses_gen]
|
|
58
|
-
|
|
62
|
+
if len(rses) <= 0:
|
|
63
|
+
raise RSENotFound("No RSEs found to audit.")
|
|
59
64
|
|
|
60
65
|
procs = []
|
|
61
66
|
queue = Queue()
|
|
@@ -69,7 +74,9 @@ def main(args):
|
|
|
69
74
|
logpipes.append(mainlogr)
|
|
70
75
|
logger = setup_pipe_logger(mainlogw, loglevel)
|
|
71
76
|
|
|
72
|
-
|
|
77
|
+
if not config.config_has_section('auditor'):
|
|
78
|
+
raise NoSectionError("Auditor section required in config to run the auditor daemon.")
|
|
79
|
+
|
|
73
80
|
cache_dir = config.config_get('auditor', 'cache')
|
|
74
81
|
results_dir = config.config_get('auditor', 'results')
|
|
75
82
|
|
|
@@ -95,9 +95,10 @@ if __name__ == "__main__":
|
|
|
95
95
|
record_type = data_models.CompleteDataset
|
|
96
96
|
elif args.subcommand == 'dump-replicas':
|
|
97
97
|
record_type = data_models.Replica
|
|
98
|
-
|
|
99
|
-
assert args.subcommand in consistency.subcommands
|
|
98
|
+
elif args.subcommand in consistency.subcommands:
|
|
100
99
|
record_type = consistency.Consistency
|
|
100
|
+
else:
|
|
101
|
+
raise ValueError("Record type not set! Cannot dump files.")
|
|
101
102
|
|
|
102
103
|
if 'filter' in args and args.filter:
|
|
103
104
|
user_filter = data_models.Filter(args.filter, record_type).match
|
|
@@ -113,8 +114,8 @@ if __name__ == "__main__":
|
|
|
113
114
|
fields = set(record_type.get_fieldnames())
|
|
114
115
|
|
|
115
116
|
if 'group_by' in args and args.group_by:
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
if args.group_by not in fields:
|
|
118
|
+
raise ValueError("Group_by option %s not supported." % args.group_by)
|
|
118
119
|
fields = [args.group_by]
|
|
119
120
|
data_iter = data
|
|
120
121
|
data_dict = {}
|
|
@@ -125,7 +126,8 @@ if __name__ == "__main__":
|
|
|
125
126
|
data_dict[key].append(record)
|
|
126
127
|
|
|
127
128
|
if 'sum' in args and args.sum:
|
|
128
|
-
|
|
129
|
+
if args.sum not in set(record_type.get_fieldnames()):
|
|
130
|
+
raise ValueError("Sum option %s for record type %s not supported.\nChoice from %s" % (args.sum, args.record_type, set(record_type.get_fieldnames())))
|
|
129
131
|
fields.append(args.sum)
|
|
130
132
|
data = []
|
|
131
133
|
for key, value in data_dict.items():
|
|
@@ -69,8 +69,8 @@ class LockClient(BaseClient):
|
|
|
69
69
|
"""
|
|
70
70
|
|
|
71
71
|
# convert did list to list of dictionaries
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
if not all(did.get("type", "dataset") in ("dataset", "container") for did in dids):
|
|
73
|
+
raise ValueError("DID type can be either 'container' or 'dataset'")
|
|
74
74
|
|
|
75
75
|
path = '/'.join([self.LOCKS_BASEURL, "bulk_locks_for_dids"])
|
|
76
76
|
url = build_url(choice(self.list_hosts), path=path)
|
|
@@ -48,7 +48,7 @@ from rucio.rse import rsemanager as rsemgr
|
|
|
48
48
|
if TYPE_CHECKING:
|
|
49
49
|
from collections.abc import Iterable, Mapping
|
|
50
50
|
|
|
51
|
-
from rucio.common.types import AttachDict, DatasetDict, DIDStringDict, FileToUploadDict, FileToUploadWithCollectedAndDatasetInfoDict, FileToUploadWithCollectedInfoDict, LoggerFunction, RSESettingsDict, TraceBaseDict, TraceDict
|
|
51
|
+
from rucio.common.types import AttachDict, DatasetDict, DIDStringDict, FileToUploadDict, FileToUploadWithCollectedAndDatasetInfoDict, FileToUploadWithCollectedInfoDict, LoggerFunction, PathTypeAlias, RSESettingsDict, TraceBaseDict, TraceDict
|
|
52
52
|
from rucio.rse.protocols.protocol import RSEProtocol
|
|
53
53
|
|
|
54
54
|
|
|
@@ -372,10 +372,7 @@ class UploadClient:
|
|
|
372
372
|
raise NotAllFilesUploaded()
|
|
373
373
|
return 0
|
|
374
374
|
|
|
375
|
-
def _add_bittorrent_meta(self, file: "Mapping[str, Any]"
|
|
376
|
-
if not config_get_bool('client', 'register_bittorrent_meta', default=False):
|
|
377
|
-
return
|
|
378
|
-
|
|
375
|
+
def _add_bittorrent_meta(self, file: "Mapping[str, Any]") -> None:
|
|
379
376
|
pieces_root, pieces_layers, piece_length = bittorrent_v2_merkle_sha256(os.path.join(file['dirname'], file['basename']))
|
|
380
377
|
bittorrent_meta = {
|
|
381
378
|
'bittorrent_pieces_root': base64.b64encode(pieces_root).decode(),
|
|
@@ -383,6 +380,7 @@ class UploadClient:
|
|
|
383
380
|
'bittorrent_piece_length': piece_length,
|
|
384
381
|
}
|
|
385
382
|
self.client.set_metadata_bulk(scope=file['did_scope'], name=file['did_name'], meta=bittorrent_meta)
|
|
383
|
+
self.logger(logging.INFO, f"Added bittorrent metadata to file DID {file['did_scope']}:{file['did_name']}")
|
|
386
384
|
|
|
387
385
|
def _register_file(
|
|
388
386
|
self,
|
|
@@ -434,7 +432,6 @@ class UploadClient:
|
|
|
434
432
|
logger(logging.INFO, 'Successfully created dataset %s' % dataset_did_str)
|
|
435
433
|
except DataIdentifierAlreadyExists:
|
|
436
434
|
logger(logging.INFO, 'Dataset %s already exists - no rule will be created' % dataset_did_str)
|
|
437
|
-
|
|
438
435
|
if file.get('lifetime') is not None:
|
|
439
436
|
raise InputValidationError('Dataset %s exists and lifetime %s given. Prohibited to modify parent dataset lifetime.' % (dataset_did_str,
|
|
440
437
|
file.get('lifetime')))
|
|
@@ -453,7 +450,6 @@ class UploadClient:
|
|
|
453
450
|
|
|
454
451
|
if str(meta['adler32']).lstrip('0') != str(file['adler32']).lstrip('0'):
|
|
455
452
|
logger(logging.ERROR, 'Local checksum %s does not match remote checksum %s' % (file['adler32'], meta['adler32']))
|
|
456
|
-
|
|
457
453
|
raise DataIdentifierAlreadyExists
|
|
458
454
|
|
|
459
455
|
# add file to rse if it is not registered yet
|
|
@@ -464,7 +460,8 @@ class UploadClient:
|
|
|
464
460
|
except DataIdentifierNotFound:
|
|
465
461
|
logger(logging.DEBUG, 'File DID does not exist')
|
|
466
462
|
self.client.add_replicas(rse=rse, files=[replica_for_api])
|
|
467
|
-
|
|
463
|
+
if config_get_bool('client', 'register_bittorrent_meta', default=False):
|
|
464
|
+
self._add_bittorrent_meta(file=file)
|
|
468
465
|
logger(logging.INFO, 'Successfully added replica in Rucio catalogue at %s' % rse)
|
|
469
466
|
if not dataset_did_str:
|
|
470
467
|
# only need to add rules for files if no dataset is given
|
|
@@ -499,7 +496,7 @@ class UploadClient:
|
|
|
499
496
|
|
|
500
497
|
def _collect_file_info(
|
|
501
498
|
self,
|
|
502
|
-
filepath:
|
|
499
|
+
filepath: "PathTypeAlias",
|
|
503
500
|
item: "FileToUploadDict"
|
|
504
501
|
) -> "FileToUploadWithCollectedInfoDict":
|
|
505
502
|
"""
|
|
@@ -845,7 +842,7 @@ class UploadClient:
|
|
|
845
842
|
scope = self.default_file_scope
|
|
846
843
|
rse = item.get('rse')
|
|
847
844
|
path = item.get('path')
|
|
848
|
-
if path:
|
|
845
|
+
if path and isinstance(path, str):
|
|
849
846
|
if path[-1] == '/':
|
|
850
847
|
path = path[0:-1]
|
|
851
848
|
i = 0
|
|
@@ -81,7 +81,8 @@ def mkdir(dir_: "StrOrBytesPath") -> None:
|
|
|
81
81
|
try:
|
|
82
82
|
os.mkdir(dir_)
|
|
83
83
|
except OSError as error:
|
|
84
|
-
|
|
84
|
+
if error.errno != 17:
|
|
85
|
+
raise error
|
|
85
86
|
|
|
86
87
|
|
|
87
88
|
def cacert_config(config: "ModuleType", rucio_home: str) -> Optional[Union["FileDescriptorOrPath", Literal[False]]]:
|
|
@@ -41,10 +41,12 @@ class Consistency(data_models.DataModel):
|
|
|
41
41
|
ddm_endpoint, prev_date, cache_dir=cache_dir)
|
|
42
42
|
next_date_fname = data_models.Replica.download(
|
|
43
43
|
ddm_endpoint, next_date, cache_dir=cache_dir)
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
if (prev_date_fname is None) or (next_date_fname is None):
|
|
45
|
+
raise ValueError("Both prev_date_fname and next_date_fname are required for subcommand='consistency'; found prev_data_fname=%s and next_date_fname=%s" % (prev_date_fname, next_date_fname))
|
|
46
|
+
elif subcommand == 'consistency-manual':
|
|
47
|
+
pass
|
|
46
48
|
else:
|
|
47
|
-
|
|
49
|
+
raise ValueError("subcommand %s not accepted, choice from ('consistency','consistency-manual')" % subcommand)
|
|
48
50
|
|
|
49
51
|
prefix_components = path_parsing.components(dumper.ddmendpoint_url(ddm_endpoint))
|
|
50
52
|
|
|
@@ -166,7 +168,8 @@ def min3(*values):
|
|
|
166
168
|
Minimum between the 3 values ignoring None
|
|
167
169
|
'''
|
|
168
170
|
values = [value for value in values if value is not None]
|
|
169
|
-
|
|
171
|
+
if len(values) == 0:
|
|
172
|
+
raise ValueError("Input contains 0 non-null values.")
|
|
170
173
|
return min(values)
|
|
171
174
|
|
|
172
175
|
|
|
@@ -301,7 +304,8 @@ def gnu_sort(file_path, prefix=None, delimiter=None, fieldspec=None, cache_dir=D
|
|
|
301
304
|
memory and it is relatively fast if used with the environment variable
|
|
302
305
|
LC_ALL set to C as in this function.
|
|
303
306
|
'''
|
|
304
|
-
|
|
307
|
+
if (delimiter is not None) ^ (fieldspec is not None):
|
|
308
|
+
raise ValueError("Either both delimiter and fieldspec is set, or neither are.")
|
|
305
309
|
if delimiter is None:
|
|
306
310
|
cmd_line = 'LC_ALL=C sort {0} > {1}'
|
|
307
311
|
else:
|
|
@@ -388,8 +392,10 @@ def _parse_args_consistency(args):
|
|
|
388
392
|
error('The storage dump filename must be of the form '
|
|
389
393
|
'"dump_YYYYMMDD" where the date correspond to the date '
|
|
390
394
|
'of the newest files included')
|
|
395
|
+
|
|
391
396
|
date_str = date_str.group(1)
|
|
392
|
-
|
|
397
|
+
if date_str is None:
|
|
398
|
+
error('Invalid date {0}'.format(date_str))
|
|
393
399
|
try:
|
|
394
400
|
args_dict['date'] = date = datetime.datetime.strptime(date_str, '%Y%m%d')
|
|
395
401
|
except ValueError:
|
|
@@ -150,20 +150,17 @@ class DataModel:
|
|
|
150
150
|
logger = logging.getLogger('auditor.data_models')
|
|
151
151
|
requests_session = get_requests_session()
|
|
152
152
|
if date == 'latest':
|
|
153
|
-
url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}'.format(rse)))
|
|
153
|
+
url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}'.format(rse))) # type: ignore
|
|
154
154
|
request_headers = requests_session.head(url)
|
|
155
155
|
for field in request_headers.headers['content-disposition'].split(';'):
|
|
156
156
|
if field.startswith('filename='):
|
|
157
157
|
date = field.split('=')[1].split('_')[-1].split('.')[0]
|
|
158
158
|
|
|
159
|
+
elif isinstance(date, datetime.datetime):
|
|
160
|
+
date = date.strftime('%d-%m-%Y')
|
|
161
|
+
url = ''.join((cls.BASE_URL, cls.URI, '?rse={0}&date={1}'.format(rse, date))) # type: ignore
|
|
159
162
|
else:
|
|
160
|
-
|
|
161
|
-
date = date.strftime('%d-%m-%Y') # pylint: disable=no-member
|
|
162
|
-
url = ''.join((
|
|
163
|
-
cls.BASE_URL,
|
|
164
|
-
cls.URI,
|
|
165
|
-
'?rse={0}&date={1}'.format(rse, date),
|
|
166
|
-
))
|
|
163
|
+
raise ValueError("Passed date (%s) must be a datetime object or 'latest'." % date)
|
|
167
164
|
|
|
168
165
|
if not os.path.isdir(cache_dir):
|
|
169
166
|
os.mkdir(cache_dir)
|
|
@@ -237,7 +234,8 @@ class CompleteDataset(DataModel):
|
|
|
237
234
|
self.state = args[7]
|
|
238
235
|
else:
|
|
239
236
|
self.state = None
|
|
240
|
-
|
|
237
|
+
if len(args) > 8:
|
|
238
|
+
raise ValueError("Too many arguments, must be 8 or less. Instead passed %s" % len(args))
|
|
241
239
|
|
|
242
240
|
|
|
243
241
|
class Replica(DataModel):
|
|
@@ -264,7 +262,8 @@ class Replica(DataModel):
|
|
|
264
262
|
|
|
265
263
|
if len(args) == 8:
|
|
266
264
|
logger.warning('Missing parameter\nrse: %s\ndataset: %s\n', self.rse, self.name)
|
|
267
|
-
|
|
265
|
+
elif len(args) > 9:
|
|
266
|
+
raise ValueError("Too many arguments. Must be 9 or less, instead passed %s" % len(args))
|
|
268
267
|
|
|
269
268
|
|
|
270
269
|
class Filter:
|
|
@@ -292,7 +291,8 @@ class Filter:
|
|
|
292
291
|
for expr in filter_str.split(','):
|
|
293
292
|
key, expected = expr.split('=')
|
|
294
293
|
# Better checks required
|
|
295
|
-
|
|
294
|
+
if key not in record_class.get_fieldnames():
|
|
295
|
+
raise ValueError("Key %s not supported." % key)
|
|
296
296
|
parser = list(filter(lambda t: t[0] == key, record_class.SCHEMA))[0][1]
|
|
297
297
|
self.conditions.append(self._Condition(
|
|
298
298
|
comparator=operator.eq,
|
|
@@ -15,11 +15,14 @@
|
|
|
15
15
|
import sys
|
|
16
16
|
from collections.abc import Callable
|
|
17
17
|
from datetime import datetime
|
|
18
|
+
from os import PathLike
|
|
18
19
|
|
|
19
20
|
if sys.version_info < (3, 11):
|
|
20
21
|
from typing_extensions import TYPE_CHECKING, Any, Literal, NotRequired, Optional, TypedDict, Union # noqa: UP035
|
|
22
|
+
PathTypeAlias = Union[PathLike, str]
|
|
21
23
|
else:
|
|
22
24
|
from typing import TYPE_CHECKING, Any, Literal, NotRequired, Optional, TypedDict, Union
|
|
25
|
+
PathTypeAlias = PathLike
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
if TYPE_CHECKING:
|
|
@@ -306,7 +309,7 @@ class TraceDict(TraceBaseDict):
|
|
|
306
309
|
|
|
307
310
|
|
|
308
311
|
class FileToUploadDict(TypedDict):
|
|
309
|
-
path:
|
|
312
|
+
path: PathTypeAlias
|
|
310
313
|
rse: str
|
|
311
314
|
did_scope: str
|
|
312
315
|
did_name: str
|
|
@@ -1941,7 +1941,8 @@ class StoreAndDeprecateWarningAction(argparse.Action):
|
|
|
1941
1941
|
option_strings=option_strings,
|
|
1942
1942
|
dest=dest,
|
|
1943
1943
|
**kwargs)
|
|
1944
|
-
|
|
1944
|
+
if new_option_string not in option_strings:
|
|
1945
|
+
raise ValueError("%s not supported as a string option." % new_option_string)
|
|
1945
1946
|
self.new_option_string = new_option_string
|
|
1946
1947
|
|
|
1947
1948
|
def __call__(self, parser, namespace, values, option_string: Optional[str] = None):
|
|
@@ -1979,7 +1980,8 @@ class StoreTrueAndDeprecateWarningAction(argparse._StoreConstAction):
|
|
|
1979
1980
|
default=default,
|
|
1980
1981
|
required=required,
|
|
1981
1982
|
help=help)
|
|
1982
|
-
|
|
1983
|
+
if new_option_string not in option_strings:
|
|
1984
|
+
raise ValueError("%s not supported as a string option." % new_option_string)
|
|
1983
1985
|
self.new_option_string = new_option_string
|
|
1984
1986
|
|
|
1985
1987
|
def __call__(self, parser, namespace, values, option_string: Optional[str] = None):
|