pulpcore 3.111.2__tar.gz → 3.112.1__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.
Files changed (499) hide show
  1. {pulpcore-3.111.2 → pulpcore-3.112.1}/CHANGES.md +155 -7
  2. {pulpcore-3.111.2 → pulpcore-3.112.1}/PKG-INFO +2 -2
  3. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/viewsets.py +5 -1
  6. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_crud_content_unit.py +35 -1
  7. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/apps.py +1 -1
  8. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/base.py +13 -1
  9. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/status.py +2 -0
  10. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/middleware.py +4 -0
  11. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/artifact_stages.py +5 -7
  12. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/viewsets/__init__.py +2 -1
  13. pulpcore-3.112.1/pulpcore/tests/unit/test_middleware.py +35 -0
  14. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/PKG-INFO +2 -2
  15. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/SOURCES.txt +1 -0
  16. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/requires.txt +1 -1
  17. {pulpcore-3.111.2 → pulpcore-3.112.1}/pyproject.toml +3 -3
  18. {pulpcore-3.111.2 → pulpcore-3.112.1}/CODE_OF_CONDUCT.md +0 -0
  19. {pulpcore-3.111.2 → pulpcore-3.112.1}/COMMITMENT +0 -0
  20. {pulpcore-3.111.2 → pulpcore-3.112.1}/CONTRIBUTING.md +0 -0
  21. {pulpcore-3.111.2 → pulpcore-3.112.1}/COPYRIGHT +0 -0
  22. {pulpcore-3.111.2 → pulpcore-3.112.1}/LICENSE +0 -0
  23. {pulpcore-3.111.2 → pulpcore-3.112.1}/MANIFEST.in +0 -0
  24. {pulpcore-3.111.2 → pulpcore-3.112.1}/README.md +0 -0
  25. {pulpcore-3.111.2 → pulpcore-3.112.1}/ci_requirements.txt +0 -0
  26. {pulpcore-3.111.2 → pulpcore-3.112.1}/functest_requirements.txt +0 -0
  27. {pulpcore-3.111.2 → pulpcore-3.112.1}/manage.py +0 -0
  28. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/__init__.py +0 -0
  29. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  30. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  31. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/migrations/__init__.py +0 -0
  32. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/models.py +0 -0
  33. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/serializers.py +0 -0
  34. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/app/viewsets.py +0 -0
  35. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/pytest_plugin.py +0 -0
  36. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/rhsm/__init__.py +0 -0
  37. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/rhsm/rhsm_check_path.py +0 -0
  38. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/__init__.py +0 -0
  39. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/__init__.py +0 -0
  40. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  41. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  42. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  43. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  44. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  45. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  46. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  47. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  48. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  49. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  50. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  51. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  52. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  53. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  54. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  55. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  56. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  57. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  58. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  59. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  60. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  61. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  62. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  63. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  64. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  65. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  66. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  67. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  68. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  69. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  70. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  71. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  72. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/conftest.py +0 -0
  73. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/functional/constants.py +0 -0
  74. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/unit/__init__.py +0 -0
  75. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/unit/certdata.py +0 -0
  76. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_certguard/tests/unit/test_rhsm_check_path.py +0 -0
  77. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/__init__.py +0 -0
  78. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -0
  79. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  80. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/0018_alter_filecontent_options.py +0 -0
  81. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/0019_add_filegitremote.py +0 -0
  82. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/0020_filerepository_last_sync_details.py +0 -0
  83. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/migrations/__init__.py +0 -0
  84. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/modelresource.py +0 -0
  85. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/models.py +0 -0
  86. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/replica.py +0 -0
  87. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/serializers.py +0 -0
  88. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/settings.py +0 -0
  89. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/tasks/__init__.py +0 -0
  90. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/tasks/publishing.py +0 -0
  91. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/app/tasks/synchronizing.py +0 -0
  92. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/manifest.py +0 -0
  93. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/pytest_plugin.py +0 -0
  94. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/__init__.py +0 -0
  95. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/__init__.py +0 -0
  96. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/__init__.py +0 -0
  97. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_acs.py +0 -0
  98. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  99. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  100. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_content_labels.py +0 -0
  101. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  102. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_distributed_publication.py +0 -0
  103. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_domains.py +0 -0
  104. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_download_policies.py +0 -0
  105. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_filesystem_export.py +0 -0
  106. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  107. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_git_sync.py +0 -0
  108. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_labels.py +0 -0
  109. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  110. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_overwrite_content.py +0 -0
  111. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_publish.py +0 -0
  112. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
  113. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  114. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  115. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/functional/api/test_sync.py +0 -0
  116. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/unit/__init__.py +0 -0
  117. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/unit/test_git_sync.py +0 -0
  118. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/unit/test_safe_paths.py +0 -0
  119. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/unit/test_serializers.py +0 -0
  120. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulp_file/tests/unit/test_sync_optimization.py +0 -0
  121. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/__init__.py +0 -0
  122. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/__init__.py +0 -0
  123. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/access_policy.py +0 -0
  124. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/authentication.py +0 -0
  125. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/checks.py +0 -0
  126. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/contexts.py +0 -0
  127. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/entrypoint.py +0 -0
  128. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/files.py +0 -0
  129. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/find_url.py +0 -0
  130. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/global_access_conditions.py +0 -0
  131. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/importexport.py +0 -0
  132. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/loggers.py +0 -0
  133. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/manage.py +0 -0
  134. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/__init__.py +0 -0
  135. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/__init__.py +0 -0
  136. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  137. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  138. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/clean-up-progress-reports.py +0 -0
  139. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  140. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/datarepair.py +0 -0
  141. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  142. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  143. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  144. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/list-signing-services.py +0 -0
  145. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/migrationstat.py +0 -0
  146. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/openapi.py +0 -0
  147. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/optimizemigration.py +0 -0
  148. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/rebasemigrations.py +0 -0
  149. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  150. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  151. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/repository-size.py +0 -0
  152. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  153. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  154. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/management/commands/shell.py +0 -0
  155. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -0
  156. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0091_systemid.py +0 -0
  157. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  158. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  159. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  160. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  161. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  162. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  163. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  164. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  165. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  166. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  167. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  168. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  169. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  170. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  171. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  172. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  173. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  174. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  175. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  176. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  177. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  178. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  179. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  180. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  181. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  182. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  183. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
  184. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
  185. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
  186. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
  187. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
  188. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
  189. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0124_task_deferred_task_immediate.py +0 -0
  190. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0125_openpgpdistribution_openpgpkeyring_openpgppublickey_and_more.py +0 -0
  191. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0126_remoteartifact_failed_at.py +0 -0
  192. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0127_remove_upstreampulp_pulp_label_select.py +0 -0
  193. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0128_domain_pulp_labels.py +0 -0
  194. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0129_content_pulp_labels.py +0 -0
  195. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0130_upstreampulp_policy.py +0 -0
  196. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0131_distribution_checkpoint_publication_checkpoint.py +0 -0
  197. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0132_alter_content_options.py +0 -0
  198. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0132_task_profile_options.py +0 -0
  199. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0133_repositoryversion_content_ids.py +0 -0
  200. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0134_task_insert_trigger.py +0 -0
  201. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0135_task_pulp_task_resources_index.py +0 -0
  202. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0136_delete_basedistribution.py +0 -0
  203. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0137_appstatus.py +0 -0
  204. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0138_vulnerabilityreport.py +0 -0
  205. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0139_task_app_lock.py +0 -0
  206. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0140_require_appstatus_zdu.py +0 -0
  207. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0141_alter_appstatus_name.py +0 -0
  208. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0142_task_result.py +0 -0
  209. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0143_require_app_lock_zdu.py +0 -0
  210. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0144_delete_old_appstatus.py +0 -0
  211. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0145_domainize_import_export.py +0 -0
  212. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0146_repository_retain_checkpoints.py +0 -0
  213. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0147_content_pulp_labels_gin.py +0 -0
  214. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0148_artifact_artifact_domain_size_index.py +0 -0
  215. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0149_distributedpublication.py +0 -0
  216. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0150_taskschedule_task_kwargs.py +0 -0
  217. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/0151_upstreampulp_connect_timeout_and_more.py +0 -0
  218. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/migrations/__init__.py +0 -0
  219. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/mime_types.py +0 -0
  220. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/modelresource.py +0 -0
  221. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/__init__.py +0 -0
  222. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/access_policy.py +0 -0
  223. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/acs.py +0 -0
  224. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/analytics.py +0 -0
  225. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/base.py +0 -0
  226. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/content.py +0 -0
  227. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/domain.py +0 -0
  228. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/exporter.py +0 -0
  229. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/fields.py +0 -0
  230. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/generic.py +0 -0
  231. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/importer.py +0 -0
  232. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/openpgp.py +0 -0
  233. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/progress.py +0 -0
  234. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/publication.py +0 -0
  235. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/replica.py +0 -0
  236. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/repository.py +0 -0
  237. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/role.py +0 -0
  238. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/status.py +0 -0
  239. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/storage.py +0 -0
  240. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/task.py +0 -0
  241. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/upload.py +0 -0
  242. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/models/vulnerability_report.py +0 -0
  243. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/netutil.py +0 -0
  244. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/openpgp.py +0 -0
  245. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/protobuf/__init__.py +0 -0
  246. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  247. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/pulp_hashlib.py +0 -0
  248. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  249. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/redis_connection.py +0 -0
  250. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/replica.py +0 -0
  251. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/response.py +0 -0
  252. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/role_util.py +0 -0
  253. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/__init__.py +0 -0
  254. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/access_policy.py +0 -0
  255. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/acs.py +0 -0
  256. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/content.py +0 -0
  257. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/domain.py +0 -0
  258. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/exporter.py +0 -0
  259. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/fields.py +0 -0
  260. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/importer.py +0 -0
  261. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/openpgp.py +0 -0
  262. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/orphans.py +0 -0
  263. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/progress.py +0 -0
  264. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/publication.py +0 -0
  265. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/purge.py +0 -0
  266. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/reclaim.py +0 -0
  267. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/repair.py +0 -0
  268. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/replica.py +0 -0
  269. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/repository.py +0 -0
  270. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/status.py +0 -0
  271. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/task.py +0 -0
  272. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/upload.py +0 -0
  273. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/user.py +0 -0
  274. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/serializers/vulnerability_report.py +0 -0
  275. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/settings.py +0 -0
  276. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/__init__.py +0 -0
  277. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/analytics.py +0 -0
  278. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/base.py +0 -0
  279. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/datarepair.py +0 -0
  280. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/export.py +0 -0
  281. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/importer.py +0 -0
  282. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/migrate.py +0 -0
  283. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/orphan.py +0 -0
  284. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/purge.py +0 -0
  285. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/reclaim_space.py +0 -0
  286. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/replica.py +0 -0
  287. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/repository.py +0 -0
  288. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/telemetry.py +0 -0
  289. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/test.py +0 -0
  290. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/upload.py +0 -0
  291. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/tasks/vulnerability_report.py +0 -0
  292. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/templates/rest_framework/api.html +0 -0
  293. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/templatetags/__init__.py +0 -0
  294. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  295. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/urls.py +0 -0
  296. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/util.py +0 -0
  297. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/__init__.py +0 -0
  298. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/datarepair.py +0 -0
  299. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/importer.py +0 -0
  300. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/orphans.py +0 -0
  301. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/views/repair.py +0 -0
  302. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/__init__.py +0 -0
  303. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/access_policy.py +0 -0
  304. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/acs.py +0 -0
  305. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/base.py +0 -0
  306. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/content.py +0 -0
  307. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/custom_filters.py +0 -0
  308. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/domain.py +0 -0
  309. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/exporter.py +0 -0
  310. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/importer.py +0 -0
  311. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/openpgp.py +0 -0
  312. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/orphans.py +0 -0
  313. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/publication.py +0 -0
  314. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/reclaim.py +0 -0
  315. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/replica.py +0 -0
  316. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/repository.py +0 -0
  317. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/task.py +0 -0
  318. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/upload.py +0 -0
  319. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/user.py +0 -0
  320. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/viewsets/vulnerability_report.py +0 -0
  321. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/app/wsgi.py +0 -0
  322. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/backends.py +0 -0
  323. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/cache/__init__.py +0 -0
  324. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/cache/cache.py +0 -0
  325. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/constants.py +0 -0
  326. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/content/__init__.py +0 -0
  327. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/content/authentication.py +0 -0
  328. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/content/entrypoint.py +0 -0
  329. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/content/handler.py +0 -0
  330. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/content/instrumentation.py +0 -0
  331. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/download/__init__.py +0 -0
  332. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/download/base.py +0 -0
  333. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/download/factory.py +0 -0
  334. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/download/file.py +0 -0
  335. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/download/http.py +0 -0
  336. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/exceptions/__init__.py +0 -0
  337. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/exceptions/base.py +0 -0
  338. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/exceptions/plugin.py +0 -0
  339. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/exceptions/validation.py +0 -0
  340. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/filters.py +0 -0
  341. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/metrics.py +0 -0
  342. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/migrations.py +0 -0
  343. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/openapi/__init__.py +0 -0
  344. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/openapi/hooks.py +0 -0
  345. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/__init__.py +0 -0
  346. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/access_policy.py +0 -0
  347. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/actions.py +0 -0
  348. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/apps.py +0 -0
  349. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/authentication/__init__.py +0 -0
  350. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/cache/__init__.py +0 -0
  351. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/constants.py +0 -0
  352. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/content.py +0 -0
  353. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/download/__init__.py +0 -0
  354. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/exceptions.py +0 -0
  355. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/files.py +0 -0
  356. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/find_url.py +0 -0
  357. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/importexport.py +0 -0
  358. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/migrations.py +0 -0
  359. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/modelresources.py +0 -0
  360. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/models/__init__.py +0 -0
  361. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/models/role.py +0 -0
  362. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/publication_utils.py +0 -0
  363. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/pulp_hashlib.py +0 -0
  364. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/replica.py +0 -0
  365. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/repo_version_utils.py +0 -0
  366. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/responses.py +0 -0
  367. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/serializers/__init__.py +0 -0
  368. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/serializers/content.py +0 -0
  369. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/__init__.py +0 -0
  370. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/api.py +0 -0
  371. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/content_stages.py +0 -0
  372. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/declarative_version.py +0 -0
  373. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/stages/models.py +0 -0
  374. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/storage.py +0 -0
  375. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/sync.py +0 -0
  376. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/tasking.py +0 -0
  377. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/util.py +0 -0
  378. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/plugin/viewsets/content.py +0 -0
  379. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/pytest_plugin.py +0 -0
  380. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/responses.py +0 -0
  381. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/__init__.py +0 -0
  382. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/_util.py +0 -0
  383. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/entrypoint.py +0 -0
  384. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/kafka.py +0 -0
  385. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/redis_locks.py +0 -0
  386. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/redis_tasks.py +0 -0
  387. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/redis_worker.py +0 -0
  388. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/storage.py +0 -0
  389. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/tasks.py +0 -0
  390. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tasking/worker.py +0 -0
  391. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/__init__.py +0 -0
  392. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/__init__.py +0 -0
  393. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/__init__.py +0 -0
  394. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  395. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  396. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
  397. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  398. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_auth.py +0 -0
  399. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  400. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  401. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
  402. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_filter.py +0 -0
  403. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_login.py +0 -0
  404. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  405. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_openpgp.py +0 -0
  406. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_replication.py +0 -0
  407. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_repos.py +0 -0
  408. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_role.py +0 -0
  409. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  410. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  411. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  412. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_status.py +0 -0
  413. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
  414. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  415. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_upload.py +0 -0
  416. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  417. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/test_workers.py +0 -0
  418. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  419. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +0 -0
  420. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  421. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
  422. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +0 -0
  423. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  424. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  425. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  426. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  427. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  428. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  429. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +0 -0
  430. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  431. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
  432. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  433. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  434. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
  435. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  436. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
  437. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  438. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  439. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  440. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  441. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  442. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/assets/__init__.py +0 -0
  443. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  444. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/functional/utils.py +0 -0
  445. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/performance/__init__.py +0 -0
  446. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/performance/test_performance.py +0 -0
  447. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/__init__.py +0 -0
  448. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/conftest.py +0 -0
  449. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/content/__init__.py +0 -0
  450. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/content/test_handler.py +0 -0
  451. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  452. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/download/__init__.py +0 -0
  453. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  454. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  455. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/metrics/__init__.py +0 -0
  456. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/metrics/conftest.py +0 -0
  457. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/metrics/test_aiohttp_instrumentation.py +0 -0
  458. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/metrics/test_django_instrumentation.py +0 -0
  459. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/migration/__init__.py +0 -0
  460. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/__init__.py +0 -0
  461. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_base.py +0 -0
  462. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_content.py +0 -0
  463. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_publication_retention.py +0 -0
  464. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_remote.py +0 -0
  465. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_repository.py +0 -0
  466. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/models/test_task.py +0 -0
  467. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/roles/__init__.py +0 -0
  468. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  469. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  470. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  471. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
  472. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_fields.py +0 -0
  473. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_orphans_cleanup.py +0 -0
  474. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  475. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  476. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/serializers/test_user.py +0 -0
  477. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/stages/__init__.py +0 -0
  478. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  479. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/stages/test_resource_budget.py +0 -0
  480. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  481. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_cache.py +0 -0
  482. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  483. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_content_guard.py +0 -0
  484. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_files.py +0 -0
  485. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_import_checks.py +0 -0
  486. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_list_signing_services_command.py +0 -0
  487. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  488. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_settings.py +0 -0
  489. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_util.py +0 -0
  490. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_viewsets.py +0 -0
  491. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/test_vulnerability_report.py +0 -0
  492. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  493. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  494. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/dependency_links.txt +0 -0
  495. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/entry_points.txt +0 -0
  496. {pulpcore-3.111.2 → pulpcore-3.112.1}/pulpcore.egg-info/top_level.txt +0 -0
  497. {pulpcore-3.111.2 → pulpcore-3.112.1}/setup.cfg +0 -0
  498. {pulpcore-3.111.2 → pulpcore-3.112.1}/test_requirements.txt +0 -0
  499. {pulpcore-3.111.2 → pulpcore-3.112.1}/unittest_requirements.txt +0 -0
@@ -8,23 +8,59 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
- ## 3.111.2 (2026-05-19) {: #3.111.2 }
11
+ ## 3.112.1 (2026-06-03) {: #3.112.1 }
12
12
 
13
- ### REST API {: #3.111.2-rest-api }
13
+ ### REST API {: #3.112.1-rest-api }
14
14
 
15
- #### Bugfixes {: #3.111.2-rest-api-bugfix }
15
+ #### Bugfixes {: #3.112.1-rest-api-bugfix }
16
16
 
17
- - Fixed a bug where immediate tasks could be executed even if they were blocked by other tasks using the same resources.
17
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
18
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
19
+ - Allow nested downloader_config to be passed json stringified.
20
+ [#7677](https://github.com/pulp/pulpcore/issues/7677)
21
+
22
+ ### Plugin API {: #3.112.1-plugin-api }
23
+
24
+ #### Features {: #3.112.1-plugin-api-feature }
25
+
26
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
18
27
 
19
- ### Plugin API {: #3.111.2-plugin-api }
28
+ ### Pulp File {: #3.112.1-pulp-file }
20
29
 
21
30
  No significant changes.
22
31
 
23
- ### Pulp File {: #3.111.2-pulp-file }
32
+ ### Pulp Cert Guard {: #3.112.1-pulp-cert-guard }
24
33
 
25
34
  No significant changes.
26
35
 
27
- ### Pulp Cert Guard {: #3.111.2-pulp-cert-guard }
36
+ ---
37
+
38
+ ## 3.112.0 (2026-05-19) {: #3.112.0 }
39
+
40
+ ### REST API {: #3.112.0-rest-api }
41
+
42
+ #### Bugfixes {: #3.112.0-rest-api-bugfix }
43
+
44
+ - Decoupled the `/livez` liveness probe from the database so it returns 200 even when the database is unavailable.
45
+ [#7721](https://github.com/pulp/pulpcore/issues/7721)
46
+ - Fixed a bug where immediate tasks could be executed even if they were blocked by other tasks using the same resources.
47
+
48
+ ### Plugin API {: #3.112.0-plugin-api }
49
+
50
+ #### Bugfixes {: #3.112.0-plugin-api-bugfix }
51
+
52
+ - Removed the `default=True` from the `overwrite` field on `NoArtifactContentSerializer` so it no
53
+ longer leaks into `validated_data`. This fixes plugins that splat content serializer data
54
+ (`**serializer.validated_data`).
55
+
56
+ ### Pulp File {: #3.112.0-pulp-file }
57
+
58
+ #### Features {: #3.112.0-pulp-file-feature }
59
+
60
+ - Added `NAME_FILTER_OPTIONS` to the `relative_path` field in `FileContentFilter`, enabling contains, startswith, regex, and other lookup expressions.
61
+ [#7719](https://github.com/pulp/pulpcore/issues/7719)
62
+
63
+ ### Pulp Cert Guard {: #3.112.0-pulp-cert-guard }
28
64
 
29
65
  No significant changes.
30
66
 
@@ -102,6 +138,30 @@ No significant changes.
102
138
 
103
139
  ---
104
140
 
141
+ ## 3.110.3 (2026-05-13) {: #3.110.3 }
142
+
143
+ ### REST API {: #3.110.3-rest-api }
144
+
145
+ #### Bugfixes {: #3.110.3-rest-api-bugfix }
146
+
147
+ - Added a distributions lock to `finalize_replication` to prevent concurrent finalize tasks from different upstream servers from racing on the same distribution objects.
148
+ [#7614](https://github.com/pulp/pulpcore/issues/7614)
149
+ - Fixed cache forgetting the Content-Type header of ApiResponses
150
+
151
+ ### Plugin API {: #3.110.3-plugin-api }
152
+
153
+ No significant changes.
154
+
155
+ ### Pulp File {: #3.110.3-pulp-file }
156
+
157
+ No significant changes.
158
+
159
+ ### Pulp Cert Guard {: #3.110.3-pulp-cert-guard }
160
+
161
+ No significant changes.
162
+
163
+ ---
164
+
105
165
  ## 3.110.2 (2026-05-07) {: #3.110.2 }
106
166
 
107
167
  ### REST API {: #3.110.2-rest-api }
@@ -500,6 +560,28 @@ No significant changes.
500
560
 
501
561
  ---
502
562
 
563
+ ## 3.105.7 (2026-05-13) {: #3.105.7 }
564
+
565
+ ### REST API {: #3.105.7-rest-api }
566
+
567
+ #### Bugfixes {: #3.105.7-rest-api-bugfix }
568
+
569
+ - Fixed cache forgetting the Content-Type header of ApiResponses
570
+
571
+ ### Plugin API {: #3.105.7-plugin-api }
572
+
573
+ No significant changes.
574
+
575
+ ### Pulp File {: #3.105.7-pulp-file }
576
+
577
+ No significant changes.
578
+
579
+ ### Pulp Cert Guard {: #3.105.7-pulp-cert-guard }
580
+
581
+ No significant changes.
582
+
583
+ ---
584
+
503
585
  ## 3.105.6 (2026-05-05) {: #3.105.6 }
504
586
 
505
587
  ### REST API {: #3.105.6-rest-api }
@@ -1635,6 +1717,28 @@ No significant changes.
1635
1717
 
1636
1718
  ---
1637
1719
 
1720
+ ## 3.85.21 (2026-05-13) {: #3.85.21 }
1721
+
1722
+ ### REST API {: #3.85.21-rest-api }
1723
+
1724
+ #### Bugfixes {: #3.85.21-rest-api-bugfix }
1725
+
1726
+ - Fixed cache forgetting the Content-Type header of ApiResponses
1727
+
1728
+ ### Plugin API {: #3.85.21-plugin-api }
1729
+
1730
+ No significant changes.
1731
+
1732
+ ### Pulp File {: #3.85.21-pulp-file }
1733
+
1734
+ No significant changes.
1735
+
1736
+ ### Pulp Cert Guard {: #3.85.21-pulp-cert-guard }
1737
+
1738
+ No significant changes.
1739
+
1740
+ ---
1741
+
1638
1742
  ## 3.85.20 (2026-05-07) {: #3.85.20 }
1639
1743
 
1640
1744
  ### REST API {: #3.85.20-rest-api }
@@ -2873,6 +2977,28 @@ No significant changes.
2873
2977
 
2874
2978
  ---
2875
2979
 
2980
+ ## 3.73.35 (2026-05-13) {: #3.73.35 }
2981
+
2982
+ ### REST API {: #3.73.35-rest-api }
2983
+
2984
+ #### Bugfixes {: #3.73.35-rest-api-bugfix }
2985
+
2986
+ - Fixed cache forgetting the Content-Type header of ApiResponses
2987
+
2988
+ ### Plugin API {: #3.73.35-plugin-api }
2989
+
2990
+ No significant changes.
2991
+
2992
+ ### Pulp File {: #3.73.35-pulp-file }
2993
+
2994
+ No significant changes.
2995
+
2996
+ ### Pulp Cert Guard {: #3.73.35-pulp-cert-guard }
2997
+
2998
+ No significant changes.
2999
+
3000
+ ---
3001
+
2876
3002
  ## 3.73.34 (2026-05-07) {: #3.73.34 }
2877
3003
 
2878
3004
  ### REST API {: #3.73.34-rest-api }
@@ -4361,6 +4487,28 @@ No significant changes.
4361
4487
 
4362
4488
  ---
4363
4489
 
4490
+ ## 3.63.39 (2026-05-13) {: #3.63.39 }
4491
+
4492
+ ### REST API {: #3.63.39-rest-api }
4493
+
4494
+ #### Bugfixes {: #3.63.39-rest-api-bugfix }
4495
+
4496
+ - Fixed cache forgetting the Content-Type header of ApiResponses
4497
+
4498
+ ### Plugin API {: #3.63.39-plugin-api }
4499
+
4500
+ No significant changes.
4501
+
4502
+ ### Pulp File {: #3.63.39-pulp-file }
4503
+
4504
+ No significant changes.
4505
+
4506
+ ### Pulp Cert Guard {: #3.63.39-pulp-cert-guard }
4507
+
4508
+ No significant changes.
4509
+
4510
+ ---
4511
+
4364
4512
  ## 3.63.38 (2026-05-07) {: #3.63.38 }
4365
4513
 
4366
4514
  ### REST API {: #3.63.38-rest-api }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.111.2
3
+ Version: 3.112.1
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  License-Expression: GPL-2.0-or-later
@@ -24,7 +24,7 @@ Requires-Dist: aiofiles<=25.1.0,>=22.1
24
24
  Requires-Dist: aiohttp<3.14,>=3.10.10
25
25
  Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
26
26
  Requires-Dist: backoff<2.3,>=2.1.2
27
- Requires-Dist: click<8.4,>=8.1.0
27
+ Requires-Dist: click<8.5,>=8.1.0
28
28
  Requires-Dist: cryptography<49.0,>=44.0.3
29
29
  Requires-Dist: Django!=5.0,!=5.1,<5.3,>=4.2.24
30
30
  Requires-Dist: django-filter<=25.2,>=23.1
@@ -6,6 +6,6 @@ class PulpCertGuardPluginAppConfig(PulpPluginAppConfig):
6
6
 
7
7
  name = "pulp_certguard.app"
8
8
  label = "certguard"
9
- version = "3.111.2"
9
+ version = "3.112.1"
10
10
  python_package_name = "pulpcore"
11
11
  domain_compatible = True
@@ -8,6 +8,6 @@ class PulpFilePluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_file.app"
10
10
  label = "file"
11
- version = "3.111.2"
11
+ version = "3.112.1"
12
12
  python_package_name = "pulpcore"
13
13
  domain_compatible = True
@@ -9,6 +9,7 @@ from rest_framework.exceptions import ValidationError
9
9
  from rest_framework.generics import get_object_or_404
10
10
  from rest_framework.response import Response
11
11
 
12
+ from pulpcore.app.viewsets.base import NAME_FILTER_OPTIONS
12
13
  from pulpcore.plugin.actions import ModifyRepositoryActionMixin
13
14
  from pulpcore.plugin.models import (
14
15
  AlternateContentSource,
@@ -66,7 +67,10 @@ class FileContentFilter(ContentFilter):
66
67
 
67
68
  class Meta:
68
69
  model = FileContent
69
- fields = ["relative_path", "sha256"]
70
+ fields = {
71
+ "relative_path": NAME_FILTER_OPTIONS,
72
+ "digest": ["exact"],
73
+ }
70
74
 
71
75
 
72
76
  class FileContentViewSet(SingleArtifactContentUploadViewSet):
@@ -34,6 +34,36 @@ def test_crud_content_unit(file_bindings, random_artifact, gen_object_with_clean
34
34
  assert exc.value.args[0] == "'ContentFilesApi' object has no attribute 'update'"
35
35
 
36
36
 
37
+ @pytest.mark.parallel
38
+ def test_relative_path_filter_options(file_bindings, random_artifact, gen_object_with_cleanup):
39
+ """Test that relative_path supports contains, startswith, and regex filters."""
40
+ path = f"packages/python/{uuid.uuid4()}/my-package-1.0.tar.gz"
41
+ content_unit = gen_object_with_cleanup(
42
+ file_bindings.ContentFilesApi,
43
+ artifact=random_artifact.pulp_href,
44
+ relative_path=path,
45
+ )
46
+
47
+ # contains
48
+ response = file_bindings.ContentFilesApi.list(relative_path__contains="my-package")
49
+ assert response.count >= 1
50
+ assert any(c.pulp_href == content_unit.pulp_href for c in response.results)
51
+
52
+ # startswith
53
+ response = file_bindings.ContentFilesApi.list(relative_path__startswith="packages/python/")
54
+ assert response.count >= 1
55
+ assert any(c.pulp_href == content_unit.pulp_href for c in response.results)
56
+
57
+ # regex
58
+ response = file_bindings.ContentFilesApi.list(relative_path__regex=r".*\.tar\.gz$")
59
+ assert response.count >= 1
60
+ assert any(c.pulp_href == content_unit.pulp_href for c in response.results)
61
+
62
+ # negative case — no match
63
+ response = file_bindings.ContentFilesApi.list(relative_path__startswith="nonexistent-prefix/")
64
+ assert not any(c.pulp_href == content_unit.pulp_href for c in response.results)
65
+
66
+
37
67
  @pytest.mark.parallel
38
68
  def test_same_sha256_same_relative_path_no_repo(file_bindings, random_artifact, monitor_task):
39
69
  artifact_attrs = {"artifact": random_artifact.pulp_href, "relative_path": str(uuid.uuid4())}
@@ -266,7 +296,11 @@ def test_create_file_from_url(
266
296
  ):
267
297
  # Test create w/ url
268
298
  remote = file_remote_factory(manifest_path=basic_manifest_path)
269
- body = {"file_url": remote.url, "relative_path": "PULP_MANIFEST"}
299
+ body = {
300
+ "file_url": remote.url,
301
+ "relative_path": "PULP_MANIFEST",
302
+ "downloader_config": {"total_timeout": 5},
303
+ }
270
304
  response = file_bindings.ContentFilesApi.create(**body)
271
305
  task = monitor_task(response.task)
272
306
  assert len(task.created_resources) == 1
@@ -237,7 +237,7 @@ class PulpAppConfig(PulpPluginAppConfig):
237
237
  label = "core"
238
238
 
239
239
  # The version of this app
240
- version = "3.111.2"
240
+ version = "3.112.1"
241
241
 
242
242
  # The python package name providing this app
243
243
  python_package_name = "pulpcore"
@@ -1,4 +1,5 @@
1
1
  import functools
2
+ import json
2
3
  import re
3
4
  import traceback
4
5
  from collections import namedtuple
@@ -80,7 +81,7 @@ class HrefPrnFieldMixin:
80
81
  return super().to_internal_value(data)
81
82
 
82
83
 
83
- class _MatchingRegexViewName(object):
84
+ class _MatchingRegexViewName:
84
85
  """This is a helper class to help defining object matching rules for master-detail.
85
86
 
86
87
  If you can be specific, please specify the `view_name`, but if you cannot, this allows
@@ -778,6 +779,17 @@ class RemoteNetworkConfigSerializer(serializers.Serializer):
778
779
  "Invalid {} specified, error '{}'".format(which_cert, e.args)
779
780
  )
780
781
 
782
+ def to_internal_value(self, data):
783
+ if isinstance(data, str):
784
+ try:
785
+ # Nested Serializers in from-urlencoded bodies are stringified as json by default.
786
+ data = json.loads(data)
787
+ except json.DecodeError:
788
+ raise serializers.ValidationError(
789
+ "Invalid json data for (nested) downloader config."
790
+ )
791
+ return super().to_internal_value(data)
792
+
781
793
  def validate(self, data):
782
794
  """
783
795
  Check that proxy credentials are only provided completely and if a proxy is configured.
@@ -145,6 +145,8 @@ class LivezView(APIView):
145
145
  # allow anyone to access the liveness api
146
146
  authentication_classes = []
147
147
  permission_classes = []
148
+ # Skip domain DB lookup so this probe stays independent of the database
149
+ skip_domain_middleware = True
148
150
 
149
151
  @extend_schema(
150
152
  summary="Inspect liveness of Pulp's REST API.",
@@ -38,6 +38,10 @@ class DomainMiddleware:
38
38
 
39
39
  def process_view(self, request, view_func, view_args, view_kwargs):
40
40
  """Remove the domain name if present, called right before view_func is called."""
41
+ view_class = getattr(view_func, "view_class", None) or getattr(view_func, "cls", None)
42
+ if view_class and getattr(view_class, "skip_domain_middleware", False):
43
+ view_kwargs.pop("pulp_domain", None)
44
+ return None
41
45
  domain_name = view_kwargs.pop("pulp_domain", "default")
42
46
  try:
43
47
  domain = Domain.objects.get(name=domain_name)
@@ -200,17 +200,15 @@ class QueryExistingArtifacts(Stage):
200
200
  "pulp_domain": self.domain,
201
201
  }
202
202
  existing_artifacts_qs = Artifact.objects.filter(**query_params)
203
- existing_artifacts = sync_to_async_iterable(existing_artifacts_qs)
204
203
  await sync_to_async(existing_artifacts_qs.touch)()
204
+ existing_by_digest = {}
205
+ async for result in sync_to_async_iterable(existing_artifacts_qs):
206
+ existing_by_digest[getattr(result, digest_type)] = result
205
207
  for d_content in batch:
206
208
  for d_artifact in d_content.d_artifacts:
207
209
  artifact_digest = getattr(d_artifact.artifact, digest_type)
208
- if artifact_digest:
209
- async for result in existing_artifacts:
210
- result_digest = getattr(result, digest_type)
211
- if result_digest == artifact_digest:
212
- d_artifact.artifact = result
213
- break
210
+ if artifact_digest and artifact_digest in existing_by_digest:
211
+ d_artifact.artifact = existing_by_digest[artifact_digest]
214
212
  for d_content in batch:
215
213
  await self.put(d_content)
216
214
 
@@ -1,6 +1,6 @@
1
1
  # ruff: noqa: F401
2
2
  # isort: skip_file
3
- from pulpcore.filters import BaseFilterSet
3
+ from pulpcore.filters import BaseFilterSet, StableOrderingFilter
4
4
 
5
5
  # Allow plugin viewsets to return 202s
6
6
  from pulpcore.app.response import OperationPostponedResponse, TaskGroupOperationResponse
@@ -55,6 +55,7 @@ from .content import (
55
55
 
56
56
  __all__ = [
57
57
  "BaseFilterSet",
58
+ "StableOrderingFilter",
58
59
  "OperationPostponedResponse",
59
60
  "TaskGroupOperationResponse",
60
61
  "AlternateContentSourceViewSet",
@@ -0,0 +1,35 @@
1
+ from unittest.mock import MagicMock, patch
2
+
3
+ from django.test import TestCase
4
+
5
+ from pulpcore.middleware import DomainMiddleware
6
+ from pulpcore.plugin.find_url import find_api_root
7
+
8
+
9
+ class TestLivezNoDatabaseAccess(TestCase):
10
+ """Test that GET /livez/ makes zero database queries."""
11
+
12
+ def test_livez_makes_no_database_queries(self):
13
+ _, api_v3_path = find_api_root(set_domain=False, rewrite_header=False)
14
+ with self.assertNumQueries(0):
15
+ response = self.client.get(f"{api_v3_path}livez/")
16
+ self.assertEqual(response.status_code, 200)
17
+
18
+
19
+ class TestDomainMiddlewareSkip(TestCase):
20
+ """Test that DomainMiddleware skips DB lookup for views with skip_domain_middleware=True."""
21
+
22
+ def setUp(self):
23
+ self.middleware = DomainMiddleware(get_response=MagicMock())
24
+ self.request = MagicMock()
25
+
26
+ @patch("pulpcore.middleware.Domain.objects")
27
+ @patch("pulpcore.middleware.set_domain")
28
+ def test_does_db_lookup_when_flag_not_set(self, mock_set_domain, mock_domain_objects):
29
+ view_class = type("NormalView", (), {})
30
+ view_func = MagicMock(view_class=view_class)
31
+ view_kwargs = {"pulp_domain": "default"}
32
+
33
+ self.middleware.process_view(self.request, view_func, [], view_kwargs)
34
+
35
+ mock_domain_objects.get.assert_called_once_with(name="default")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.111.2
3
+ Version: 3.112.1
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  License-Expression: GPL-2.0-or-later
@@ -24,7 +24,7 @@ Requires-Dist: aiofiles<=25.1.0,>=22.1
24
24
  Requires-Dist: aiohttp<3.14,>=3.10.10
25
25
  Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
26
26
  Requires-Dist: backoff<2.3,>=2.1.2
27
- Requires-Dist: click<8.4,>=8.1.0
27
+ Requires-Dist: click<8.5,>=8.1.0
28
28
  Requires-Dist: cryptography<49.0,>=44.0.3
29
29
  Requires-Dist: Django!=5.0,!=5.1,<5.3,>=4.2.24
30
30
  Requires-Dist: django-filter<=25.2,>=23.1
@@ -455,6 +455,7 @@ pulpcore/tests/unit/test_content_guard.py
455
455
  pulpcore/tests/unit/test_files.py
456
456
  pulpcore/tests/unit/test_import_checks.py
457
457
  pulpcore/tests/unit/test_list_signing_services_command.py
458
+ pulpcore/tests/unit/test_middleware.py
458
459
  pulpcore/tests/unit/test_pulp_urls.py
459
460
  pulpcore/tests/unit/test_settings.py
460
461
  pulpcore/tests/unit/test_util.py
@@ -3,7 +3,7 @@ aiofiles<=25.1.0,>=22.1
3
3
  aiohttp<3.14,>=3.10.10
4
4
  asyncio-throttle<=1.0.2,>=1.0
5
5
  backoff<2.3,>=2.1.2
6
- click<8.4,>=8.1.0
6
+ click<8.5,>=8.1.0
7
7
  cryptography<49.0,>=44.0.3
8
8
  Django!=5.0,!=5.1,<5.3,>=4.2.24
9
9
  django-filter<=25.2,>=23.1
@@ -7,7 +7,7 @@ build-backend = 'setuptools.build_meta'
7
7
 
8
8
  [project]
9
9
  name = "pulpcore"
10
- version = "3.111.2"
10
+ version = "3.112.1"
11
11
  description = "Pulp Django Application and Related Modules"
12
12
  readme = "README.md"
13
13
  authors = [
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "aiohttp>=3.10.10,<3.14", # SemVer https://docs.aiohttp.org/en/stable/faq.html#what-is-the-api-stability-and-deprecation-policy .
31
31
  "asyncio-throttle>=1.0,<=1.0.2", # Unsure about versioning, but not released often anyway.
32
32
  "backoff>=2.1.2,<2.3", # Looks like only bugfixes in z-Stream.
33
- "click>=8.1.0,<8.4", # Uses milestone.feature.fix https://palletsprojects.com/versions .
33
+ "click>=8.1.0,<8.5", # Uses milestone.feature.fix https://palletsprojects.com/versions .
34
34
  "cryptography>=44.0.3,<49.0", # SemVer compatible https://cryptography.io/en/latest/api-stability/#versioning .
35
35
  "Django>=4.2.24,<5.3, !=5.0, !=5.1", # LTS version, switch only if we have a compelling reason to".
36
36
  "django-filter>=23.1,<=25.2", # Uses CalVer, not released often https://github.com/carltongibson/django-filter
@@ -207,7 +207,7 @@ ignore = [
207
207
  [tool.bumpversion]
208
208
  # This section is managed by the plugin template. Do not edit manually.
209
209
 
210
- current_version = "3.111.2"
210
+ current_version = "3.112.1"
211
211
  commit = false
212
212
  tag = false
213
213
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes