pulpcore 3.111.2__tar.gz → 3.114.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. {pulpcore-3.111.2 → pulpcore-3.114.0}/CHANGES.md +364 -0
  2. {pulpcore-3.111.2 → pulpcore-3.114.0}/PKG-INFO +7 -8
  3. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/viewsets.py +5 -1
  6. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_crud_content_unit.py +35 -1
  7. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/apps.py +3 -5
  8. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/replica.py +49 -11
  9. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/__init__.py +1 -1
  10. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/base.py +19 -2
  11. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/replica.py +19 -0
  12. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/export.py +119 -11
  13. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/replica.py +31 -9
  14. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/status.py +2 -0
  15. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/replica.py +15 -4
  16. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/download/factory.py +7 -1
  17. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/download/http.py +3 -1
  18. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/exceptions/__init__.py +1 -0
  19. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/exceptions/base.py +15 -0
  20. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/middleware.py +4 -0
  21. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/exceptions.py +2 -0
  22. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/artifact_stages.py +5 -7
  23. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/content_stages.py +64 -13
  24. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/declarative_version.py +8 -2
  25. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/tasking.py +3 -1
  26. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/viewsets/__init__.py +2 -1
  27. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_replication.py +375 -24
  28. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +45 -0
  29. pulpcore-3.114.0/pulpcore/tests/unit/roles/test_adjust_roles.py +102 -0
  30. pulpcore-3.114.0/pulpcore/tests/unit/test_middleware.py +35 -0
  31. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/PKG-INFO +7 -8
  32. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/SOURCES.txt +2 -0
  33. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/requires.txt +6 -7
  34. {pulpcore-3.111.2 → pulpcore-3.114.0}/pyproject.toml +8 -9
  35. {pulpcore-3.111.2 → pulpcore-3.114.0}/CODE_OF_CONDUCT.md +0 -0
  36. {pulpcore-3.111.2 → pulpcore-3.114.0}/COMMITMENT +0 -0
  37. {pulpcore-3.111.2 → pulpcore-3.114.0}/CONTRIBUTING.md +0 -0
  38. {pulpcore-3.111.2 → pulpcore-3.114.0}/COPYRIGHT +0 -0
  39. {pulpcore-3.111.2 → pulpcore-3.114.0}/LICENSE +0 -0
  40. {pulpcore-3.111.2 → pulpcore-3.114.0}/MANIFEST.in +0 -0
  41. {pulpcore-3.111.2 → pulpcore-3.114.0}/README.md +0 -0
  42. {pulpcore-3.111.2 → pulpcore-3.114.0}/ci_requirements.txt +0 -0
  43. {pulpcore-3.111.2 → pulpcore-3.114.0}/functest_requirements.txt +0 -0
  44. {pulpcore-3.111.2 → pulpcore-3.114.0}/manage.py +0 -0
  45. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/__init__.py +0 -0
  46. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  47. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  48. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/migrations/__init__.py +0 -0
  49. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/models.py +0 -0
  50. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/serializers.py +0 -0
  51. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/app/viewsets.py +0 -0
  52. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/pytest_plugin.py +0 -0
  53. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/rhsm/__init__.py +0 -0
  54. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/rhsm/rhsm_check_path.py +0 -0
  55. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/__init__.py +0 -0
  56. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/__init__.py +0 -0
  57. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  58. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  59. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  60. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  61. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  62. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  63. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  64. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  65. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  66. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  67. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  68. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  69. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  70. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  71. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  72. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  73. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  74. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  75. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  76. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  77. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  78. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  79. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  80. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  81. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  82. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  83. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  84. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  85. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  86. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  87. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  88. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  89. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/conftest.py +0 -0
  90. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/functional/constants.py +0 -0
  91. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/unit/__init__.py +0 -0
  92. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/unit/certdata.py +0 -0
  93. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_certguard/tests/unit/test_rhsm_check_path.py +0 -0
  94. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/__init__.py +0 -0
  95. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -0
  96. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  97. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/0018_alter_filecontent_options.py +0 -0
  98. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/0019_add_filegitremote.py +0 -0
  99. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/0020_filerepository_last_sync_details.py +0 -0
  100. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/migrations/__init__.py +0 -0
  101. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/modelresource.py +0 -0
  102. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/models.py +0 -0
  103. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/replica.py +0 -0
  104. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/serializers.py +0 -0
  105. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/settings.py +0 -0
  106. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/tasks/__init__.py +0 -0
  107. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/tasks/publishing.py +0 -0
  108. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/app/tasks/synchronizing.py +0 -0
  109. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/manifest.py +0 -0
  110. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/pytest_plugin.py +0 -0
  111. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/__init__.py +0 -0
  112. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/__init__.py +0 -0
  113. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/__init__.py +0 -0
  114. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_acs.py +0 -0
  115. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  116. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  117. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_content_labels.py +0 -0
  118. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  119. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_distributed_publication.py +0 -0
  120. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_domains.py +0 -0
  121. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_download_policies.py +0 -0
  122. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_filesystem_export.py +0 -0
  123. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  124. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_git_sync.py +0 -0
  125. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_labels.py +0 -0
  126. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  127. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_overwrite_content.py +0 -0
  128. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_publish.py +0 -0
  129. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
  130. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  131. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  132. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/functional/api/test_sync.py +0 -0
  133. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/unit/__init__.py +0 -0
  134. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/unit/test_git_sync.py +0 -0
  135. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/unit/test_safe_paths.py +0 -0
  136. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/unit/test_serializers.py +0 -0
  137. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulp_file/tests/unit/test_sync_optimization.py +0 -0
  138. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/__init__.py +0 -0
  139. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/__init__.py +0 -0
  140. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/access_policy.py +0 -0
  141. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/authentication.py +0 -0
  142. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/checks.py +0 -0
  143. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/contexts.py +0 -0
  144. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/entrypoint.py +0 -0
  145. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/files.py +0 -0
  146. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/find_url.py +0 -0
  147. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/global_access_conditions.py +0 -0
  148. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/importexport.py +0 -0
  149. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/loggers.py +0 -0
  150. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/manage.py +0 -0
  151. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/__init__.py +0 -0
  152. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/__init__.py +0 -0
  153. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  154. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  155. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/clean-up-progress-reports.py +0 -0
  156. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  157. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/datarepair.py +0 -0
  158. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  159. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  160. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  161. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/list-signing-services.py +0 -0
  162. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/migrationstat.py +0 -0
  163. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/openapi.py +0 -0
  164. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/optimizemigration.py +0 -0
  165. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/rebasemigrations.py +0 -0
  166. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  167. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  168. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/repository-size.py +0 -0
  169. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  170. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  171. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/management/commands/shell.py +0 -0
  172. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -0
  173. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0091_systemid.py +0 -0
  174. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  175. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  176. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  177. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  178. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  179. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  180. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  181. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  182. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  183. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  184. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  185. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  186. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  187. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  188. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  189. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  190. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  191. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  192. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  193. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  194. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  195. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  196. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  197. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  198. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  199. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  200. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
  201. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
  202. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
  203. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
  204. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
  205. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
  206. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0124_task_deferred_task_immediate.py +0 -0
  207. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0125_openpgpdistribution_openpgpkeyring_openpgppublickey_and_more.py +0 -0
  208. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0126_remoteartifact_failed_at.py +0 -0
  209. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0127_remove_upstreampulp_pulp_label_select.py +0 -0
  210. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0128_domain_pulp_labels.py +0 -0
  211. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0129_content_pulp_labels.py +0 -0
  212. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0130_upstreampulp_policy.py +0 -0
  213. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0131_distribution_checkpoint_publication_checkpoint.py +0 -0
  214. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0132_alter_content_options.py +0 -0
  215. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0132_task_profile_options.py +0 -0
  216. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0133_repositoryversion_content_ids.py +0 -0
  217. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0134_task_insert_trigger.py +0 -0
  218. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0135_task_pulp_task_resources_index.py +0 -0
  219. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0136_delete_basedistribution.py +0 -0
  220. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0137_appstatus.py +0 -0
  221. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0138_vulnerabilityreport.py +0 -0
  222. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0139_task_app_lock.py +0 -0
  223. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0140_require_appstatus_zdu.py +0 -0
  224. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0141_alter_appstatus_name.py +0 -0
  225. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0142_task_result.py +0 -0
  226. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0143_require_app_lock_zdu.py +0 -0
  227. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0144_delete_old_appstatus.py +0 -0
  228. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0145_domainize_import_export.py +0 -0
  229. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0146_repository_retain_checkpoints.py +0 -0
  230. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0147_content_pulp_labels_gin.py +0 -0
  231. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0148_artifact_artifact_domain_size_index.py +0 -0
  232. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0149_distributedpublication.py +0 -0
  233. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0150_taskschedule_task_kwargs.py +0 -0
  234. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/0151_upstreampulp_connect_timeout_and_more.py +0 -0
  235. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/migrations/__init__.py +0 -0
  236. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/mime_types.py +0 -0
  237. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/modelresource.py +0 -0
  238. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/__init__.py +0 -0
  239. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/access_policy.py +0 -0
  240. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/acs.py +0 -0
  241. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/analytics.py +0 -0
  242. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/base.py +0 -0
  243. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/content.py +0 -0
  244. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/domain.py +0 -0
  245. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/exporter.py +0 -0
  246. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/fields.py +0 -0
  247. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/generic.py +0 -0
  248. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/importer.py +0 -0
  249. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/openpgp.py +0 -0
  250. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/progress.py +0 -0
  251. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/publication.py +0 -0
  252. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/replica.py +0 -0
  253. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/repository.py +0 -0
  254. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/role.py +0 -0
  255. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/status.py +0 -0
  256. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/storage.py +0 -0
  257. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/task.py +0 -0
  258. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/upload.py +0 -0
  259. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/models/vulnerability_report.py +0 -0
  260. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/netutil.py +0 -0
  261. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/openpgp.py +0 -0
  262. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/protobuf/__init__.py +0 -0
  263. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  264. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/pulp_hashlib.py +0 -0
  265. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  266. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/redis_connection.py +0 -0
  267. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/response.py +0 -0
  268. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/role_util.py +0 -0
  269. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/access_policy.py +0 -0
  270. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/acs.py +0 -0
  271. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/content.py +0 -0
  272. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/domain.py +0 -0
  273. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/exporter.py +0 -0
  274. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/fields.py +0 -0
  275. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/importer.py +0 -0
  276. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/openpgp.py +0 -0
  277. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/orphans.py +0 -0
  278. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/progress.py +0 -0
  279. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/publication.py +0 -0
  280. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/purge.py +0 -0
  281. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/reclaim.py +0 -0
  282. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/repair.py +0 -0
  283. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/repository.py +0 -0
  284. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/status.py +0 -0
  285. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/task.py +0 -0
  286. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/upload.py +0 -0
  287. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/user.py +0 -0
  288. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/serializers/vulnerability_report.py +0 -0
  289. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/settings.py +0 -0
  290. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/__init__.py +0 -0
  291. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/analytics.py +0 -0
  292. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/base.py +0 -0
  293. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/datarepair.py +0 -0
  294. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/importer.py +0 -0
  295. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/migrate.py +0 -0
  296. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/orphan.py +0 -0
  297. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/purge.py +0 -0
  298. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/reclaim_space.py +0 -0
  299. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/repository.py +0 -0
  300. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/telemetry.py +0 -0
  301. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/test.py +0 -0
  302. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/upload.py +0 -0
  303. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/tasks/vulnerability_report.py +0 -0
  304. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/templates/rest_framework/api.html +0 -0
  305. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/templatetags/__init__.py +0 -0
  306. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  307. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/urls.py +0 -0
  308. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/util.py +0 -0
  309. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/__init__.py +0 -0
  310. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/datarepair.py +0 -0
  311. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/importer.py +0 -0
  312. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/orphans.py +0 -0
  313. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/views/repair.py +0 -0
  314. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/__init__.py +0 -0
  315. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/access_policy.py +0 -0
  316. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/acs.py +0 -0
  317. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/base.py +0 -0
  318. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/content.py +0 -0
  319. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/custom_filters.py +0 -0
  320. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/domain.py +0 -0
  321. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/exporter.py +0 -0
  322. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/importer.py +0 -0
  323. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/openpgp.py +0 -0
  324. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/orphans.py +0 -0
  325. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/publication.py +0 -0
  326. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/reclaim.py +0 -0
  327. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/repository.py +0 -0
  328. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/task.py +0 -0
  329. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/upload.py +0 -0
  330. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/user.py +0 -0
  331. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/viewsets/vulnerability_report.py +0 -0
  332. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/app/wsgi.py +0 -0
  333. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/backends.py +0 -0
  334. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/cache/__init__.py +0 -0
  335. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/cache/cache.py +0 -0
  336. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/constants.py +0 -0
  337. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/content/__init__.py +0 -0
  338. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/content/authentication.py +0 -0
  339. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/content/entrypoint.py +0 -0
  340. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/content/handler.py +0 -0
  341. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/content/instrumentation.py +0 -0
  342. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/download/__init__.py +0 -0
  343. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/download/base.py +0 -0
  344. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/download/file.py +0 -0
  345. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/exceptions/plugin.py +0 -0
  346. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/exceptions/validation.py +0 -0
  347. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/filters.py +0 -0
  348. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/metrics.py +0 -0
  349. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/migrations.py +0 -0
  350. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/openapi/__init__.py +0 -0
  351. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/openapi/hooks.py +0 -0
  352. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/__init__.py +0 -0
  353. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/access_policy.py +0 -0
  354. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/actions.py +0 -0
  355. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/apps.py +0 -0
  356. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/authentication/__init__.py +0 -0
  357. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/cache/__init__.py +0 -0
  358. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/constants.py +0 -0
  359. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/content.py +0 -0
  360. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/download/__init__.py +0 -0
  361. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/files.py +0 -0
  362. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/find_url.py +0 -0
  363. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/importexport.py +0 -0
  364. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/migrations.py +0 -0
  365. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/modelresources.py +0 -0
  366. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/models/__init__.py +0 -0
  367. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/models/role.py +0 -0
  368. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/publication_utils.py +0 -0
  369. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/pulp_hashlib.py +0 -0
  370. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/replica.py +0 -0
  371. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/repo_version_utils.py +0 -0
  372. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/responses.py +0 -0
  373. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/serializers/__init__.py +0 -0
  374. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/serializers/content.py +0 -0
  375. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/__init__.py +0 -0
  376. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/api.py +0 -0
  377. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/stages/models.py +0 -0
  378. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/storage.py +0 -0
  379. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/sync.py +0 -0
  380. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/util.py +0 -0
  381. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/plugin/viewsets/content.py +0 -0
  382. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/pytest_plugin.py +0 -0
  383. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/responses.py +0 -0
  384. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/__init__.py +0 -0
  385. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/_util.py +0 -0
  386. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/entrypoint.py +0 -0
  387. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/kafka.py +0 -0
  388. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/redis_locks.py +0 -0
  389. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/redis_tasks.py +0 -0
  390. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/redis_worker.py +0 -0
  391. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/storage.py +0 -0
  392. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/tasks.py +0 -0
  393. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tasking/worker.py +0 -0
  394. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/__init__.py +0 -0
  395. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/__init__.py +0 -0
  396. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/__init__.py +0 -0
  397. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  398. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  399. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
  400. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  401. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_auth.py +0 -0
  402. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  403. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  404. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
  405. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_filter.py +0 -0
  406. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_login.py +0 -0
  407. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  408. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_openpgp.py +0 -0
  409. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_repos.py +0 -0
  410. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_role.py +0 -0
  411. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  412. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  413. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  414. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_status.py +0 -0
  415. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
  416. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  417. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_upload.py +0 -0
  418. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  419. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/test_workers.py +0 -0
  420. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  421. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +0 -0
  422. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  423. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
  424. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +0 -0
  425. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  426. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  427. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  428. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  429. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  430. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  431. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  432. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
  433. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  434. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  435. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
  436. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  437. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
  438. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  439. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  440. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  441. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  442. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  443. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/assets/__init__.py +0 -0
  444. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  445. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/functional/utils.py +0 -0
  446. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/performance/__init__.py +0 -0
  447. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/performance/test_performance.py +0 -0
  448. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/__init__.py +0 -0
  449. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/conftest.py +0 -0
  450. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/content/__init__.py +0 -0
  451. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/content/test_handler.py +0 -0
  452. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  453. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/download/__init__.py +0 -0
  454. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  455. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  456. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/metrics/__init__.py +0 -0
  457. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/metrics/conftest.py +0 -0
  458. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/metrics/test_aiohttp_instrumentation.py +0 -0
  459. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/metrics/test_django_instrumentation.py +0 -0
  460. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/migration/__init__.py +0 -0
  461. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/__init__.py +0 -0
  462. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_base.py +0 -0
  463. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_content.py +0 -0
  464. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_publication_retention.py +0 -0
  465. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_remote.py +0 -0
  466. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_repository.py +0 -0
  467. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/models/test_task.py +0 -0
  468. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/roles/__init__.py +0 -0
  469. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  470. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  471. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  472. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
  473. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_fields.py +0 -0
  474. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_orphans_cleanup.py +0 -0
  475. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  476. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  477. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/serializers/test_user.py +0 -0
  478. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/stages/__init__.py +0 -0
  479. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  480. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/stages/test_resource_budget.py +0 -0
  481. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  482. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_cache.py +0 -0
  483. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  484. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_content_guard.py +0 -0
  485. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_files.py +0 -0
  486. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_import_checks.py +0 -0
  487. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_list_signing_services_command.py +0 -0
  488. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  489. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_settings.py +0 -0
  490. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_util.py +0 -0
  491. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_viewsets.py +0 -0
  492. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/test_vulnerability_report.py +0 -0
  493. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  494. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  495. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/dependency_links.txt +0 -0
  496. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/entry_points.txt +0 -0
  497. {pulpcore-3.111.2 → pulpcore-3.114.0}/pulpcore.egg-info/top_level.txt +0 -0
  498. {pulpcore-3.111.2 → pulpcore-3.114.0}/setup.cfg +0 -0
  499. {pulpcore-3.111.2 → pulpcore-3.114.0}/test_requirements.txt +0 -0
  500. {pulpcore-3.111.2 → pulpcore-3.114.0}/unittest_requirements.txt +0 -0
@@ -8,6 +8,135 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.114.0 (2026-06-09) {: #3.114.0 }
12
+
13
+ ### REST API {: #3.114.0-rest-api }
14
+
15
+ #### Features {: #3.114.0-rest-api-feature }
16
+
17
+ - Improved sync performance by caching content during re-syncs.
18
+
19
+ #### Bugfixes {: #3.114.0-rest-api-bugfix }
20
+
21
+ - Enabled filesystem export of content synced with a streamed policy from a file:// remote, by reading the files from their local path instead of failing because no Artifact was downloaded.
22
+ [#7746](https://github.com/pulp/pulpcore/issues/7746)
23
+ - Respect the system /etc/hosts and nsswitch.conf configurations for sync configurations. We drop the `aiodns` resolver backend for `aiohttp` and use the default resolver.
24
+
25
+ ### Plugin API {: #3.114.0-plugin-api }
26
+
27
+ #### Features {: #3.114.0-plugin-api-feature }
28
+
29
+ - `DeclarativeVersion` now accepts `deferred_fields` to exclude fields not needed during sync, reducing memory usage and producing lighter queries.
30
+
31
+ ### Pulp File {: #3.114.0-pulp-file }
32
+
33
+ No significant changes.
34
+
35
+ ### Pulp Cert Guard {: #3.114.0-pulp-cert-guard }
36
+
37
+ No significant changes.
38
+
39
+ ---
40
+
41
+ ## 3.113.0 (2026-06-03) {: #3.113.0 }
42
+
43
+ ### REST API {: #3.113.0-rest-api }
44
+
45
+ #### Features {: #3.113.0-rest-api-feature }
46
+
47
+ - Added support for passing ``q_select`` as a parameter to the replicate action, allowing users to selectively sync a subset of upstream distributions without modifying the stored upstream-pulp configuration.
48
+ [#7617](https://github.com/pulp/pulpcore/issues/7617)
49
+ - Added the `FeatureNotImplementedError` exception to indicate that a requested feature is not yet implemented.
50
+
51
+ #### Bugfixes {: #3.113.0-rest-api-bugfix }
52
+
53
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
54
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
55
+ - Replication now reuses existing distributions matched by base_path when a name
56
+ lookup misses (e.g. upstream rename), preventing base_path uniqueness conflicts
57
+ and preserving content continuity. Stale distributions are also cleaned up
58
+ before new distributions are created as an additional safeguard. Improved error
59
+ reporting in finalize_replication to include details about which subtasks failed.
60
+ [#7614](https://github.com/pulp/pulpcore/issues/7614)
61
+ - Allow nested downloader_config to be passed json stringified.
62
+ [#7677](https://github.com/pulp/pulpcore/issues/7677)
63
+ - Fixed `adjust_roles` to use `update_or_create` instead of `get_or_create` when populating locked roles, so that a pre-existing role with `locked=False` is updated rather than causing a duplicate key error.
64
+
65
+ ### Plugin API {: #3.113.0-plugin-api }
66
+
67
+ #### Features {: #3.113.0-plugin-api-feature }
68
+
69
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
70
+ - Exposed ``cancel_task`` and ``cancel_task_group`` from ``pulpcore.plugin.tasking`` so plugins can import them.
71
+
72
+ ### Pulp File {: #3.113.0-pulp-file }
73
+
74
+ No significant changes.
75
+
76
+ ### Pulp Cert Guard {: #3.113.0-pulp-cert-guard }
77
+
78
+ No significant changes.
79
+
80
+ ---
81
+
82
+ ## 3.112.1 (2026-06-03) {: #3.112.1 }
83
+
84
+ ### REST API {: #3.112.1-rest-api }
85
+
86
+ #### Bugfixes {: #3.112.1-rest-api-bugfix }
87
+
88
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
89
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
90
+ - Allow nested downloader_config to be passed json stringified.
91
+ [#7677](https://github.com/pulp/pulpcore/issues/7677)
92
+
93
+ ### Plugin API {: #3.112.1-plugin-api }
94
+
95
+ #### Features {: #3.112.1-plugin-api-feature }
96
+
97
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
98
+
99
+ ### Pulp File {: #3.112.1-pulp-file }
100
+
101
+ No significant changes.
102
+
103
+ ### Pulp Cert Guard {: #3.112.1-pulp-cert-guard }
104
+
105
+ No significant changes.
106
+
107
+ ---
108
+
109
+ ## 3.112.0 (2026-05-19) {: #3.112.0 }
110
+
111
+ ### REST API {: #3.112.0-rest-api }
112
+
113
+ #### Bugfixes {: #3.112.0-rest-api-bugfix }
114
+
115
+ - Decoupled the `/livez` liveness probe from the database so it returns 200 even when the database is unavailable.
116
+ [#7721](https://github.com/pulp/pulpcore/issues/7721)
117
+ - Fixed a bug where immediate tasks could be executed even if they were blocked by other tasks using the same resources.
118
+
119
+ ### Plugin API {: #3.112.0-plugin-api }
120
+
121
+ #### Bugfixes {: #3.112.0-plugin-api-bugfix }
122
+
123
+ - Removed the `default=True` from the `overwrite` field on `NoArtifactContentSerializer` so it no
124
+ longer leaks into `validated_data`. This fixes plugins that splat content serializer data
125
+ (`**serializer.validated_data`).
126
+
127
+ ### Pulp File {: #3.112.0-pulp-file }
128
+
129
+ #### Features {: #3.112.0-pulp-file-feature }
130
+
131
+ - Added `NAME_FILTER_OPTIONS` to the `relative_path` field in `FileContentFilter`, enabling contains, startswith, regex, and other lookup expressions.
132
+ [#7719](https://github.com/pulp/pulpcore/issues/7719)
133
+
134
+ ### Pulp Cert Guard {: #3.112.0-pulp-cert-guard }
135
+
136
+ No significant changes.
137
+
138
+ ---
139
+
11
140
  ## 3.111.2 (2026-05-19) {: #3.111.2 }
12
141
 
13
142
  ### REST API {: #3.111.2-rest-api }
@@ -102,6 +231,30 @@ No significant changes.
102
231
 
103
232
  ---
104
233
 
234
+ ## 3.110.3 (2026-05-13) {: #3.110.3 }
235
+
236
+ ### REST API {: #3.110.3-rest-api }
237
+
238
+ #### Bugfixes {: #3.110.3-rest-api-bugfix }
239
+
240
+ - Added a distributions lock to `finalize_replication` to prevent concurrent finalize tasks from different upstream servers from racing on the same distribution objects.
241
+ [#7614](https://github.com/pulp/pulpcore/issues/7614)
242
+ - Fixed cache forgetting the Content-Type header of ApiResponses
243
+
244
+ ### Plugin API {: #3.110.3-plugin-api }
245
+
246
+ No significant changes.
247
+
248
+ ### Pulp File {: #3.110.3-pulp-file }
249
+
250
+ No significant changes.
251
+
252
+ ### Pulp Cert Guard {: #3.110.3-pulp-cert-guard }
253
+
254
+ No significant changes.
255
+
256
+ ---
257
+
105
258
  ## 3.110.2 (2026-05-07) {: #3.110.2 }
106
259
 
107
260
  ### REST API {: #3.110.2-rest-api }
@@ -500,6 +653,55 @@ No significant changes.
500
653
 
501
654
  ---
502
655
 
656
+ ## 3.105.8 (2026-06-03) {: #3.105.8 }
657
+
658
+ ### REST API {: #3.105.8-rest-api }
659
+
660
+ #### Bugfixes {: #3.105.8-rest-api-bugfix }
661
+
662
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
663
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
664
+ - Allow nested downloader_config to be passed json stringified.
665
+ [#7677](https://github.com/pulp/pulpcore/issues/7677)
666
+
667
+ ### Plugin API {: #3.105.8-plugin-api }
668
+
669
+ #### Features {: #3.105.8-plugin-api-feature }
670
+
671
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
672
+
673
+ ### Pulp File {: #3.105.8-pulp-file }
674
+
675
+ No significant changes.
676
+
677
+ ### Pulp Cert Guard {: #3.105.8-pulp-cert-guard }
678
+
679
+ No significant changes.
680
+
681
+ ---
682
+
683
+ ## 3.105.7 (2026-05-13) {: #3.105.7 }
684
+
685
+ ### REST API {: #3.105.7-rest-api }
686
+
687
+ #### Bugfixes {: #3.105.7-rest-api-bugfix }
688
+
689
+ - Fixed cache forgetting the Content-Type header of ApiResponses
690
+
691
+ ### Plugin API {: #3.105.7-plugin-api }
692
+
693
+ No significant changes.
694
+
695
+ ### Pulp File {: #3.105.7-pulp-file }
696
+
697
+ No significant changes.
698
+
699
+ ### Pulp Cert Guard {: #3.105.7-pulp-cert-guard }
700
+
701
+ No significant changes.
702
+
703
+ ---
704
+
503
705
  ## 3.105.6 (2026-05-05) {: #3.105.6 }
504
706
 
505
707
  ### REST API {: #3.105.6-rest-api }
@@ -1635,6 +1837,53 @@ No significant changes.
1635
1837
 
1636
1838
  ---
1637
1839
 
1840
+ ## 3.85.22 (2026-06-03) {: #3.85.22 }
1841
+
1842
+ ### REST API {: #3.85.22-rest-api }
1843
+
1844
+ #### Bugfixes {: #3.85.22-rest-api-bugfix }
1845
+
1846
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
1847
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
1848
+
1849
+ ### Plugin API {: #3.85.22-plugin-api }
1850
+
1851
+ #### Features {: #3.85.22-plugin-api-feature }
1852
+
1853
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
1854
+
1855
+ ### Pulp File {: #3.85.22-pulp-file }
1856
+
1857
+ No significant changes.
1858
+
1859
+ ### Pulp Cert Guard {: #3.85.22-pulp-cert-guard }
1860
+
1861
+ No significant changes.
1862
+
1863
+ ---
1864
+
1865
+ ## 3.85.21 (2026-05-13) {: #3.85.21 }
1866
+
1867
+ ### REST API {: #3.85.21-rest-api }
1868
+
1869
+ #### Bugfixes {: #3.85.21-rest-api-bugfix }
1870
+
1871
+ - Fixed cache forgetting the Content-Type header of ApiResponses
1872
+
1873
+ ### Plugin API {: #3.85.21-plugin-api }
1874
+
1875
+ No significant changes.
1876
+
1877
+ ### Pulp File {: #3.85.21-pulp-file }
1878
+
1879
+ No significant changes.
1880
+
1881
+ ### Pulp Cert Guard {: #3.85.21-pulp-cert-guard }
1882
+
1883
+ No significant changes.
1884
+
1885
+ ---
1886
+
1638
1887
  ## 3.85.20 (2026-05-07) {: #3.85.20 }
1639
1888
 
1640
1889
  ### REST API {: #3.85.20-rest-api }
@@ -2873,6 +3122,53 @@ No significant changes.
2873
3122
 
2874
3123
  ---
2875
3124
 
3125
+ ## 3.73.36 (2026-06-03) {: #3.73.36 }
3126
+
3127
+ ### REST API {: #3.73.36-rest-api }
3128
+
3129
+ #### Bugfixes {: #3.73.36-rest-api-bugfix }
3130
+
3131
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
3132
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
3133
+
3134
+ ### Plugin API {: #3.73.36-plugin-api }
3135
+
3136
+ #### Features {: #3.73.36-plugin-api-feature }
3137
+
3138
+ - Exposed ``StableOrderingFilter`` in the plugin API so pulp plugins can import it from ``pulpcore.plugin``.
3139
+
3140
+ ### Pulp File {: #3.73.36-pulp-file }
3141
+
3142
+ No significant changes.
3143
+
3144
+ ### Pulp Cert Guard {: #3.73.36-pulp-cert-guard }
3145
+
3146
+ No significant changes.
3147
+
3148
+ ---
3149
+
3150
+ ## 3.73.35 (2026-05-13) {: #3.73.35 }
3151
+
3152
+ ### REST API {: #3.73.35-rest-api }
3153
+
3154
+ #### Bugfixes {: #3.73.35-rest-api-bugfix }
3155
+
3156
+ - Fixed cache forgetting the Content-Type header of ApiResponses
3157
+
3158
+ ### Plugin API {: #3.73.35-plugin-api }
3159
+
3160
+ No significant changes.
3161
+
3162
+ ### Pulp File {: #3.73.35-pulp-file }
3163
+
3164
+ No significant changes.
3165
+
3166
+ ### Pulp Cert Guard {: #3.73.35-pulp-cert-guard }
3167
+
3168
+ No significant changes.
3169
+
3170
+ ---
3171
+
2876
3172
  ## 3.73.34 (2026-05-07) {: #3.73.34 }
2877
3173
 
2878
3174
  ### REST API {: #3.73.34-rest-api }
@@ -4361,6 +4657,51 @@ No significant changes.
4361
4657
 
4362
4658
  ---
4363
4659
 
4660
+ ## 3.63.40 (2026-06-03) {: #3.63.40 }
4661
+
4662
+ ### REST API {: #3.63.40-rest-api }
4663
+
4664
+ #### Bugfixes {: #3.63.40-rest-api-bugfix }
4665
+
4666
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
4667
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
4668
+
4669
+ ### Plugin API {: #3.63.40-plugin-api }
4670
+
4671
+ No significant changes.
4672
+
4673
+ ### Pulp File {: #3.63.40-pulp-file }
4674
+
4675
+ No significant changes.
4676
+
4677
+ ### Pulp Cert Guard {: #3.63.40-pulp-cert-guard }
4678
+
4679
+ No significant changes.
4680
+
4681
+ ---
4682
+
4683
+ ## 3.63.39 (2026-05-13) {: #3.63.39 }
4684
+
4685
+ ### REST API {: #3.63.39-rest-api }
4686
+
4687
+ #### Bugfixes {: #3.63.39-rest-api-bugfix }
4688
+
4689
+ - Fixed cache forgetting the Content-Type header of ApiResponses
4690
+
4691
+ ### Plugin API {: #3.63.39-plugin-api }
4692
+
4693
+ No significant changes.
4694
+
4695
+ ### Pulp File {: #3.63.39-pulp-file }
4696
+
4697
+ No significant changes.
4698
+
4699
+ ### Pulp Cert Guard {: #3.63.39-pulp-cert-guard }
4700
+
4701
+ No significant changes.
4702
+
4703
+ ---
4704
+
4364
4705
  ## 3.63.38 (2026-05-07) {: #3.63.38 }
4365
4706
 
4366
4707
  ### REST API {: #3.63.38-rest-api }
@@ -6092,6 +6433,29 @@ No significant changes.
6092
6433
 
6093
6434
  ---
6094
6435
 
6436
+ ## 3.49.62 (2026-06-03) {: #3.49.62 }
6437
+
6438
+ ### REST API {: #3.49.62-rest-api }
6439
+
6440
+ #### Bugfixes {: #3.49.62-rest-api-bugfix }
6441
+
6442
+ - Optimized `QueryExistingArtifacts` by reducing database queries.
6443
+ [#7558](https://github.com/pulp/pulpcore/issues/7558)
6444
+
6445
+ ### Plugin API {: #3.49.62-plugin-api }
6446
+
6447
+ No significant changes.
6448
+
6449
+ ### Pulp File {: #3.49.62-pulp-file }
6450
+
6451
+ No significant changes.
6452
+
6453
+ ### Pulp Cert Guard {: #3.49.62-pulp-cert-guard }
6454
+
6455
+ No significant changes.
6456
+
6457
+ ---
6458
+
6095
6459
  ## 3.49.61 (2026-05-07) {: #3.49.61 }
6096
6460
 
6097
6461
  ### REST API {: #3.49.61-rest-api }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.111.2
3
+ Version: 3.114.0
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
@@ -19,12 +19,11 @@ Classifier: Programming Language :: Python :: 3.12
19
19
  Requires-Python: >=3.11
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
- Requires-Dist: aiodns<3.7,>=3.3.0
23
22
  Requires-Dist: aiofiles<=25.1.0,>=22.1
24
- Requires-Dist: aiohttp<3.14,>=3.10.10
23
+ Requires-Dist: aiohttp<3.15,>=3.10.10
25
24
  Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
26
25
  Requires-Dist: backoff<2.3,>=2.1.2
27
- Requires-Dist: click<8.4,>=8.1.0
26
+ Requires-Dist: click<8.5,>=8.1.0
28
27
  Requires-Dist: cryptography<49.0,>=44.0.3
29
28
  Requires-Dist: Django!=5.0,!=5.1,<5.3,>=4.2.24
30
29
  Requires-Dist: django-filter<=25.2,>=23.1
@@ -43,9 +42,9 @@ Requires-Dist: jinja2<=3.1.6,>=3.1
43
42
  Requires-Dist: json_stream<2.6,>=2.3.2
44
43
  Requires-Dist: jq<1.12.0,>=1.6.0
45
44
  Requires-Dist: PyOpenSSL<27.0
46
- Requires-Dist: opentelemetry-api<1.42,>=1.27.0
47
- Requires-Dist: opentelemetry-sdk<1.42,>=1.27.0
48
- Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.42,>=1.27.0
45
+ Requires-Dist: opentelemetry-api<1.43,>=1.27.0
46
+ Requires-Dist: opentelemetry-sdk<1.43,>=1.27.0
47
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.43,>=1.27.0
49
48
  Requires-Dist: protobuf<7.0,>=4.21.1
50
49
  Requires-Dist: pulp-glue<0.40,>=0.30.0
51
50
  Requires-Dist: pygtrie<=2.5.0,>=2.5
@@ -58,7 +57,7 @@ Requires-Dist: tablib!=3.6,<4.0,>=3.5.0
58
57
  Requires-Dist: url-normalize<3.1,>=1.4.3
59
58
  Requires-Dist: uuid6<=2025.0.1,>=2023.5.2
60
59
  Requires-Dist: whitenoise<6.13.0,>=5.0
61
- Requires-Dist: yarl<1.24,>=1.12.0
60
+ Requires-Dist: yarl<1.25,>=1.12.0
62
61
  Provides-Extra: sftp
63
62
  Requires-Dist: django-storages[sftp]==1.14.6; extra == "sftp"
64
63
  Provides-Extra: s3
@@ -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.114.0"
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.114.0"
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.114.0"
241
241
 
242
242
  # The python package name providing this app
243
243
  python_package_name = "pulpcore"
@@ -396,11 +396,9 @@ def adjust_roles(apps, role_prefix, desired_roles, verbosity=1):
396
396
  _("Locked role definition for {name} is incompatible.").format(name=name)
397
397
  )
398
398
  permissions = [_get_permission(perm) for perm in permissions]
399
- role, created = Role.objects.get_or_create(
400
- name=name, locked=True, defaults={"name": name, "locked": True}
399
+ role, created = Role.objects.update_or_create(
400
+ name=name, defaults={"name": name, "locked": True, "description": description}
401
401
  )
402
- role.description = description
403
- role.save()
404
402
  role.permissions.set(permissions)
405
403
 
406
404
 
@@ -194,7 +194,7 @@ class Replicator:
194
194
  name=upstream_distribution["name"], pulp_domain=self.domain
195
195
  )
196
196
  if not self._is_managed(distro):
197
- return None
197
+ return
198
198
  needs_update = self.needs_update(distribution_data, distro)
199
199
  if needs_update:
200
200
  dispatch(
@@ -208,17 +208,55 @@ class Replicator:
208
208
  "partial": True,
209
209
  },
210
210
  )
211
+ return
211
212
  except self.distribution_model_cls.DoesNotExist:
212
- create_data = dict(distribution_data)
213
- create_data["name"] = upstream_distribution["name"]
214
- dispatch(
215
- general_create,
216
- task_group=self.task_group,
217
- shared_resources=[repository, self.server],
218
- exclusive_resources=self.distros_uris,
219
- args=(self.app_label, self.distribution_serializer_name),
220
- kwargs={"data": create_data},
221
- )
213
+ pass
214
+
215
+ # Not found by name — check if a managed distribution with the same base_path
216
+ # already exists (e.g. the distribution was renamed upstream). If so, rename it
217
+ # synchronously and then dispatch an update for the remaining fields (labels, etc.).
218
+ # The synchronous rename ensures remove_missing sees the new name in the DB and
219
+ # won't try to delete the distribution we're reusing.
220
+ base_path = distribution_data.get("base_path")
221
+ if base_path:
222
+ try:
223
+ distro = self.distribution_model_cls.objects.get(
224
+ base_path=base_path, pulp_domain=self.domain
225
+ )
226
+ if self._is_managed(distro):
227
+ distro.name = upstream_distribution["name"]
228
+ distro.save(update_fields=["name"])
229
+ needs_update = self.needs_update(distribution_data, distro)
230
+ if needs_update:
231
+ dispatch(
232
+ ageneral_update,
233
+ task_group=self.task_group,
234
+ shared_resources=[repository, self.server],
235
+ exclusive_resources=self.distros_uris,
236
+ args=(
237
+ distro.pk,
238
+ self.app_label,
239
+ self.distribution_serializer_name,
240
+ ),
241
+ kwargs={
242
+ "data": distribution_data,
243
+ "partial": True,
244
+ },
245
+ )
246
+ return
247
+ except self.distribution_model_cls.DoesNotExist:
248
+ pass
249
+
250
+ create_data = dict(distribution_data)
251
+ create_data["name"] = upstream_distribution["name"]
252
+ dispatch(
253
+ general_create,
254
+ task_group=self.task_group,
255
+ shared_resources=[repository, self.server],
256
+ exclusive_resources=self.distros_uris,
257
+ args=(self.app_label, self.distribution_serializer_name),
258
+ kwargs={"data": create_data},
259
+ )
222
260
 
223
261
  def sync_params(self, repository, remote):
224
262
  """This method returns a dict that will be passed as kwargs to the sync task."""
@@ -125,7 +125,7 @@ from .user import (
125
125
  UserRoleSerializer,
126
126
  UserSerializer,
127
127
  )
128
- from .replica import UpstreamPulpSerializer
128
+ from .replica import UpstreamPulpReplicateSerializer, UpstreamPulpSerializer
129
129
  from .vulnerability_report import VulnerabilityReportSerializer
130
130
  from .openpgp import (
131
131
  OpenPGPDistributionSerializer,