pulpcore 3.22.30__tar.gz → 3.22.32__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.22.30 → pulpcore-3.22.32}/CHANGES.md +31 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/MANIFEST.in +1 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/PKG-INFO +1 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/functest_requirements.txt +2 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/apps.py +1 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/exporter.py +4 -3
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/fields.py +11 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/importer.py +2 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/task.py +2 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/content.py +6 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_workers.py +5 -4
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/download/test_factory.py +10 -8
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/PKG-INFO +1 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/requires.txt +2 -2
- {pulpcore-3.22.30 → pulpcore-3.22.32}/requirements.txt +2 -2
- {pulpcore-3.22.30 → pulpcore-3.22.32}/setup.py +1 -1
- {pulpcore-3.22.30 → pulpcore-3.22.32}/CODE_OF_CONDUCT.md +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/COMMITMENT +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/CONTRIBUTING.md +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/COPYRIGHT +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/LICENSE +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/README.md +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/bin/pulp-content +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/ci_requirements.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/manage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/authentication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/checks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/files.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/global_access_conditions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/importexport.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/loggers.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/manage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/add-signing-service.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/analyze-publication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/datarepair-labels.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/dump-permissions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/openapi.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/remove-plugin.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/stage-profile-summary.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0011_relative_path.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0026_task_group.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0027_export_backend.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0029_export_delete.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0055_label.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0074_acs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0091_systemid.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/mime_types.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/modelresource.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/acs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/analytics.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/exporter.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/fields.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/generic.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/importer.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/progress.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/publication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/role.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/status.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/storage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/task.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/models/upload.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/monkeypatch.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/protobuf/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/pulp_hashlib.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/redis_connection.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/response.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/role_util.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/acs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/orphans.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/progress.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/publication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/purge.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/reclaim.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/repair.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/status.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/upload.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/serializers/user.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/settings.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/analytics.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/export.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/importer.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/orphan.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/purge.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/reclaim_space.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/test.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/tasks/upload.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/templates/rest_framework/api.html +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/templatetags/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/templatetags/pulp_urls.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/urls.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/util.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/views/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/views/importer.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/views/orphans.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/views/repair.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/views/status.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/acs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/custom_filters.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/exporter.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/importer.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/orphans.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/publication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/reclaim.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/task.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/upload.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/viewsets/user.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/wsgi.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/backends.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/cache/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/cache/cache.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/constants.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/content/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/content/authentication.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/content/handler.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/download/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/download/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/download/factory.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/download/file.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/download/http.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/exceptions/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/exceptions/base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/exceptions/plugin.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/exceptions/validation.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/filters.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/openapi/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/actions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/apps.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/authentication/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/cache/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/constants.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/download/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/exceptions.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/files.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/importexport.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/modelresources.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/models/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/models/role.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/publication_utils.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/pulp_hashlib.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/repo_version_utils.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/responses.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/serializers/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/serializers/content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/api.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/artifact_stages.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/content_stages.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/declarative_version.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/models.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/stages/profiler.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/storage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/sync.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/tasking.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/util.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/viewsets/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/plugin/viewsets/content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/responses.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/constants.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/entrypoint.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/pulpcore_worker.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/storage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/tasks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tasking/util.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_auth.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_role.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_scoping.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_status.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_tasking.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_upload.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/content_with_coverage.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/gpg_ascii_armor_signing_service.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/functional/utils.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/content/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/content/test_handler.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/download/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/download/test_download_base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/migrations/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/migrations/test_0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/models/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/models/test_content.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/models/test_remote.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/models/test_repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/roles/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/roles/test_roles.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/serializers/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/serializers/test_base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/stages/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/stages/test_stages.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_cache.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_content_guard.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_files.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_import_checks.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_settings.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/test_util.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/tests/unit/viewsets/test_base.py +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/SOURCES.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/dependency_links.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/entry_points.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore.egg-info/top_level.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/pyproject.toml +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/setup.cfg +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/test_requirements.txt +0 -0
- {pulpcore-3.22.30 → pulpcore-3.22.32}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,37 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 3.22.32 (2024-11-06) {: #3.22.32 }
|
|
12
|
+
|
|
13
|
+
### REST API {: #3.22.32-rest-api }
|
|
14
|
+
|
|
15
|
+
#### Bugfixes {: #3.22.32-rest-api-bugfix }
|
|
16
|
+
|
|
17
|
+
- Fixed the JSONField specification so it doesn't break ruby bindings.
|
|
18
|
+
See context [here](https://github.com/pulp/pulp_rpm/issues/3639).
|
|
19
|
+
|
|
20
|
+
### Plugin API {: #3.22.32-plugin-api }
|
|
21
|
+
|
|
22
|
+
No significant changes.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 3.22.31 (2024-10-01) {: #3.22.31 }
|
|
27
|
+
|
|
28
|
+
### REST API {: #3.22.31-rest-api }
|
|
29
|
+
|
|
30
|
+
#### Bugfixes {: #3.22.31-rest-api-bugfix }
|
|
31
|
+
|
|
32
|
+
- Fixed a bug that caused Pulp to return duplicate content when a user was logged in as a
|
|
33
|
+
non-superuser while the content was part of multiple repositories.
|
|
34
|
+
[#3641](https://github.com/pulp/pulpcore/issues/3641)
|
|
35
|
+
|
|
36
|
+
### Plugin API {: #3.22.31-plugin-api }
|
|
37
|
+
|
|
38
|
+
No significant changes.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
11
42
|
# ## 3.22.30 (2024-08-10) {: #3.22.30 }
|
|
12
43
|
|
|
13
44
|
### REST API {: #3.22.30-rest-api }
|
|
@@ -15,6 +15,7 @@ from pulpcore.app.serializers import (
|
|
|
15
15
|
RelatedField,
|
|
16
16
|
RelatedResourceField,
|
|
17
17
|
RepositoryVersionRelatedField,
|
|
18
|
+
fields,
|
|
18
19
|
)
|
|
19
20
|
from pulpcore.constants import FS_EXPORT_CHOICES, FS_EXPORT_METHODS
|
|
20
21
|
|
|
@@ -93,7 +94,7 @@ class ExportSerializer(ModelSerializer):
|
|
|
93
94
|
view_name="None", # This is a polymorphic field. The serializer does not need a view name.
|
|
94
95
|
)
|
|
95
96
|
|
|
96
|
-
params =
|
|
97
|
+
params = fields.JSONDictField(
|
|
97
98
|
help_text=_("Any additional parameters that were used to create the export."),
|
|
98
99
|
read_only=True,
|
|
99
100
|
)
|
|
@@ -108,12 +109,12 @@ class PulpExportSerializer(ExportSerializer):
|
|
|
108
109
|
Serializer for PulpExports.
|
|
109
110
|
"""
|
|
110
111
|
|
|
111
|
-
output_file_info =
|
|
112
|
+
output_file_info = fields.JSONDictField(
|
|
112
113
|
help_text=_("Dictionary of filename: sha256hash entries for export-output-file(s)"),
|
|
113
114
|
read_only=True,
|
|
114
115
|
)
|
|
115
116
|
|
|
116
|
-
toc_info =
|
|
117
|
+
toc_info = fields.JSONDictField(
|
|
117
118
|
help_text=_("Filename and sha256-checksum of table-of-contents for this export"),
|
|
118
119
|
read_only=True,
|
|
119
120
|
)
|
|
@@ -4,6 +4,8 @@ from gettext import gettext as _
|
|
|
4
4
|
from urllib.parse import urljoin
|
|
5
5
|
|
|
6
6
|
from django.conf import settings
|
|
7
|
+
from drf_spectacular.utils import extend_schema_field
|
|
8
|
+
from drf_spectacular.types import OpenApiTypes
|
|
7
9
|
from rest_framework import serializers
|
|
8
10
|
from rest_framework.fields import empty
|
|
9
11
|
from rest_framework.reverse import reverse
|
|
@@ -20,6 +22,15 @@ def relative_path_validator(relative_path):
|
|
|
20
22
|
)
|
|
21
23
|
|
|
22
24
|
|
|
25
|
+
@extend_schema_field(OpenApiTypes.OBJECT)
|
|
26
|
+
class JSONDictField(serializers.JSONField):
|
|
27
|
+
"""A drf JSONField override to force openapi schema to use 'object' type.
|
|
28
|
+
|
|
29
|
+
Not strictly correct, but we relied on that for a long time.
|
|
30
|
+
See: https://github.com/tfranzel/drf-spectacular/issues/1095
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
|
|
23
34
|
class SingleContentArtifactField(RelatedField):
|
|
24
35
|
"""
|
|
25
36
|
A serializer field for the '_artifacts' ManyToManyField on the Content model (single-artifact).
|
|
@@ -11,6 +11,7 @@ from pulpcore.app.serializers import (
|
|
|
11
11
|
ModelSerializer,
|
|
12
12
|
RelatedField,
|
|
13
13
|
ValidateFieldsMixin,
|
|
14
|
+
fields,
|
|
14
15
|
)
|
|
15
16
|
|
|
16
17
|
|
|
@@ -39,7 +40,7 @@ class ImportSerializer(ModelSerializer):
|
|
|
39
40
|
view_name="tasks-detail",
|
|
40
41
|
)
|
|
41
42
|
|
|
42
|
-
params =
|
|
43
|
+
params = fields.JSONDictField(
|
|
43
44
|
help_text=_("Any parameters that were used to create the import."),
|
|
44
45
|
)
|
|
45
46
|
|
|
@@ -11,6 +11,7 @@ from pulpcore.app.serializers import (
|
|
|
11
11
|
RelatedField,
|
|
12
12
|
RelatedResourceField,
|
|
13
13
|
TaskGroupStatusCountField,
|
|
14
|
+
fields,
|
|
14
15
|
)
|
|
15
16
|
from pulpcore.constants import TASK_STATES
|
|
16
17
|
|
|
@@ -41,7 +42,7 @@ class TaskSerializer(ModelSerializer):
|
|
|
41
42
|
help_text=_("Timestamp of the when this task stopped execution."), read_only=True
|
|
42
43
|
)
|
|
43
44
|
error = serializers.DictField(
|
|
44
|
-
child=
|
|
45
|
+
child=fields.JSONDictField(),
|
|
45
46
|
help_text=_(
|
|
46
47
|
"A JSON Object of a fatal error encountered during the execution of this task."
|
|
47
48
|
),
|
|
@@ -121,7 +121,12 @@ class BaseContentViewSet(NamedModelViewSet):
|
|
|
121
121
|
repo_viewset = get_viewset_for_model(repo)()
|
|
122
122
|
setattr(repo_viewset, "request", self.request)
|
|
123
123
|
scoped_repos.extend(repo_viewset.get_queryset().values_list("pk", flat=True))
|
|
124
|
-
|
|
124
|
+
|
|
125
|
+
# calling the distinct clause at end of the query ensures that no duplicates from
|
|
126
|
+
# joined tables will be returned to the end-user; this behaviour is documented at
|
|
127
|
+
# https://docs.djangoproject.com/en/3.2/topics/db/queries, in the section Spanning
|
|
128
|
+
# multi-valued relationships
|
|
129
|
+
return qs.filter(repositories__in=scoped_repos).distinct()
|
|
125
130
|
return qs
|
|
126
131
|
|
|
127
132
|
|
|
@@ -76,7 +76,7 @@ def task_schedule(cli_client):
|
|
|
76
76
|
"from django.utils.timezone import now;"
|
|
77
77
|
"from datetime import timedelta;"
|
|
78
78
|
"from pulpcore.app.models import TaskSchedule;"
|
|
79
|
-
"dispatch_interval = timedelta(seconds=
|
|
79
|
+
"dispatch_interval = timedelta(seconds=5);"
|
|
80
80
|
"next_dispatch = now() + dispatch_interval;"
|
|
81
81
|
"TaskSchedule("
|
|
82
82
|
f" name='{name}', task_name='{task_name}', "
|
|
@@ -100,8 +100,9 @@ def task_schedule(cli_client):
|
|
|
100
100
|
def test_task_schedule(task_schedule, task_schedules_api_client):
|
|
101
101
|
"""Test that a worker will schedule a task roughly at a given time."""
|
|
102
102
|
# Worker TTL is configured to 30s, therefore they will have a heartbeat each 10s (6 bpm). The
|
|
103
|
-
# task is scheduled
|
|
104
|
-
#
|
|
103
|
+
# task is scheduled 5s in the future to give us time to invesitgate the state before and after.
|
|
104
|
+
# 16s later we can be sure it was scheduled (as long as at least one worker is running).
|
|
105
|
+
# Waiting for 18s to give some more slack.
|
|
105
106
|
|
|
106
107
|
result = task_schedules_api_client.list(name=task_schedule["name"])
|
|
107
108
|
assert result.count == 1
|
|
@@ -110,7 +111,7 @@ def test_task_schedule(task_schedule, task_schedules_api_client):
|
|
|
110
111
|
assert ts.task_name == task_schedule["task_name"]
|
|
111
112
|
assert ts.last_task is None
|
|
112
113
|
# At least a worker heartbeat is needed
|
|
113
|
-
for i in range(
|
|
114
|
+
for i in range(18):
|
|
114
115
|
sleep(1)
|
|
115
116
|
ts = task_schedules_api_client.read(task_schedule_href=result.results[0].pulp_href)
|
|
116
117
|
if ts.last_task is not None:
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
from django.test import TestCase
|
|
2
|
+
from asgiref.sync import sync_to_async
|
|
2
3
|
|
|
3
4
|
from pulpcore.download.factory import DownloaderFactory
|
|
4
5
|
from pulpcore.plugin.models import Remote
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
class DownloaderFactoryHeadersTestCase(TestCase):
|
|
8
|
-
def test_user_agent_header(self):
|
|
9
|
-
remote = Remote.objects.create(url="http://example.org/", name="foo")
|
|
9
|
+
async def test_user_agent_header(self):
|
|
10
|
+
remote = await sync_to_async(Remote.objects.create)(url="http://example.org/", name="foo")
|
|
10
11
|
factory = DownloaderFactory(remote)
|
|
11
12
|
downloader = factory.build(remote.url)
|
|
12
13
|
default_user_agent = DownloaderFactory.user_agent()
|
|
13
14
|
self.assertEqual(downloader.session.headers["User-Agent"], default_user_agent)
|
|
14
|
-
remote.delete()
|
|
15
|
+
await sync_to_async(remote.delete)()
|
|
15
16
|
|
|
16
|
-
def test_custom_user_agent_header(self):
|
|
17
|
-
remote = Remote.objects.create(
|
|
17
|
+
async def test_custom_user_agent_header(self):
|
|
18
|
+
remote = await sync_to_async(Remote.objects.create)(
|
|
18
19
|
url="http://example.org/", headers=[{"User-Agent": "foo"}], name="foo"
|
|
19
20
|
)
|
|
20
21
|
factory = DownloaderFactory(remote)
|
|
@@ -22,12 +23,13 @@ class DownloaderFactoryHeadersTestCase(TestCase):
|
|
|
22
23
|
default_user_agent = DownloaderFactory.user_agent()
|
|
23
24
|
expected_user_agent = f"{default_user_agent}, foo"
|
|
24
25
|
self.assertEqual(downloader.session.headers["User-Agent"], expected_user_agent)
|
|
25
|
-
remote.delete()
|
|
26
|
+
await sync_to_async(remote.delete)()
|
|
26
27
|
|
|
27
|
-
def test_custom_headers(self):
|
|
28
|
-
remote = Remote.objects.create(
|
|
28
|
+
async def test_custom_headers(self):
|
|
29
|
+
remote = await sync_to_async(Remote.objects.create)(
|
|
29
30
|
url="http://example.org/", headers=[{"Connection": "keep-alive"}], name="foo"
|
|
30
31
|
)
|
|
31
32
|
factory = DownloaderFactory(remote)
|
|
32
33
|
downloader = factory.build(remote.url)
|
|
33
34
|
self.assertEqual(downloader.session.headers["Connection"], "keep-alive")
|
|
35
|
+
await sync_to_async(remote.delete)()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
aiodns<=3.1.1,>=3.0
|
|
2
2
|
aiofiles<23.3.0,>=22.1
|
|
3
|
-
aiohttp<3.
|
|
3
|
+
aiohttp<3.10.11,>=3.8.1
|
|
4
4
|
asyncio-throttle<=1.0.2,>=1.0
|
|
5
5
|
backoff<2.2.2,>=2.1.2
|
|
6
6
|
click<=8.1.7,>=8.1.0
|
|
@@ -30,7 +30,7 @@ setuptools<69.1.0,>=39.2
|
|
|
30
30
|
tablib<3.6.0
|
|
31
31
|
url-normalize<=1.4.3,>=1.4.3
|
|
32
32
|
whitenoise<=6.7.0,>=5.0
|
|
33
|
-
yarl<1.
|
|
33
|
+
yarl<1.15.3,>=1.8
|
|
34
34
|
|
|
35
35
|
[:python_version < "3.11"]
|
|
36
36
|
async-timeout<4.0.4,>=4.0.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
aiodns>=3.0,<=3.1.1
|
|
2
2
|
aiofiles>=22.1,<23.3.0
|
|
3
|
-
aiohttp>=3.8.1,<3.
|
|
3
|
+
aiohttp>=3.8.1,<3.10.11
|
|
4
4
|
asyncio-throttle>=1.0,<=1.0.2
|
|
5
5
|
async-timeout>=4.0.3,<4.0.4;python_version<"3.11"
|
|
6
6
|
backoff>=2.1.2,<2.2.2
|
|
@@ -31,4 +31,4 @@ setuptools>=39.2,<69.1.0
|
|
|
31
31
|
tablib<3.6.0
|
|
32
32
|
url-normalize>=1.4.3,<=1.4.3
|
|
33
33
|
whitenoise>=5.0,<=6.7.0
|
|
34
|
-
yarl>=1.8,<1.
|
|
34
|
+
yarl>=1.8,<1.15.3
|
|
@@ -8,7 +8,7 @@ with open("requirements.txt") as requirements:
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name="pulpcore",
|
|
11
|
-
version="3.22.
|
|
11
|
+
version="3.22.32",
|
|
12
12
|
description="Pulp Django Application and Related Modules",
|
|
13
13
|
long_description=long_description,
|
|
14
14
|
long_description_content_type="text/markdown",
|
|
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.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/add-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/analyze-publication.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/dump-publications-to-fs.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/handle-artifact-checksums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/remove-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/reset-admin-password.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/management/commands/stage-profile-summary.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0002_increase_artifact_size_field.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0003_remove_upload_completed.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0006_repository_plugin_managed.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0007_delete_progress_proxies.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0008_published_metadata_as_content.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0016_charfield_to_textfield.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0019_add_signing_service_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0023_change_exporter_models.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0044_temp_file_artifact_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0058_accesspolicy_customized.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0063_repository_retained_versions.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0064_add_new_style_task_columns.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0064_repository_user_hidden.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/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.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0076_remove_reserved_resource.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0077_move_remote_url_credentials.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0078_grouprole_role_userrole.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py
RENAMED
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.22.30 → pulpcore-3.22.32}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py
RENAMED
|
File without changes
|