pulpcore 3.63.29__tar.gz → 3.63.31__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.
- {pulpcore-3.63.29 → pulpcore-3.63.31}/CHANGES.md +51 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/PKG-INFO +11 -11
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/__init__.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/__init__.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_download_policies.py +4 -5
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/apps.py +14 -5
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/checks.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/importexport.py +5 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/modelresource.py +3 -2
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/base.py +4 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/domain.py +4 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/settings.py +31 -7
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/export.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/importer.py +6 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/util.py +4 -2
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/importexport.py +3 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/pytest_plugin.py +25 -17
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_artifact_distribution.py +2 -4
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_crd_artifacts.py +3 -4
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_crud_domains.py +10 -10
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_status.py +6 -7
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +11 -11
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/test_content.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/viewsets/test_viewset_base.py +3 -3
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/PKG-INFO +11 -11
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/requires.txt +10 -10
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pyproject.toml +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/requirements.txt +10 -10
- {pulpcore-3.63.29 → pulpcore-3.63.31}/setup.py +1 -1
- {pulpcore-3.63.29 → pulpcore-3.63.31}/CODE_OF_CONDUCT.md +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/COMMITMENT +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/CONTRIBUTING.md +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/COPYRIGHT +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/LICENSE +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/MANIFEST.in +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/README.md +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/ci_requirements.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/functest_requirements.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/manage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/migrations/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/models.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/serializers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/utils.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/app/viewsets.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/pytest_plugin.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/conftest.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/functional/constants.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/unit/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_certguard/tests/unit/test_models.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0002_file_related_names.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0003_auto_20191014_1721.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0004_filefilesystemexporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0005_filerepository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0006_delete_filefilesystemexporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0007_filefilesystemexporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0008_add_manifest_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0009_move_data_to_new_master_distribution_model.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0010_auto_publish.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0011_fix_auto_publish.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0012_delete_filefilesystemexporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0013_file_acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0014_new_rbac_permissions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0015_allow_null_manifest.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0016_add_domain.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/migrations/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/modelresource.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/models.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/serializers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/tasks/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/tasks/publishing.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/tasks/synchronizing.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/app/viewsets.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/manifest.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/pytest_plugin.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_crud_content_unit.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_domains.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_labels.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_publish.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_rbac.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_sync.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/unit/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/unit/test_safe_paths.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/unit/test_serializers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/authentication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/entrypoint.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/files.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/global_access_conditions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/loggers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/manage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/add-signing-service.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/analyze-publication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/clean-up-progress-reports.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/dump-permissions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/openapi.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/remove-plugin.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/repository-size.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/management/commands/shell.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0011_relative_path.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0026_task_group.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0027_export_backend.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0029_export_delete.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0055_label.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0074_acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0091_systemid.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0099_versions_field.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0101_add_domain.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0104_delete_label.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0108_task_versions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/migrations/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/mime_types.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/analytics.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/domain.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/exporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/generic.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/importer.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/progress.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/publication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/role.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/status.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/storage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/models/upload.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/protobuf/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/pulp_hashlib.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/redis_connection.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/response.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/role_util.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/exporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/fields.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/importer.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/orphans.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/progress.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/publication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/purge.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/reclaim.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/repair.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/status.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/upload.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/serializers/user.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/analytics.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/migrate.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/orphan.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/purge.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/reclaim_space.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/test.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/tasks/upload.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/templates/rest_framework/api.html +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/templatetags/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/templatetags/pulp_urls.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/urls.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/views/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/views/importer.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/views/orphans.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/views/repair.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/views/status.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/acs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/custom_filters.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/domain.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/exporter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/importer.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/orphans.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/publication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/reclaim.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/upload.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/viewsets/user.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/app/wsgi.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/backends.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/cache/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/cache/cache.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/constants.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/content/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/content/authentication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/content/entrypoint.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/content/handler.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/content/instrumentation.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/download/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/download/base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/download/factory.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/download/file.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/download/http.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/exceptions/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/exceptions/base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/exceptions/plugin.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/exceptions/validation.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/filters.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/middleware.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/migrations.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/openapi/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/openapi/hooks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/actions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/apps.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/authentication/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/cache/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/constants.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/download/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/exceptions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/files.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/migrations.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/modelresources.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/models/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/models/role.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/publication_utils.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/pulp_hashlib.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/replica.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/repo_version_utils.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/responses.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/serializers/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/serializers/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/api.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/artifact_stages.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/content_stages.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/declarative_version.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/stages/models.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/storage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/sync.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/tasking.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/util.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/viewsets/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/plugin/viewsets/content.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/responses.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/_util.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/entrypoint.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/kafka.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/storage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/tasks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tasking/worker.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_auth.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_filter.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_replication.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_repos.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_role.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_scoping.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_tasking.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_upload.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_workers.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/assets/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/content_with_coverage.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/utils.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/performance/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/performance/test_performance.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/conftest.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/content/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/content/test_handler.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/download/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/migration/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/test_base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/test_remote.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/test_repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/models/test_task.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/roles/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/roles/test_roles.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/serializers/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/serializers/test_base.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/stages/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/stages/test_stages.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_cache.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_chunked_file.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_content_guard.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_files.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_import_checks.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_settings.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_util.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/test_viewsets.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/SOURCES.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/dependency_links.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/entry_points.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore.egg-info/top_level.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/setup.cfg +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/test_requirements.txt +0 -0
- {pulpcore-3.63.29 → pulpcore-3.63.31}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,57 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 3.63.31 (2026-02-25) {: #3.63.31 }
|
|
12
|
+
|
|
13
|
+
### REST API {: #3.63.31-rest-api }
|
|
14
|
+
|
|
15
|
+
No significant changes.
|
|
16
|
+
|
|
17
|
+
### Plugin API {: #3.63.31-plugin-api }
|
|
18
|
+
|
|
19
|
+
No significant changes.
|
|
20
|
+
|
|
21
|
+
### Pulp File {: #3.63.31-pulp-file }
|
|
22
|
+
|
|
23
|
+
No significant changes.
|
|
24
|
+
|
|
25
|
+
### Pulp Cert Guard {: #3.63.31-pulp-cert-guard }
|
|
26
|
+
|
|
27
|
+
No significant changes.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 3.63.30 (2026-02-10) {: #3.63.30 }
|
|
32
|
+
|
|
33
|
+
### REST API {: #3.63.30-rest-api }
|
|
34
|
+
|
|
35
|
+
#### Features {: #3.63.30-rest-api-feature }
|
|
36
|
+
|
|
37
|
+
- Adapted PulpImport/Export to allow update django-import-export==4.x.
|
|
38
|
+
[#5324](https://github.com/pulp/pulpcore/issues/5324)
|
|
39
|
+
- Allow use of Django 5 as well as Django 4. Note the following breaking changes if upgrading to
|
|
40
|
+
Django 5: storage configuration must use the new ``STORAGES`` format instead of
|
|
41
|
+
``DEFAULT_FILE_STORAGE``, Python >= 3.10 is required, and PostgreSQL >= 14 is required.
|
|
42
|
+
[#6988](https://github.com/pulp/pulpcore/issues/6988)
|
|
43
|
+
|
|
44
|
+
#### Bugfixes {: #3.63.30-rest-api-bugfix }
|
|
45
|
+
|
|
46
|
+
- Fixed PRNField slowing down the generic list endpoints with extra database queries.
|
|
47
|
+
|
|
48
|
+
### Plugin API {: #3.63.30-plugin-api }
|
|
49
|
+
|
|
50
|
+
No significant changes.
|
|
51
|
+
|
|
52
|
+
### Pulp File {: #3.63.30-pulp-file }
|
|
53
|
+
|
|
54
|
+
No significant changes.
|
|
55
|
+
|
|
56
|
+
### Pulp Cert Guard {: #3.63.30-pulp-cert-guard }
|
|
57
|
+
|
|
58
|
+
No significant changes.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
11
62
|
## 3.63.29 (2026-01-27) {: #3.63.29 }
|
|
12
63
|
|
|
13
64
|
### REST API {: #3.63.29-rest-api }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pulpcore
|
|
3
|
-
Version: 3.63.
|
|
3
|
+
Version: 3.63.31
|
|
4
4
|
Summary: Pulp Django Application and Related Modules
|
|
5
5
|
Home-page: https://pulpproject.org
|
|
6
6
|
Author: Pulp Team
|
|
@@ -21,16 +21,16 @@ Description-Content-Type: text/markdown
|
|
|
21
21
|
License-File: LICENSE
|
|
22
22
|
Requires-Dist: aiodns<=3.2.0,>=3.0
|
|
23
23
|
Requires-Dist: aiofiles<24.2.0,>=22.1
|
|
24
|
-
Requires-Dist: aiohttp<3.
|
|
24
|
+
Requires-Dist: aiohttp<3.14,>=3.9.0
|
|
25
25
|
Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
|
|
26
26
|
Requires-Dist: async-timeout<4.0.4,>=4.0.3; python_version < "3.11"
|
|
27
27
|
Requires-Dist: backoff<2.2.2,>=2.1.2
|
|
28
28
|
Requires-Dist: click<=8.1.7,>=8.1.0
|
|
29
|
-
Requires-Dist: cryptography<
|
|
30
|
-
Requires-Dist: Django
|
|
29
|
+
Requires-Dist: cryptography<47.0,>=38.0.1
|
|
30
|
+
Requires-Dist: Django!=5.0,!=5.1,<5.3,>=4.2.24
|
|
31
31
|
Requires-Dist: django-filter<=24.3,>=23.1
|
|
32
32
|
Requires-Dist: django-guid<=3.5.0,>=3.3
|
|
33
|
-
Requires-Dist: django-import-export<
|
|
33
|
+
Requires-Dist: django-import-export<5.0,>=2.9
|
|
34
34
|
Requires-Dist: django-lifecycle<=1.2.4,>=1.0
|
|
35
35
|
Requires-Dist: djangorestframework<=3.15.2,>=3.14.0
|
|
36
36
|
Requires-Dist: djangorestframework-queryfields<=1.1.0,>=1.0
|
|
@@ -45,10 +45,10 @@ Requires-Dist: json_stream<2.4,>=2.3.2
|
|
|
45
45
|
Requires-Dist: jq<1.9.0,>=1.6.0
|
|
46
46
|
Requires-Dist: pycares<4.9; python_version < "3.12"
|
|
47
47
|
Requires-Dist: PyOpenSSL<26.0
|
|
48
|
-
Requires-Dist: opentelemetry-distro[otlp]<=0.
|
|
49
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http
|
|
50
|
-
Requires-Dist: opentelemetry-instrumentation-wsgi<=0.
|
|
51
|
-
Requires-Dist: protobuf<
|
|
48
|
+
Requires-Dist: opentelemetry-distro[otlp]<=0.49b0,>=0.45b0
|
|
49
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.29,>=1.24.0
|
|
50
|
+
Requires-Dist: opentelemetry-instrumentation-wsgi<=0.49b0,>=0.45b
|
|
51
|
+
Requires-Dist: protobuf<6.0,>=4.21.1
|
|
52
52
|
Requires-Dist: pulp-glue<0.32,>=0.18.0
|
|
53
53
|
Requires-Dist: pygtrie<=2.5.0,>=2.5
|
|
54
54
|
Requires-Dist: psycopg[binary]<3.3,>=3.1.8
|
|
@@ -56,11 +56,11 @@ Requires-Dist: pyparsing<=3.1.4,>=3.1.0
|
|
|
56
56
|
Requires-Dist: python-gnupg<=0.5.3,>=0.5
|
|
57
57
|
Requires-Dist: PyYAML<=6.0.2,>=5.1.1
|
|
58
58
|
Requires-Dist: redis<5.0.9,>=4.3
|
|
59
|
-
Requires-Dist: tablib
|
|
59
|
+
Requires-Dist: tablib!=3.6,<4.0,>=3.5.0
|
|
60
60
|
Requires-Dist: url-normalize<=1.4.3,>=1.4.3
|
|
61
61
|
Requires-Dist: uuid6<=2024.7.10,>=2023.5.2
|
|
62
62
|
Requires-Dist: whitenoise<6.8.0,>=5.0
|
|
63
|
-
Requires-Dist: yarl<1.
|
|
63
|
+
Requires-Dist: yarl<1.18.4,>=1.9.1
|
|
64
64
|
Provides-Extra: sftp
|
|
65
65
|
Requires-Dist: django-storages[sftp]==1.14.4; extra == "sftp"
|
|
66
66
|
Provides-Extra: s3
|
{pulpcore-3.63.29 → pulpcore-3.63.31}/pulp_file/tests/functional/api/test_download_policies.py
RENAMED
|
@@ -11,7 +11,6 @@ from urllib.parse import urljoin
|
|
|
11
11
|
|
|
12
12
|
from pulpcore.tests.functional.utils import get_files_in_manifest, download_file
|
|
13
13
|
|
|
14
|
-
from pulpcore.app import settings
|
|
15
14
|
from pulpcore.client.pulp_file import FileFilePublication, RepositorySyncURL
|
|
16
15
|
|
|
17
16
|
|
|
@@ -54,7 +53,7 @@ def test_download_policy(
|
|
|
54
53
|
download_policy,
|
|
55
54
|
):
|
|
56
55
|
"""Test that "on_demand" and "streamed" download policies work as expected."""
|
|
57
|
-
if download_policy == "on_demand" and "SFTP" in pulp_settings.
|
|
56
|
+
if download_policy == "on_demand" and "SFTP" in pulp_settings.STORAGES["default"]["BACKEND"]:
|
|
58
57
|
pytest.skip("This storage technology is not properly supported.")
|
|
59
58
|
|
|
60
59
|
remote = file_remote_ssl_factory(
|
|
@@ -148,8 +147,8 @@ def test_download_policy(
|
|
|
148
147
|
assert expected_checksum == actual_checksum
|
|
149
148
|
if (
|
|
150
149
|
download_policy == "immediate"
|
|
151
|
-
and
|
|
152
|
-
and
|
|
150
|
+
and pulp_settings.STORAGES["default"]["BACKEND"] != "pulpcore.app.models.storage.FileSystem"
|
|
151
|
+
and pulp_settings.REDIRECT_TO_OBJECT_STORAGE
|
|
153
152
|
):
|
|
154
153
|
content_disposition = downloaded_file.response_obj.headers.get("Content-Disposition")
|
|
155
154
|
assert content_disposition is not None
|
|
@@ -187,7 +186,7 @@ def test_download_policy(
|
|
|
187
186
|
content_unit = expected_files_list[4]
|
|
188
187
|
content_unit_url = urljoin(distribution.base_url, content_unit[0])
|
|
189
188
|
# The S3 test API project doesn't handle invalid Range values correctly
|
|
190
|
-
if
|
|
189
|
+
if pulp_settings.STORAGES["default"]["BACKEND"] == "pulpcore.app.models.storage.FileSystem":
|
|
191
190
|
with pytest.raises(ClientResponseError) as exc:
|
|
192
191
|
range_header = {"Range": "bytes=-1-11"}
|
|
193
192
|
download_file(content_unit_url, headers=range_header)
|
|
@@ -5,7 +5,6 @@ from gettext import gettext as _
|
|
|
5
5
|
from importlib import import_module
|
|
6
6
|
|
|
7
7
|
from django import apps
|
|
8
|
-
from django.conf import settings
|
|
9
8
|
from django.core.exceptions import ImproperlyConfigured
|
|
10
9
|
from django.db import connection, transaction
|
|
11
10
|
from django.db.models.signals import post_migrate, pre_migrate
|
|
@@ -68,6 +67,12 @@ class PulpPluginAppConfig(apps.AppConfig):
|
|
|
68
67
|
|
|
69
68
|
def __init__(self, app_name, app_module):
|
|
70
69
|
super().__init__(app_name, app_module)
|
|
70
|
+
# begin compatibility layer for DEFAULT_FILE_STORAGE deprecation
|
|
71
|
+
# Workaround for getting the up-to-date settings instance
|
|
72
|
+
from django.conf import settings
|
|
73
|
+
|
|
74
|
+
self.settings = settings
|
|
75
|
+
# end
|
|
71
76
|
|
|
72
77
|
try:
|
|
73
78
|
self.version
|
|
@@ -239,7 +244,7 @@ class PulpAppConfig(PulpPluginAppConfig):
|
|
|
239
244
|
label = "core"
|
|
240
245
|
|
|
241
246
|
# The version of this app
|
|
242
|
-
version = "3.63.
|
|
247
|
+
version = "3.63.31"
|
|
243
248
|
|
|
244
249
|
# The python package name providing this app
|
|
245
250
|
python_package_name = "pulpcore"
|
|
@@ -268,6 +273,8 @@ def _clean_app_status(sender, apps, verbosity, **kwargs):
|
|
|
268
273
|
from django.contrib.postgres.functions import TransactionNow
|
|
269
274
|
from django.utils import timezone
|
|
270
275
|
|
|
276
|
+
settings = sender.settings
|
|
277
|
+
|
|
271
278
|
app_ttl_map = [
|
|
272
279
|
("ApiAppStatus", settings.API_APP_TTL),
|
|
273
280
|
("ContentAppStatus", settings.CONTENT_APP_TTL),
|
|
@@ -340,6 +347,7 @@ def _populate_system_id(sender, apps, verbosity, **kwargs):
|
|
|
340
347
|
|
|
341
348
|
|
|
342
349
|
def _ensure_default_domain(sender, **kwargs):
|
|
350
|
+
settings = sender.settings
|
|
343
351
|
table_names = connection.introspection.table_names()
|
|
344
352
|
if "core_domain" in table_names:
|
|
345
353
|
from pulpcore.app.util import get_default_domain
|
|
@@ -349,11 +357,11 @@ def _ensure_default_domain(sender, **kwargs):
|
|
|
349
357
|
if (
|
|
350
358
|
settings.HIDE_GUARDED_DISTRIBUTIONS != default.hide_guarded_distributions
|
|
351
359
|
or settings.REDIRECT_TO_OBJECT_STORAGE != default.redirect_to_object_storage
|
|
352
|
-
or settings.
|
|
360
|
+
or settings.STORAGES["default"]["BACKEND"] != default.storage_class
|
|
353
361
|
):
|
|
354
362
|
default.hide_guarded_distributions = settings.HIDE_GUARDED_DISTRIBUTIONS
|
|
355
363
|
default.redirect_to_object_storage = settings.REDIRECT_TO_OBJECT_STORAGE
|
|
356
|
-
default.storage_class = settings.
|
|
364
|
+
default.storage_class = settings.STORAGES["default"]["BACKEND"]
|
|
357
365
|
default.save(skip_hooks=True)
|
|
358
366
|
|
|
359
367
|
|
|
@@ -419,8 +427,9 @@ def adjust_roles(apps, role_prefix, desired_roles, verbosity=1):
|
|
|
419
427
|
|
|
420
428
|
|
|
421
429
|
def _populate_artifact_serving_distribution(sender, apps, verbosity, **kwargs):
|
|
430
|
+
settings = sender.settings
|
|
422
431
|
if (
|
|
423
|
-
settings.
|
|
432
|
+
settings.STORAGES["default"]["BACKEND"] == "pulpcore.app.models.storage.FileSystem"
|
|
424
433
|
or not settings.REDIRECT_TO_OBJECT_STORAGE
|
|
425
434
|
):
|
|
426
435
|
try:
|
|
@@ -38,7 +38,7 @@ def secret_key_check(app_configs, **kwargs):
|
|
|
38
38
|
def storage_paths(app_configs, **kwargs):
|
|
39
39
|
warnings = []
|
|
40
40
|
|
|
41
|
-
if settings.
|
|
41
|
+
if settings.STORAGES["default"]["BACKEND"] == "pulpcore.app.models.storage.FileSystem":
|
|
42
42
|
try:
|
|
43
43
|
media_root_dev = Path(settings.MEDIA_ROOT).stat().st_dev
|
|
44
44
|
except OSError:
|
|
@@ -48,6 +48,10 @@ def _write_export(the_tarfile, resource, dest_dir=None):
|
|
|
48
48
|
# the data in batches to memory and concatenate the json lists via string manipulation.
|
|
49
49
|
with tempfile.NamedTemporaryFile(dir=".", mode="w", encoding="utf8") as temp_file:
|
|
50
50
|
if isinstance(resource.queryset, QuerySet):
|
|
51
|
+
# If we don't have any of "these" - skip writing
|
|
52
|
+
if resource.queryset.count() == 0:
|
|
53
|
+
return
|
|
54
|
+
|
|
51
55
|
temp_file.write("[")
|
|
52
56
|
|
|
53
57
|
def process_batch(batch):
|
|
@@ -114,7 +118,7 @@ def export_artifacts(export, artifact_pks):
|
|
|
114
118
|
with ProgressReport(**data) as pb:
|
|
115
119
|
pb.BATCH_INTERVAL = 5000
|
|
116
120
|
|
|
117
|
-
if settings.
|
|
121
|
+
if settings.STORAGES["default"]["BACKEND"] != "pulpcore.app.models.storage.FileSystem":
|
|
118
122
|
with tempfile.TemporaryDirectory(dir=".") as temp_dir:
|
|
119
123
|
for offset in range(0, len(artifact_pks), EXPORT_BATCH_SIZE):
|
|
120
124
|
batch = artifact_pks[offset : offset + EXPORT_BATCH_SIZE]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from django.conf import settings
|
|
1
2
|
from import_export import fields
|
|
2
3
|
from import_export.widgets import ForeignKeyWidget
|
|
3
4
|
from logging import getLogger
|
|
@@ -36,8 +37,8 @@ class ArtifactResource(QueryModelResource):
|
|
|
36
37
|
# the export converts None to blank strings but sha384 and sha512 have unique constraints
|
|
37
38
|
# that get triggered if they are blank. convert checksums back into None if they are blank.
|
|
38
39
|
for checksum in ALL_KNOWN_CONTENT_CHECKSUMS:
|
|
39
|
-
if row[checksum] == "":
|
|
40
|
-
row[checksum]
|
|
40
|
+
if row[checksum] == "" or checksum not in settings.ALLOWED_CONTENT_CHECKSUMS:
|
|
41
|
+
del row[checksum]
|
|
41
42
|
|
|
42
43
|
class Meta:
|
|
43
44
|
model = Artifact
|
|
@@ -169,6 +169,10 @@ class PRNField(serializers.StringRelatedField):
|
|
|
169
169
|
super().__init__(**kwargs)
|
|
170
170
|
|
|
171
171
|
def to_representation(self, value):
|
|
172
|
+
if isinstance(value, MasterModel):
|
|
173
|
+
# Cast optimization to avoid performing a database query
|
|
174
|
+
model = value.get_model_for_pulp_type(value.pulp_type)
|
|
175
|
+
value = model(pk=value.pk)
|
|
172
176
|
return get_prn(instance=value)
|
|
173
177
|
|
|
174
178
|
|
|
@@ -43,7 +43,10 @@ class BaseSettingsClass(HiddenFieldsMixin, serializers.Serializer):
|
|
|
43
43
|
# Should I convert back the saved settings to their Setting names for to_representation?
|
|
44
44
|
if getattr(self.context.get("domain", None), "name", None) == "default":
|
|
45
45
|
for setting_name, field in self.SETTING_MAPPING.items():
|
|
46
|
-
|
|
46
|
+
value = getattr(settings, setting_name, None) or settings.STORAGES["default"].get(
|
|
47
|
+
"OPTIONS", {}
|
|
48
|
+
).get(field)
|
|
49
|
+
if value:
|
|
47
50
|
instance[field] = value
|
|
48
51
|
return super().to_representation(instance)
|
|
49
52
|
|
|
@@ -16,6 +16,8 @@ from logging import getLogger
|
|
|
16
16
|
from pathlib import Path
|
|
17
17
|
|
|
18
18
|
from cryptography.fernet import Fernet
|
|
19
|
+
from django.conf import global_settings
|
|
20
|
+
from django.core.files.storage import storages # noqa: F401
|
|
19
21
|
from django.core.exceptions import ImproperlyConfigured
|
|
20
22
|
from django.db import connection
|
|
21
23
|
|
|
@@ -56,7 +58,23 @@ MEDIA_ROOT = str(DEPLOY_ROOT / "media") # Django 3.1 adds support for pathlib.P
|
|
|
56
58
|
STATIC_URL = "/assets/"
|
|
57
59
|
STATIC_ROOT = DEPLOY_ROOT / STATIC_URL.strip("/")
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
# begin compatibility layer for DEFAULT_FILE_STORAGE
|
|
62
|
+
# Django does not allow STORAGES and DEFAULT_FILE_STORAGE in the same settings module
|
|
63
|
+
# (they are mutually exclusive). We set both on global_settings as defaults so that
|
|
64
|
+
# users can override either one via dynaconf, and Django picks the right one for its version.
|
|
65
|
+
_DEFAULT_FILE_STORAGE = "pulpcore.app.models.storage.FileSystem"
|
|
66
|
+
_STORAGES = {
|
|
67
|
+
"default": {
|
|
68
|
+
"BACKEND": "pulpcore.app.models.storage.FileSystem",
|
|
69
|
+
},
|
|
70
|
+
"staticfiles": {
|
|
71
|
+
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
setattr(global_settings, "DEFAULT_FILE_STORAGE", _DEFAULT_FILE_STORAGE)
|
|
75
|
+
setattr(global_settings, "STORAGES", _STORAGES)
|
|
76
|
+
# end DEFAULT_FILE_STORAGE compatibility layer
|
|
77
|
+
|
|
60
78
|
REDIRECT_TO_OBJECT_STORAGE = True
|
|
61
79
|
|
|
62
80
|
WORKING_DIRECTORY = DEPLOY_ROOT / "tmp"
|
|
@@ -363,16 +381,18 @@ KAFKA_SASL_PASSWORD = None
|
|
|
363
381
|
from dynaconf import DjangoDynaconf, Validator # noqa
|
|
364
382
|
|
|
365
383
|
# Validators
|
|
384
|
+
storage_keys = ("STORAGES.default.BACKEND", "DEFAULT_FILE_STORAGE")
|
|
366
385
|
storage_validator = (
|
|
367
386
|
Validator("REDIRECT_TO_OBJECT_STORAGE", eq=False)
|
|
368
|
-
| Validator(
|
|
369
|
-
| Validator(
|
|
370
|
-
| Validator(
|
|
371
|
-
| Validator(
|
|
387
|
+
| Validator(*storage_keys, eq="pulpcore.app.models.storage.FileSystem")
|
|
388
|
+
| Validator(*storage_keys, eq="storages.backends.azure_storage.AzureStorage")
|
|
389
|
+
| Validator(*storage_keys, eq="storages.backends.s3boto3.S3Boto3Storage")
|
|
390
|
+
| Validator(*storage_keys, eq="storages.backends.gcloud.GoogleCloudStorage")
|
|
372
391
|
)
|
|
373
392
|
storage_validator.messages["combined"] = (
|
|
374
|
-
"'REDIRECT_TO_OBJECT_STORAGE=True' is only supported with the local file, S3, GCP or Azure"
|
|
375
|
-
"storage backend configured in
|
|
393
|
+
"'REDIRECT_TO_OBJECT_STORAGE=True' is only supported with the local file, S3, GCP or Azure "
|
|
394
|
+
"storage backend configured in STORAGES['default']['BACKEND'] "
|
|
395
|
+
"(deprecated DEFAULT_FILE_STORAGE)."
|
|
376
396
|
)
|
|
377
397
|
|
|
378
398
|
cache_enabled_validator = Validator("CACHE_ENABLED", eq=True)
|
|
@@ -555,6 +575,10 @@ if not (len(sys.argv) >= 2 and sys.argv[1] in _SKIPPED_COMMANDS_FOR_CONTENT_CHEC
|
|
|
555
575
|
finally:
|
|
556
576
|
connection.close()
|
|
557
577
|
|
|
578
|
+
# Ensures the cached property storage.backends uses the right value after dynaconf init
|
|
579
|
+
storages._backends = settings.STORAGES.copy()
|
|
580
|
+
storages.backends
|
|
581
|
+
|
|
558
582
|
if settings.API_ROOT_REWRITE_HEADER:
|
|
559
583
|
api_root = "/<path:api_root>/"
|
|
560
584
|
else:
|
|
@@ -70,7 +70,7 @@ def _export_to_file_system(path, relative_paths_to_artifacts, method=FS_EXPORT_M
|
|
|
70
70
|
ValidationError: When path is not in the ALLOWED_EXPORT_PATHS setting
|
|
71
71
|
"""
|
|
72
72
|
using_filesystem_storage = (
|
|
73
|
-
settings.
|
|
73
|
+
settings.STORAGES["default"]["BACKEND"] == "pulpcore.app.models.storage.FileSystem"
|
|
74
74
|
)
|
|
75
75
|
|
|
76
76
|
if method != FS_EXPORT_METHODS.WRITE and not using_filesystem_storage:
|
|
@@ -228,6 +228,9 @@ def _import_file(fpath, resource_class, retry=False):
|
|
|
228
228
|
"""
|
|
229
229
|
try:
|
|
230
230
|
log.info(f"Importing file {fpath}.")
|
|
231
|
+
if not os.path.isfile(fpath):
|
|
232
|
+
log.info("...empty - skipping.")
|
|
233
|
+
return []
|
|
231
234
|
with open(fpath, "r") as json_file:
|
|
232
235
|
resource = resource_class()
|
|
233
236
|
log.info(f"...Importing resource {resource.__class__.__name__}.")
|
|
@@ -236,6 +239,8 @@ def _import_file(fpath, resource_class, retry=False):
|
|
|
236
239
|
# overlapping content.
|
|
237
240
|
for batch_str in _impfile_iterator(json_file):
|
|
238
241
|
data = Dataset().load(StringIO(batch_str))
|
|
242
|
+
if not data:
|
|
243
|
+
return []
|
|
239
244
|
if retry:
|
|
240
245
|
curr_attempt = 1
|
|
241
246
|
|
|
@@ -267,6 +272,7 @@ def _import_file(fpath, resource_class, retry=False):
|
|
|
267
272
|
try:
|
|
268
273
|
a_result = resource.import_data(data, raise_errors=True)
|
|
269
274
|
except Exception as e: # noqa log on ANY exception and then re-raise
|
|
275
|
+
log.error(e)
|
|
270
276
|
log.error(f"FATAL import-failure importing {fpath}")
|
|
271
277
|
raise
|
|
272
278
|
else:
|
|
@@ -528,7 +528,7 @@ def get_artifact_url(artifact, headers=None, http_method=None):
|
|
|
528
528
|
if settings.DOMAIN_ENABLED:
|
|
529
529
|
loc = f"domain {artifact_domain.name}.storage_class"
|
|
530
530
|
else:
|
|
531
|
-
loc = "settings.
|
|
531
|
+
loc = "settings.STORAGES['default']['BACKEND']"
|
|
532
532
|
|
|
533
533
|
raise NotImplementedError(
|
|
534
534
|
f"The value {loc}={artifact_domain.storage_class} does not allow redirecting."
|
|
@@ -574,7 +574,9 @@ def get_default_domain():
|
|
|
574
574
|
try:
|
|
575
575
|
default_domain = Domain.objects.get(name="default")
|
|
576
576
|
except Domain.DoesNotExist:
|
|
577
|
-
default_domain = Domain(
|
|
577
|
+
default_domain = Domain(
|
|
578
|
+
name="default", storage_class=settings.STORAGES["default"]["BACKEND"]
|
|
579
|
+
)
|
|
578
580
|
default_domain.save(skip_hooks=True)
|
|
579
581
|
|
|
580
582
|
return default_domain
|
|
@@ -41,6 +41,9 @@ class QueryModelResource(resources.ModelResource):
|
|
|
41
41
|
def dehydrate_pulp_domain(self, content):
|
|
42
42
|
return str(content.pulp_domain_id)
|
|
43
43
|
|
|
44
|
+
def render(self, value, obj=None, **kwargs):
|
|
45
|
+
return super().render(value, obj, coerce_to_string=False, **kwargs)
|
|
46
|
+
|
|
44
47
|
def __init__(self, repo_version=None):
|
|
45
48
|
self.repo_version = repo_version
|
|
46
49
|
if repo_version:
|
|
@@ -597,28 +597,36 @@ def backend_settings_factory(pulp_settings):
|
|
|
597
597
|
keys = dict()
|
|
598
598
|
keys["pulpcore.app.models.storage.FileSystem"] = ["MEDIA_ROOT", "MEDIA_URL"]
|
|
599
599
|
keys["storages.backends.s3boto3.S3Boto3Storage"] = [
|
|
600
|
-
"
|
|
601
|
-
"
|
|
602
|
-
"
|
|
603
|
-
"
|
|
604
|
-
"
|
|
605
|
-
"
|
|
606
|
-
"
|
|
600
|
+
"access_key",
|
|
601
|
+
"secret_key",
|
|
602
|
+
"endpoint_url",
|
|
603
|
+
"addressing_style",
|
|
604
|
+
"signature_version",
|
|
605
|
+
"region_name",
|
|
606
|
+
"bucket_name",
|
|
607
607
|
]
|
|
608
608
|
keys["storages.backends.s3.S3Storage"] = keys["storages.backends.s3boto3.S3Boto3Storage"]
|
|
609
609
|
keys["storages.backends.azure_storage.AzureStorage"] = [
|
|
610
|
-
"
|
|
611
|
-
"
|
|
612
|
-
"
|
|
613
|
-
"
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"
|
|
610
|
+
"account_name",
|
|
611
|
+
"azure_container",
|
|
612
|
+
"account_key",
|
|
613
|
+
"expiration_secs",
|
|
614
|
+
"overwrite_files",
|
|
615
|
+
"location",
|
|
616
|
+
"connection_string",
|
|
617
617
|
]
|
|
618
618
|
settings = storage_settings or dict()
|
|
619
|
-
backend = storage_class or pulp_settings.
|
|
620
|
-
for
|
|
621
|
-
|
|
619
|
+
backend = storage_class or pulp_settings.STORAGES["default"]["BACKEND"]
|
|
620
|
+
not_defined_settings = (k for k in keys[backend] if k not in settings)
|
|
621
|
+
# Read storage settings from STORAGES.default.OPTIONS when using the default backend
|
|
622
|
+
default_backend = pulp_settings.STORAGES["default"]["BACKEND"]
|
|
623
|
+
storages_dict = getattr(pulp_settings, "STORAGES", {})
|
|
624
|
+
storage_options = storages_dict.get("default", {}).get("OPTIONS", {})
|
|
625
|
+
if storage_options and backend == default_backend:
|
|
626
|
+
for key in not_defined_settings:
|
|
627
|
+
settings[key] = storage_options.get(key)
|
|
628
|
+
else:
|
|
629
|
+
for key in not_defined_settings:
|
|
622
630
|
settings[key] = getattr(pulp_settings, key, None)
|
|
623
631
|
return backend, settings
|
|
624
632
|
|
{pulpcore-3.63.29 → pulpcore-3.63.31}/pulpcore/tests/functional/api/test_artifact_distribution.py
RENAMED
|
@@ -2,8 +2,6 @@ import requests
|
|
|
2
2
|
import subprocess
|
|
3
3
|
from hashlib import sha256
|
|
4
4
|
|
|
5
|
-
from django.conf import settings
|
|
6
|
-
|
|
7
5
|
|
|
8
6
|
OBJECT_STORAGES = (
|
|
9
7
|
"storages.backends.s3boto3.S3Boto3Storage",
|
|
@@ -13,7 +11,7 @@ OBJECT_STORAGES = (
|
|
|
13
11
|
)
|
|
14
12
|
|
|
15
13
|
|
|
16
|
-
def test_artifact_distribution(random_artifact):
|
|
14
|
+
def test_artifact_distribution(random_artifact, pulp_settings):
|
|
17
15
|
artifact_uuid = random_artifact.pulp_href.split("/")[-2]
|
|
18
16
|
|
|
19
17
|
commands = (
|
|
@@ -30,7 +28,7 @@ def test_artifact_distribution(random_artifact):
|
|
|
30
28
|
hasher = sha256()
|
|
31
29
|
hasher.update(response.content)
|
|
32
30
|
assert hasher.hexdigest() == random_artifact.sha256
|
|
33
|
-
if
|
|
31
|
+
if pulp_settings.STORAGES["default"]["BACKEND"] in OBJECT_STORAGES:
|
|
34
32
|
content_disposition = response.headers.get("Content-Disposition")
|
|
35
33
|
assert content_disposition is not None
|
|
36
34
|
filename = artifact_uuid
|
|
@@ -6,7 +6,6 @@ import os
|
|
|
6
6
|
import uuid
|
|
7
7
|
import pytest
|
|
8
8
|
|
|
9
|
-
from django.conf import settings
|
|
10
9
|
from pulpcore.client.pulpcore import ApiException
|
|
11
10
|
|
|
12
11
|
|
|
@@ -145,12 +144,12 @@ def test_upload_mixed_attrs(pulpcore_bindings, pulpcore_random_file):
|
|
|
145
144
|
|
|
146
145
|
|
|
147
146
|
@pytest.mark.parallel
|
|
148
|
-
def test_delete_artifact(pulpcore_bindings, pulpcore_random_file, gen_user):
|
|
147
|
+
def test_delete_artifact(pulpcore_bindings, pulpcore_random_file, gen_user, pulp_settings):
|
|
149
148
|
"""Verify that the deletion of artifacts is prohibited for both regular users and
|
|
150
149
|
administrators."""
|
|
151
|
-
if
|
|
150
|
+
if pulp_settings.STORAGES["default"]["BACKEND"] != "pulpcore.app.models.storage.FileSystem":
|
|
152
151
|
pytest.skip("this test only works for filesystem storage")
|
|
153
|
-
media_root =
|
|
152
|
+
media_root = pulp_settings.MEDIA_ROOT
|
|
154
153
|
|
|
155
154
|
artifact = pulpcore_bindings.ArtifactsApi.create(pulpcore_random_file["name"])
|
|
156
155
|
path_to_file = os.path.join(media_root, artifact.file)
|
|
@@ -5,7 +5,6 @@ import random
|
|
|
5
5
|
import string
|
|
6
6
|
import json
|
|
7
7
|
from pulpcore.client.pulpcore import ApiException
|
|
8
|
-
from pulpcore.app import settings
|
|
9
8
|
|
|
10
9
|
from pulpcore.tests.functional.utils import PulpTaskError
|
|
11
10
|
|
|
@@ -51,7 +50,7 @@ def test_crud_domains(pulpcore_bindings, monitor_task):
|
|
|
51
50
|
|
|
52
51
|
|
|
53
52
|
@pytest.mark.parallel
|
|
54
|
-
def test_default_domain(pulpcore_bindings):
|
|
53
|
+
def test_default_domain(pulpcore_bindings, pulp_settings):
|
|
55
54
|
"""Test properties around the default domain."""
|
|
56
55
|
domains = pulpcore_bindings.DomainsApi.list(name="default")
|
|
57
56
|
assert domains.count == 1
|
|
@@ -59,9 +58,9 @@ def test_default_domain(pulpcore_bindings):
|
|
|
59
58
|
# Read the default domain, ensure storage is set to default
|
|
60
59
|
default_domain = domains.results[0]
|
|
61
60
|
assert default_domain.name == "default"
|
|
62
|
-
assert default_domain.storage_class ==
|
|
63
|
-
assert default_domain.redirect_to_object_storage ==
|
|
64
|
-
assert default_domain.hide_guarded_distributions ==
|
|
61
|
+
assert default_domain.storage_class == pulp_settings.STORAGES["default"]["BACKEND"]
|
|
62
|
+
assert default_domain.redirect_to_object_storage == pulp_settings.REDIRECT_TO_OBJECT_STORAGE
|
|
63
|
+
assert default_domain.hide_guarded_distributions == pulp_settings.HIDE_GUARDED_DISTRIBUTIONS
|
|
65
64
|
|
|
66
65
|
# Try to create another default domain
|
|
67
66
|
body = {
|
|
@@ -92,9 +91,9 @@ def test_default_domain(pulpcore_bindings):
|
|
|
92
91
|
|
|
93
92
|
|
|
94
93
|
@pytest.mark.parallel
|
|
95
|
-
def test_active_domain_deletion(pulpcore_bindings, monitor_task):
|
|
94
|
+
def test_active_domain_deletion(pulpcore_bindings, monitor_task, pulp_settings):
|
|
96
95
|
"""Test trying to delete a domain that is in use, has objects in it."""
|
|
97
|
-
if not
|
|
96
|
+
if not pulp_settings.DOMAIN_ENABLED:
|
|
98
97
|
pytest.skip("Domains not enabled")
|
|
99
98
|
name = str(uuid.uuid4())
|
|
100
99
|
body = {
|
|
@@ -133,9 +132,10 @@ def test_orphan_domain_deletion(
|
|
|
133
132
|
gen_object_with_cleanup,
|
|
134
133
|
monitor_task,
|
|
135
134
|
tmp_path,
|
|
135
|
+
pulp_settings,
|
|
136
136
|
):
|
|
137
137
|
"""Test trying to delete a domain that is in use, has objects in it."""
|
|
138
|
-
if not
|
|
138
|
+
if not pulp_settings.DOMAIN_ENABLED:
|
|
139
139
|
pytest.skip("Domains not enabled")
|
|
140
140
|
body = {
|
|
141
141
|
"name": str(uuid.uuid4()),
|
|
@@ -177,9 +177,9 @@ def test_orphan_domain_deletion(
|
|
|
177
177
|
|
|
178
178
|
|
|
179
179
|
@pytest.mark.parallel
|
|
180
|
-
def test_special_domain_creation(pulpcore_bindings, gen_object_with_cleanup):
|
|
180
|
+
def test_special_domain_creation(pulpcore_bindings, gen_object_with_cleanup, pulp_settings):
|
|
181
181
|
"""Test many possible domain creation scenarios."""
|
|
182
|
-
if not
|
|
182
|
+
if not pulp_settings.DOMAIN_ENABLED:
|
|
183
183
|
pytest.skip("Domains not enabled")
|
|
184
184
|
# This test needs to account for which environment it is running in
|
|
185
185
|
storage_types = {
|