pulpcore 3.28.43__tar.gz → 3.28.44__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.28.43 → pulpcore-3.28.44}/CHANGES.md +15 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/PKG-INFO +1 -1
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/apps.py +1 -1
- pulpcore-3.28.44/pulpcore/app/checks.py +119 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/settings.py +0 -64
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/PKG-INFO +1 -1
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pyproject.toml +3 -1
- {pulpcore-3.28.43 → pulpcore-3.28.44}/setup.py +1 -1
- pulpcore-3.28.43/pulpcore/app/checks.py +0 -58
- {pulpcore-3.28.43 → pulpcore-3.28.44}/CODE_OF_CONDUCT.md +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/COMMITMENT +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/CONTRIBUTING.md +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/COPYRIGHT +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/LICENSE +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/MANIFEST.in +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/README.md +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/bin/pulp-content +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/ci_requirements.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/functest_requirements.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/manage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/authentication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/files.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/global_access_conditions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/importexport.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/loggers.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/manage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/add-signing-service.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/analyze-publication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/dump-permissions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/openapi.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/remove-plugin.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0011_relative_path.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0026_task_group.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0027_export_backend.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0029_export_delete.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0055_label.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0074_acs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0091_systemid.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0099_versions_field.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0101_add_domain.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0104_delete_label.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/mime_types.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/modelresource.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/acs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/analytics.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/domain.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/exporter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/generic.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/importer.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/progress.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/publication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/role.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/status.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/storage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/task.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/models/upload.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/monkeypatch.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/protobuf/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/pulp_hashlib.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/redis_connection.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/response.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/role_util.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/acs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/domain.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/exporter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/fields.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/importer.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/orphans.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/progress.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/publication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/purge.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/reclaim.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/repair.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/status.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/task.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/upload.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/serializers/user.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/analytics.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/export.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/importer.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/orphan.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/purge.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/reclaim_space.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/test.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/tasks/upload.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/templates/rest_framework/api.html +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/templatetags/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/templatetags/pulp_urls.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/urls.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/util.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/views/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/views/importer.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/views/orphans.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/views/repair.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/views/status.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/acs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/custom_filters.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/domain.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/exporter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/importer.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/orphans.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/publication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/reclaim.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/task.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/upload.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/viewsets/user.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/wsgi.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/backends.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/cache/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/cache/cache.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/constants.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/content/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/content/authentication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/content/handler.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/download/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/download/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/download/factory.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/download/file.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/download/http.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/exceptions/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/exceptions/base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/exceptions/plugin.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/exceptions/validation.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/filters.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/middleware.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/openapi/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/actions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/apps.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/authentication/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/cache/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/constants.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/download/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/exceptions.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/files.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/importexport.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/modelresources.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/models/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/models/role.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/publication_utils.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/pulp_hashlib.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/replica.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/repo_version_utils.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/responses.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/serializers/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/serializers/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/api.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/artifact_stages.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/content_stages.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/declarative_version.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/stages/models.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/storage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/sync.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/tasking.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/util.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/viewsets/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/plugin/viewsets/content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/responses.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/constants.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/entrypoint.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/pulpcore_worker.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/storage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/tasks.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tasking/util.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_auth.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_filter.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_replication.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_repos.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_role.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_scoping.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_status.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_tasking.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_upload.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/test_workers.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/content_with_coverage.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/gpg_ascii_armor_signing_service.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/functional/utils.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/conftest.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/content/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/content/test_handler.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/download/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/migration/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/models/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/models/test_base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/models/test_content.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/models/test_remote.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/models/test_repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/roles/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/roles/test_roles.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/serializers/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/serializers/test_base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/stages/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/stages/test_stages.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_cache.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_content_guard.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_files.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_import_checks.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_settings.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/test_util.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/SOURCES.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/dependency_links.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/entry_points.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/requires.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore.egg-info/top_level.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/requirements.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/setup.cfg +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/test_requirements.txt +0 -0
- {pulpcore-3.28.43 → pulpcore-3.28.44}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 3.28.44 (2026-03-10) {: #3.28.44 }
|
|
12
|
+
|
|
13
|
+
### REST API {: #3.28.44-rest-api }
|
|
14
|
+
|
|
15
|
+
#### Bugfixes {: #3.28.44-rest-api-bugfix }
|
|
16
|
+
|
|
17
|
+
- Moved artifact checksum validation from module-level settings code to a Django system check.
|
|
18
|
+
[#7380](https://github.com/pulp/pulpcore/issues/7380)
|
|
19
|
+
|
|
20
|
+
### Plugin API {: #3.28.44-plugin-api }
|
|
21
|
+
|
|
22
|
+
No significant changes.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
11
26
|
## 3.28.43 (2025-12-09) {: #3.28.43 }
|
|
12
27
|
|
|
13
28
|
### REST API {: #3.28.43-rest-api }
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
from django.core.checks import (
|
|
5
|
+
Debug as CheckDebug,
|
|
6
|
+
Error as CheckError,
|
|
7
|
+
Warning as CheckWarning,
|
|
8
|
+
Tags,
|
|
9
|
+
register,
|
|
10
|
+
)
|
|
11
|
+
from django.db.models import Q
|
|
12
|
+
|
|
13
|
+
from pulpcore import constants
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@register(deploy=True)
|
|
17
|
+
def content_origin_check(app_configs, **kwargs):
|
|
18
|
+
messages = []
|
|
19
|
+
if getattr(settings, "CONTENT_ORIGIN", "UNREACHABLE") == "UNREACHABLE":
|
|
20
|
+
messages.append(
|
|
21
|
+
CheckError(
|
|
22
|
+
"CONTENT_ORIGIN is a required setting but it was not configured. This may be "
|
|
23
|
+
"caused by invalid read permissions of the settings file. Note that "
|
|
24
|
+
"CONTENT_ORIGIN is set by the installation automatically.",
|
|
25
|
+
id="pulpcore.E001",
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
return messages
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@register(deploy=True)
|
|
32
|
+
def storage_paths(app_configs, **kwargs):
|
|
33
|
+
warnings = []
|
|
34
|
+
|
|
35
|
+
if settings.DEFAULT_FILE_STORAGE == "pulpcore.app.models.storage.FileSystem":
|
|
36
|
+
try:
|
|
37
|
+
media_root_dev = Path(settings.MEDIA_ROOT).stat().st_dev
|
|
38
|
+
except OSError:
|
|
39
|
+
media_root_dev = None
|
|
40
|
+
warnings.append(
|
|
41
|
+
CheckWarning(
|
|
42
|
+
"Your MEDIA_ROOT setting points to a path that does not exist.",
|
|
43
|
+
id="pulpcore.W001",
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
try:
|
|
48
|
+
working_dir_dev = Path(settings.WORKING_DIRECTORY).stat().st_dev
|
|
49
|
+
except OSError:
|
|
50
|
+
working_dir_dev = None
|
|
51
|
+
warnings.append(
|
|
52
|
+
CheckWarning(
|
|
53
|
+
"Your WORKING_DIRECTORY setting points to a path that does not exist.",
|
|
54
|
+
id="pulpcore.W002",
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
if media_root_dev and media_root_dev != working_dir_dev:
|
|
59
|
+
warnings.append(
|
|
60
|
+
CheckWarning(
|
|
61
|
+
"MEDIA_ROOT and WORKING_DIRECTORY are on different filesystems. "
|
|
62
|
+
"It is highly recommended that these live on the same filesystem",
|
|
63
|
+
id="pulpcore.W003",
|
|
64
|
+
)
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
return warnings
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@register(Tags.database)
|
|
71
|
+
def check_artifact_checksums(app_configs, **kwargs):
|
|
72
|
+
from pulpcore.app.models import Artifact, RemoteArtifact
|
|
73
|
+
|
|
74
|
+
messages = []
|
|
75
|
+
allowed = set(settings.ALLOWED_CONTENT_CHECKSUMS)
|
|
76
|
+
forbidden = set(constants.ALL_KNOWN_CONTENT_CHECKSUMS).difference(allowed)
|
|
77
|
+
|
|
78
|
+
try:
|
|
79
|
+
for checksum in allowed:
|
|
80
|
+
if Artifact.objects.filter(**{checksum: None}).exists():
|
|
81
|
+
messages.append(
|
|
82
|
+
CheckError(
|
|
83
|
+
f"There have been identified artifacts missing checksum '{checksum}'. "
|
|
84
|
+
"Run 'pulpcore-manager handle-artifact-checksums' first to populate "
|
|
85
|
+
"missing artifact checksums.",
|
|
86
|
+
id="pulpcore.E002",
|
|
87
|
+
)
|
|
88
|
+
)
|
|
89
|
+
for checksum in forbidden:
|
|
90
|
+
if Artifact.objects.exclude(**{checksum: None}).exists():
|
|
91
|
+
messages.append(
|
|
92
|
+
CheckWarning(
|
|
93
|
+
f"There have been identified artifacts with forbidden checksum "
|
|
94
|
+
f"'{checksum}'. Run 'pulpcore-manager handle-artifact-checksums' "
|
|
95
|
+
"to unset forbidden checksums.",
|
|
96
|
+
id="pulpcore.W004",
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
has_any_checksum = ~Q(**{c: None for c in constants.ALL_KNOWN_CONTENT_CHECKSUMS})
|
|
101
|
+
missing_allowed = Q(**{c: None for c in allowed})
|
|
102
|
+
if RemoteArtifact.objects.filter(has_any_checksum & missing_allowed).exists():
|
|
103
|
+
messages.append(
|
|
104
|
+
CheckWarning(
|
|
105
|
+
"Detected remote content without allowed checksums. "
|
|
106
|
+
"Run 'pulpcore-manager handle-artifact-checksums --report' to "
|
|
107
|
+
"view this content.",
|
|
108
|
+
id="pulpcore.W005",
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
except Exception:
|
|
112
|
+
messages.append(
|
|
113
|
+
CheckDebug(
|
|
114
|
+
"Skipping artifact checksum checks (table may not exist yet).",
|
|
115
|
+
id="pulpcore.D001",
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
return messages
|
|
@@ -18,7 +18,6 @@ from pkg_resources import iter_entry_points
|
|
|
18
18
|
|
|
19
19
|
from cryptography.fernet import Fernet
|
|
20
20
|
from django.core.exceptions import ImproperlyConfigured
|
|
21
|
-
from django.db import connection
|
|
22
21
|
|
|
23
22
|
from pulpcore import constants
|
|
24
23
|
|
|
@@ -410,69 +409,6 @@ FORBIDDEN_CHECKSUMS = set(constants.ALL_KNOWN_CONTENT_CHECKSUMS).difference(
|
|
|
410
409
|
ALLOWED_CONTENT_CHECKSUMS
|
|
411
410
|
)
|
|
412
411
|
|
|
413
|
-
_SKIPPED_COMMANDS_FOR_CONTENT_CHECKS = [
|
|
414
|
-
"handle-artifact-checksums",
|
|
415
|
-
"migrate",
|
|
416
|
-
"collectstatic",
|
|
417
|
-
"openapi",
|
|
418
|
-
]
|
|
419
|
-
|
|
420
|
-
if not (len(sys.argv) >= 2 and sys.argv[1] in _SKIPPED_COMMANDS_FOR_CONTENT_CHECKS):
|
|
421
|
-
try:
|
|
422
|
-
with connection.cursor() as cursor:
|
|
423
|
-
for checksum in ALLOWED_CONTENT_CHECKSUMS:
|
|
424
|
-
# can't import Artifact here so use a direct db connection
|
|
425
|
-
cursor.execute(f"SELECT count(pulp_id) FROM core_artifact WHERE {checksum} IS NULL")
|
|
426
|
-
row = cursor.fetchone()
|
|
427
|
-
if row[0] > 0:
|
|
428
|
-
raise ImproperlyConfigured(
|
|
429
|
-
(
|
|
430
|
-
"There have been identified artifacts missing checksum '{}'. "
|
|
431
|
-
"Run 'pulpcore-manager handle-artifact-checksums' first to populate "
|
|
432
|
-
"missing artifact checksums."
|
|
433
|
-
).format(checksum)
|
|
434
|
-
)
|
|
435
|
-
for checksum in FORBIDDEN_CHECKSUMS:
|
|
436
|
-
# can't import Artifact here so use a direct db connection
|
|
437
|
-
cursor.execute(
|
|
438
|
-
f"SELECT count(pulp_id) FROM core_artifact WHERE {checksum} IS NOT NULL"
|
|
439
|
-
)
|
|
440
|
-
row = cursor.fetchone()
|
|
441
|
-
if row[0] > 0:
|
|
442
|
-
raise ImproperlyConfigured(
|
|
443
|
-
(
|
|
444
|
-
"There have been identified artifacts with forbidden checksum '{}'. "
|
|
445
|
-
"Run 'pulpcore-manager handle-artifact-checksums' first to unset "
|
|
446
|
-
"forbidden checksums."
|
|
447
|
-
).format(checksum)
|
|
448
|
-
)
|
|
449
|
-
|
|
450
|
-
# warn if there are remote artifacts with checksums but no allowed checksums
|
|
451
|
-
cond = " AND ".join([f"{c} IS NULL" for c in constants.ALL_KNOWN_CONTENT_CHECKSUMS])
|
|
452
|
-
no_checksum_query = f"SELECT pulp_id FROM core_remoteartifact WHERE {cond}"
|
|
453
|
-
cond = " AND ".join([f"{c} IS NULL" for c in ALLOWED_CONTENT_CHECKSUMS])
|
|
454
|
-
cursor.execute(
|
|
455
|
-
f"SELECT count(pulp_id) FROM core_remoteartifact WHERE {cond} AND "
|
|
456
|
-
f"pulp_id NOT IN ({no_checksum_query})"
|
|
457
|
-
)
|
|
458
|
-
row = cursor.fetchone()
|
|
459
|
-
if row[0] > 0:
|
|
460
|
-
_logger.warning(
|
|
461
|
-
(
|
|
462
|
-
"Warning: detected remote content without allowed checksums. "
|
|
463
|
-
"Run 'pulpcore-manager handle-artifact-checksums --report' to "
|
|
464
|
-
"view this content."
|
|
465
|
-
)
|
|
466
|
-
)
|
|
467
|
-
|
|
468
|
-
except ImproperlyConfigured as e:
|
|
469
|
-
raise e
|
|
470
|
-
except Exception:
|
|
471
|
-
# our check could fail if the table hasn't been created yet or we can't get a db connection
|
|
472
|
-
pass
|
|
473
|
-
finally:
|
|
474
|
-
connection.close()
|
|
475
|
-
|
|
476
412
|
settings.set("V3_API_ROOT", settings.API_ROOT + "api/v3/") # Not user configurable
|
|
477
413
|
settings.set("V3_DOMAIN_API_ROOT", settings.API_ROOT + "<slug:pulp_domain>/api/v3/")
|
|
478
414
|
settings.set("V3_API_ROOT_NO_FRONT_SLASH", settings.V3_API_ROOT.lstrip("/"))
|
|
@@ -89,12 +89,14 @@ ignore = [
|
|
|
89
89
|
".github/**",
|
|
90
90
|
"lint_requirements.txt",
|
|
91
91
|
".flake8",
|
|
92
|
+
"AGENTS.md",
|
|
93
|
+
"CLAUDE.md",
|
|
92
94
|
]
|
|
93
95
|
|
|
94
96
|
[tool.bumpversion]
|
|
95
97
|
# This section is managed by the plugin template. Do not edit manually.
|
|
96
98
|
|
|
97
|
-
current_version = "3.28.
|
|
99
|
+
current_version = "3.28.44"
|
|
98
100
|
commit = false
|
|
99
101
|
tag = false
|
|
100
102
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
|
|
@@ -8,7 +8,7 @@ with open("requirements.txt") as requirements:
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name="pulpcore",
|
|
11
|
-
version="3.28.
|
|
11
|
+
version="3.28.44",
|
|
12
12
|
description="Pulp Django Application and Related Modules",
|
|
13
13
|
long_description=long_description,
|
|
14
14
|
long_description_content_type="text/markdown",
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
|
|
3
|
-
from django.conf import settings
|
|
4
|
-
from django.core.checks import Error as CheckError, Warning as CheckWarning, register
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@register(deploy=True)
|
|
8
|
-
def content_origin_check(app_configs, **kwargs):
|
|
9
|
-
messages = []
|
|
10
|
-
if getattr(settings, "CONTENT_ORIGIN", "UNREACHABLE") == "UNREACHABLE":
|
|
11
|
-
messages.append(
|
|
12
|
-
CheckError(
|
|
13
|
-
"CONTENT_ORIGIN is a required setting but it was not configured. This may be "
|
|
14
|
-
"caused by invalid read permissions of the settings file. Note that "
|
|
15
|
-
"CONTENT_ORIGIN is set by the installation automatically.",
|
|
16
|
-
id="pulpcore.E001",
|
|
17
|
-
)
|
|
18
|
-
)
|
|
19
|
-
return messages
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@register(deploy=True)
|
|
23
|
-
def storage_paths(app_configs, **kwargs):
|
|
24
|
-
warnings = []
|
|
25
|
-
|
|
26
|
-
if settings.DEFAULT_FILE_STORAGE == "pulpcore.app.models.storage.FileSystem":
|
|
27
|
-
try:
|
|
28
|
-
media_root_dev = Path(settings.MEDIA_ROOT).stat().st_dev
|
|
29
|
-
except OSError:
|
|
30
|
-
media_root_dev = None
|
|
31
|
-
warnings.append(
|
|
32
|
-
CheckWarning(
|
|
33
|
-
"Your MEDIA_ROOT setting points to a path that does not exist.",
|
|
34
|
-
id="pulpcore.W001",
|
|
35
|
-
)
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
try:
|
|
39
|
-
working_dir_dev = Path(settings.WORKING_DIRECTORY).stat().st_dev
|
|
40
|
-
except OSError:
|
|
41
|
-
working_dir_dev = None
|
|
42
|
-
warnings.append(
|
|
43
|
-
CheckWarning(
|
|
44
|
-
"Your WORKING_DIRECTORY setting points to a path that does not exist.",
|
|
45
|
-
id="pulpcore.W002",
|
|
46
|
-
)
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
if media_root_dev and media_root_dev != working_dir_dev:
|
|
50
|
-
warnings.append(
|
|
51
|
-
CheckWarning(
|
|
52
|
-
"MEDIA_ROOT and WORKING_DIRECTORY are on different filesystems. "
|
|
53
|
-
"It is highly recommended that these live on the same filesystem",
|
|
54
|
-
id="pulpcore.W003",
|
|
55
|
-
)
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
return warnings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/add-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/analyze-publication.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/dump-publications-to-fs.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/handle-artifact-checksums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/remove-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/management/commands/reset-admin-password.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0002_increase_artifact_size_field.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0003_remove_upload_completed.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0006_repository_plugin_managed.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0007_delete_progress_proxies.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0008_published_metadata_as_content.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0016_charfield_to_textfield.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0019_add_signing_service_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0023_change_exporter_models.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0031_import_export_validate_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0039_change_download_concurrency.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0044_temp_file_artifact_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0050_namespace_access_policies.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0058_accesspolicy_customized.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0063_repository_retained_versions.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0064_add_new_style_task_columns.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0064_repository_user_hidden.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0070_rename_retained_versions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0076_remove_reserved_resource.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0077_move_remote_url_credentials.py
RENAMED
|
File without changes
|
{pulpcore-3.28.43 → pulpcore-3.28.44}/pulpcore/app/migrations/0078_grouprole_role_userrole.py
RENAMED
|
File without changes
|