pulpcore 3.22.2__tar.gz → 3.23.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 (361) hide show
  1. {pulpcore-3.22.2 → pulpcore-3.23.0}/CHANGES.rst +309 -0
  2. {pulpcore-3.22.2 → pulpcore-3.23.0}/PKG-INFO +2 -1
  3. {pulpcore-3.22.2 → pulpcore-3.23.0}/functest_requirements.txt +2 -0
  4. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/apps.py +53 -4
  5. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/global_access_conditions.py +141 -6
  6. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/add-signing-service.py +1 -3
  7. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -4
  8. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/remove-plugin.py +1 -6
  9. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/remove-signing-service.py +1 -3
  10. pulpcore-3.23.0/pulpcore/app/migrations/0099_versions_field.py +24 -0
  11. pulpcore-3.23.0/pulpcore/app/migrations/0100_upstreampulp.py +38 -0
  12. pulpcore-3.23.0/pulpcore/app/migrations/0101_add_domain.py +61 -0
  13. pulpcore-3.23.0/pulpcore/app/migrations/0102_add_domain_relations.py +212 -0
  14. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/__init__.py +5 -0
  15. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/acs.py +5 -1
  16. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/content.py +61 -23
  17. pulpcore-3.23.0/pulpcore/app/models/domain.py +55 -0
  18. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/fields.py +45 -1
  19. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/importer.py +18 -1
  20. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/publication.py +28 -14
  21. pulpcore-3.23.0/pulpcore/app/models/replica.py +32 -0
  22. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/repository.py +20 -7
  23. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/role.py +8 -2
  24. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/status.py +2 -0
  25. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/storage.py +21 -2
  26. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/task.py +6 -15
  27. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/upload.py +14 -1
  28. pulpcore-3.23.0/pulpcore/app/protobuf/analytics_pb2.py +33 -0
  29. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/redis_connection.py +1 -1
  30. pulpcore-3.23.0/pulpcore/app/replica.py +220 -0
  31. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/response.py +9 -2
  32. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/role_util.py +141 -37
  33. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/__init__.py +3 -0
  34. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/acs.py +8 -3
  35. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/base.py +270 -204
  36. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/content.py +2 -1
  37. pulpcore-3.23.0/pulpcore/app/serializers/domain.py +380 -0
  38. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/fields.py +12 -5
  39. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/importer.py +5 -2
  40. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/publication.py +15 -13
  41. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/reclaim.py +2 -1
  42. pulpcore-3.23.0/pulpcore/app/serializers/replica.py +105 -0
  43. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/repository.py +40 -14
  44. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/status.py +6 -0
  45. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/user.py +84 -46
  46. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/settings.py +9 -7
  47. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/__init__.py +2 -0
  48. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/analytics.py +23 -1
  49. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/base.py +9 -3
  50. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/purge.py +9 -3
  51. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/reclaim_space.py +4 -2
  52. pulpcore-3.23.0/pulpcore/app/tasks/replica.py +81 -0
  53. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/repository.py +9 -4
  54. pulpcore-3.23.0/pulpcore/app/tasks/test.py +14 -0
  55. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/templatetags/pulp_urls.py +2 -2
  56. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/urls.py +21 -24
  57. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/util.py +143 -12
  58. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/views/orphans.py +5 -1
  59. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/views/repair.py +1 -1
  60. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/views/status.py +7 -1
  61. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/__init__.py +3 -0
  62. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/base.py +20 -4
  63. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/content.py +6 -1
  64. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/custom_filters.py +16 -5
  65. pulpcore-3.23.0/pulpcore/app/viewsets/domain.py +120 -0
  66. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/exporter.py +10 -3
  67. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/importer.py +6 -1
  68. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/orphans.py +4 -1
  69. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/publication.py +19 -11
  70. pulpcore-3.23.0/pulpcore/app/viewsets/replica.py +57 -0
  71. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/repository.py +10 -3
  72. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/task.py +7 -9
  73. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/upload.py +5 -5
  74. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/user.py +6 -21
  75. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/backends.py +34 -23
  76. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/cache/cache.py +1 -1
  77. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/content/__init__.py +11 -3
  78. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/content/authentication.py +25 -1
  79. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/content/handler.py +35 -18
  80. pulpcore-3.23.0/pulpcore/middleware.py +37 -0
  81. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/openapi/__init__.py +26 -12
  82. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/actions.py +8 -30
  83. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/models/__init__.py +1 -0
  84. pulpcore-3.23.0/pulpcore/plugin/replica.py +1 -0
  85. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/serializers/__init__.py +3 -0
  86. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/serializers/content.py +3 -1
  87. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/__init__.py +1 -1
  88. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/api.py +3 -8
  89. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/artifact_stages.py +52 -19
  90. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/util.py +12 -1
  91. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/viewsets/__init__.py +2 -0
  92. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/viewsets/content.py +3 -1
  93. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/responses.py +5 -1
  94. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/pulpcore_worker.py +54 -40
  95. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/tasks.py +7 -1
  96. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/__init__.py +438 -22
  97. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_artifact_distribution.py +2 -1
  98. pulpcore-3.23.0/pulpcore/tests/functional/api/test_crud_domains.py +237 -0
  99. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_openapi_schema.py +2 -2
  100. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_status.py +1 -1
  101. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_tasking.py +21 -1
  102. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_users_groups.py +11 -0
  103. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_workers.py +1 -1
  104. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/utils.py +19 -1
  105. pulpcore-3.23.0/pulpcore/tests/unit/serializers/test_domain.py +134 -0
  106. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/PKG-INFO +2 -1
  107. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/SOURCES.txt +16 -2
  108. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/requires.txt +16 -13
  109. {pulpcore-3.22.2 → pulpcore-3.23.0}/requirements.txt +13 -13
  110. {pulpcore-3.22.2 → pulpcore-3.23.0}/setup.py +2 -1
  111. pulpcore-3.22.2/pulpcore/app/management/commands/stage-profile-summary.py +0 -77
  112. pulpcore-3.22.2/pulpcore/app/protobuf/analytics_pb2.py +0 -77
  113. pulpcore-3.22.2/pulpcore/app/tasks/test.py +0 -3
  114. pulpcore-3.22.2/pulpcore/plugin/stages/profiler.py +0 -180
  115. {pulpcore-3.22.2 → pulpcore-3.23.0}/CODE_OF_CONDUCT.md +0 -0
  116. {pulpcore-3.22.2 → pulpcore-3.23.0}/COMMITMENT +0 -0
  117. {pulpcore-3.22.2 → pulpcore-3.23.0}/CONTRIBUTING.md +0 -0
  118. {pulpcore-3.22.2 → pulpcore-3.23.0}/COPYRIGHT +0 -0
  119. {pulpcore-3.22.2 → pulpcore-3.23.0}/LICENSE +0 -0
  120. {pulpcore-3.22.2 → pulpcore-3.23.0}/MANIFEST.in +0 -0
  121. {pulpcore-3.22.2 → pulpcore-3.23.0}/README.md +0 -0
  122. {pulpcore-3.22.2 → pulpcore-3.23.0}/bin/pulp-content +0 -0
  123. {pulpcore-3.22.2 → pulpcore-3.23.0}/manage.py +0 -0
  124. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/__init__.py +0 -0
  125. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/__init__.py +0 -0
  126. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/access_policy.py +0 -0
  127. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/authentication.py +0 -0
  128. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/checks.py +0 -0
  129. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/files.py +0 -0
  130. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/importexport.py +0 -0
  131. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/loggers.py +0 -0
  132. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/manage.py +0 -0
  133. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/__init__.py +0 -0
  134. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/__init__.py +0 -0
  135. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  136. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  137. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/datarepair-labels.py +0 -0
  138. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  139. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  140. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  141. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0001_initial.py +0 -0
  142. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
  143. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
  144. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
  145. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
  146. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
  147. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
  148. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
  149. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
  150. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
  151. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0011_relative_path.py +0 -0
  152. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
  153. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
  154. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
  155. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
  156. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
  157. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
  158. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
  159. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
  160. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
  161. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
  162. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
  163. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
  164. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
  165. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
  166. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0026_task_group.py +0 -0
  167. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0027_export_backend.py +0 -0
  168. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
  169. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0029_export_delete.py +0 -0
  170. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
  171. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
  172. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
  173. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
  174. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
  175. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
  176. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
  177. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
  178. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
  179. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
  180. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
  181. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
  182. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
  183. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
  184. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
  185. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
  186. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
  187. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
  188. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
  189. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
  190. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
  191. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
  192. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
  193. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
  194. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
  195. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0055_label.py +0 -0
  196. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
  197. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
  198. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
  199. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
  200. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
  201. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
  202. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
  203. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
  204. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
  205. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
  206. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
  207. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
  208. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
  209. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
  210. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
  211. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
  212. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
  213. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
  214. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
  215. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0074_acs.py +0 -0
  216. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
  217. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
  218. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
  219. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
  220. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
  221. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
  222. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
  223. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
  224. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
  225. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
  226. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
  227. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
  228. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
  229. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
  230. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
  231. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
  232. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0091_systemid.py +0 -0
  233. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  234. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  235. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  236. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  237. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  238. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  239. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  240. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/migrations/__init__.py +0 -0
  241. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/mime_types.py +0 -0
  242. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/modelresource.py +0 -0
  243. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/access_policy.py +0 -0
  244. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/analytics.py +0 -0
  245. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/base.py +0 -0
  246. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/exporter.py +0 -0
  247. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/generic.py +0 -0
  248. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/models/progress.py +0 -0
  249. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/protobuf/__init__.py +0 -0
  250. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/pulp_hashlib.py +0 -0
  251. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/access_policy.py +0 -0
  252. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/exporter.py +0 -0
  253. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/orphans.py +0 -0
  254. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/progress.py +0 -0
  255. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/purge.py +0 -0
  256. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/repair.py +0 -0
  257. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/task.py +0 -0
  258. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/serializers/upload.py +0 -0
  259. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/export.py +0 -0
  260. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/importer.py +0 -0
  261. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/orphan.py +0 -0
  262. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/tasks/upload.py +0 -0
  263. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/templates/rest_framework/api.html +0 -0
  264. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/templatetags/__init__.py +0 -0
  265. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/views/__init__.py +0 -0
  266. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/views/importer.py +0 -0
  267. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/access_policy.py +0 -0
  268. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/acs.py +0 -0
  269. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/viewsets/reclaim.py +0 -0
  270. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/app/wsgi.py +0 -0
  271. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/cache/__init__.py +0 -0
  272. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/constants.py +0 -0
  273. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/download/__init__.py +0 -0
  274. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/download/base.py +0 -0
  275. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/download/factory.py +0 -0
  276. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/download/file.py +0 -0
  277. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/download/http.py +0 -0
  278. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/exceptions/__init__.py +0 -0
  279. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/exceptions/base.py +0 -0
  280. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/exceptions/plugin.py +0 -0
  281. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/exceptions/validation.py +0 -0
  282. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/filters.py +0 -0
  283. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/__init__.py +0 -0
  284. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/access_policy.py +0 -0
  285. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/apps.py +0 -0
  286. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/authentication/__init__.py +0 -0
  287. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/cache/__init__.py +0 -0
  288. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/constants.py +0 -0
  289. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/content.py +0 -0
  290. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/download/__init__.py +0 -0
  291. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/exceptions.py +0 -0
  292. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/files.py +0 -0
  293. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/importexport.py +0 -0
  294. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/modelresources.py +0 -0
  295. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/models/role.py +0 -0
  296. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/publication_utils.py +0 -0
  297. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/pulp_hashlib.py +0 -0
  298. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/repo_version_utils.py +0 -0
  299. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/responses.py +0 -0
  300. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/content_stages.py +0 -0
  301. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/declarative_version.py +0 -0
  302. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/stages/models.py +0 -0
  303. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/storage.py +0 -0
  304. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/sync.py +0 -0
  305. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/plugin/tasking.py +0 -0
  306. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/__init__.py +0 -0
  307. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/constants.py +0 -0
  308. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/entrypoint.py +0 -0
  309. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/storage.py +0 -0
  310. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tasking/util.py +0 -0
  311. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/__init__.py +0 -0
  312. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/__init__.py +0 -0
  313. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  314. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  315. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_auth.py +0 -0
  316. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  317. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  318. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_role.py +0 -0
  319. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  320. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  321. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  322. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/api/test_upload.py +0 -0
  323. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  324. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/functional/gpg_ascii_armor_signing_service.py +0 -0
  325. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/__init__.py +0 -0
  326. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/content/__init__.py +0 -0
  327. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/content/test_handler.py +0 -0
  328. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  329. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/download/__init__.py +0 -0
  330. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/download/test_download_base.py +0 -0
  331. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/download/test_factory.py +0 -0
  332. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/migrations/__init__.py +0 -0
  333. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/migrations/test_0077_move_remote_url_credentials.py +0 -0
  334. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/models/__init__.py +0 -0
  335. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/models/test_content.py +0 -0
  336. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/models/test_remote.py +0 -0
  337. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/models/test_repository.py +0 -0
  338. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/roles/__init__.py +0 -0
  339. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  340. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  341. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  342. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  343. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  344. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/stages/__init__.py +0 -0
  345. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  346. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  347. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_cache.py +0 -0
  348. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_content_guard.py +0 -0
  349. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_files.py +0 -0
  350. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_import_checks.py +0 -0
  351. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_settings.py +0 -0
  352. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/test_util.py +0 -0
  353. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  354. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore/tests/unit/viewsets/test_base.py +0 -0
  355. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/dependency_links.txt +0 -0
  356. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/entry_points.txt +0 -0
  357. {pulpcore-3.22.2 → pulpcore-3.23.0}/pulpcore.egg-info/top_level.txt +0 -0
  358. {pulpcore-3.22.2 → pulpcore-3.23.0}/pyproject.toml +0 -0
  359. {pulpcore-3.22.2 → pulpcore-3.23.0}/setup.cfg +0 -0
  360. {pulpcore-3.22.2 → pulpcore-3.23.0}/test_requirements.txt +0 -0
  361. {pulpcore-3.22.2 → pulpcore-3.23.0}/unittest_requirements.txt +0 -0
@@ -17,6 +17,159 @@ Changelog
17
17
 
18
18
  .. towncrier release notes start
19
19
 
20
+ 3.23.0 (2023-03-14)
21
+ ===================
22
+ REST API
23
+ --------
24
+
25
+ Features
26
+ ~~~~~~~~
27
+
28
+ - Added a repository exact and in filters to the Distributions API.
29
+ :github:`3394`
30
+ - Added a new optional multi-tenancy namespacing feature: Domains. See workflow documentation for more
31
+ information on this tech-preview feature.
32
+ :github:`3403`
33
+ - Add GCP support
34
+ :github:`3424`
35
+ - Added ``retain_repo_versions`` filter to Repository endpoint.
36
+ :github:`3507`
37
+ - Pass correlation id to signing script through ENV variable
38
+ :github:`3522`
39
+ - Added ability to replicate distributions/repositories from another Pulp.
40
+ :github:`3566`
41
+ - Started to collect statistics about RBAC (amd domain) usage.
42
+ :github:`3639`
43
+
44
+
45
+ Bugfixes
46
+ ~~~~~~~~
47
+
48
+ - Bump dynaconf version to 3.1.12 given it fixes a bug to handle failures when pwd does not exist.
49
+ :github:`3310`
50
+ - Added validation to the repository modify endpoint.
51
+ :github:`3326`
52
+ - Addressed a possible N+1 query performance issue within reclaim_space task.
53
+ :github:`3404`
54
+ - Added repeating logic to signalling a task worker subprocess. This should fix a bug where the
55
+ task refuses to be terminated easily.
56
+ :github:`3407`
57
+ - Added a ``start_repository_version`` parameter to the file system exporter.
58
+
59
+ If specified, it will export only content units that differed between two repository versions.
60
+ :github:`3413`
61
+ - Fixed the label migration code for not null constraint errors when objects with and without labels
62
+ are migrated.
63
+ :github:`3495`
64
+ - Added int64 format to integer fields in api schema.
65
+ :github:`3590`
66
+ - Fixed a bug that caused Pulp to return duplicate content when a user was logged in as a
67
+ non-superuser while the content was part of multiple repositories.
68
+ :github:`3641`
69
+ - Added missing validation to the ``repair`` endpoint.
70
+ :github:`3645`
71
+ - Fixed bug related to pulpcore-content serving content from a remote (pull-through-cache).
72
+ :github:`3654`
73
+
74
+
75
+ Improved Documentation
76
+ ~~~~~~~~~~~~~~~~~~~~~~
77
+
78
+ - Revisited features in tech preview (e.g., ACS, RBAC, metadata signing, import/export) and marked
79
+ them production ready.
80
+ :github:`3429`
81
+ - Documented PostgreSQL version compatibility and incompatibility with transaction based connection
82
+ pooling.
83
+ :github:`3505`
84
+ - Updated the release-process doc to be more complete.
85
+ :github:`3514`
86
+ - Added links to the Containerfiles used for building the pulp and pulp-minimal OCI images.
87
+ :github:`3627`
88
+
89
+
90
+ Removals
91
+ ~~~~~~~~
92
+
93
+ - Removed the PROFILE_STAGES_API setting along with the dependent code.
94
+ :github:`3595`
95
+
96
+
97
+ Misc
98
+ ~~~~
99
+
100
+ - :github:`3446`, :github:`3541`, :github:`3569`, :github:`3574`, :github:`3584`, :github:`3638`
101
+
102
+
103
+ Plugin API
104
+ ----------
105
+
106
+ Features
107
+ ~~~~~~~~
108
+
109
+ - Refactored ``ArtifactDownloader`` stage logic into base class ``GenericDownloader`` and allow for
110
+ the progress reports message and code to be customized by subclasses.
111
+ :github:`1931`
112
+ - Added version information to the worker records in the database.
113
+ :github:`3365`
114
+ - Added new config option ``domain_compatible`` to ``PluginAppConfig`` to specify Domains feature
115
+ compatibility within a plugin. See Domains compatibility documentation in plugin-writer section for
116
+ more information.
117
+ :github:`3403`
118
+ - Exported ``TaskSerializer`` in ``pulpcore.plugin.serializers``
119
+ :github:`3506`
120
+ - Added Replicator class that plugins can implement to enable distribution/repository replication.
121
+ :github:`3566`
122
+ - Exposed a function for extracting PKs from URIs and a function for validating content units
123
+ (``pulpcore.plugin.util.extract_pk``, ``pulpcore.plugin.util.raise_for_unknown_content_units``).
124
+ :github:`3604`
125
+ - Add ``label_field_name`` arg to ``LabelFilter()`` filter that allows plugin devs to
126
+ customize the model field that ``LabelFilter`` filters on.
127
+ :github:`3631`
128
+
129
+
130
+ Bugfixes
131
+ ~~~~~~~~
132
+
133
+ - Added HiddenFieldsMixin to the plugin API.
134
+ :github:`3520`
135
+ - Exported ``LabelFilter`` to the plugin api as a replacement for the deprecated
136
+ ``LabelSelectFilter``.
137
+ :github:`3570`
138
+
139
+
140
+ Improved Documentation
141
+ ~~~~~~~~~~~~~~~~~~~~~~
142
+
143
+ - Adds docs that plugin writers tasks must be backwards compatible until the next major Pulp version.
144
+ :github:`3368`
145
+ - Adds docs on the need and possible options for writing migrations in a way that they could be
146
+ applied to a running Pulp system.
147
+ :github:`3443`
148
+
149
+
150
+ Deprecations
151
+ ~~~~~~~~~~~~
152
+
153
+ - Deprecated ``NamedModelViewSet.extract_pk`` in favour of ``pulpcore.plugin.util.extract_pk``.
154
+ Deprecated ``pulpcore.plugin.actions.raise_for_unknown_content_units`` in favour of
155
+ ``pulpcore.plugin.util.raise_for_unknown_content_units``.
156
+ :github:`3604`
157
+
158
+
159
+ 3.22.3 (2023-03-06)
160
+ ===================
161
+ REST API
162
+ --------
163
+
164
+ No significant changes.
165
+
166
+
167
+ Plugin API
168
+ ----------
169
+
170
+ No significant changes.
171
+
172
+
20
173
  3.22.2 (2023-02-02)
21
174
  ===================
22
175
  REST API
@@ -211,6 +364,46 @@ Removals
211
364
  :github:`3400`
212
365
 
213
366
 
367
+ 3.21.5 (2023-02-02)
368
+ ===================
369
+ REST API
370
+ --------
371
+
372
+ Bugfixes
373
+ ~~~~~~~~
374
+
375
+ - Added a ``start_repository_version`` parameter to the file system exporter.
376
+
377
+ If specified, it will export only content units that differed between two repository versions.
378
+ :github:`3413`
379
+
380
+
381
+ Plugin API
382
+ ----------
383
+
384
+ No significant changes.
385
+
386
+
387
+ 3.21.4 (2023-01-20)
388
+ ===================
389
+ REST API
390
+ --------
391
+
392
+ Bugfixes
393
+ ~~~~~~~~
394
+
395
+ - Fixed an occasional 500 error when viewing a repository version content summary while performing a content deletion task.
396
+ :github:`3299`
397
+ - Fix migrating Remotes with @ in path
398
+ :github:`3409`
399
+
400
+
401
+ Plugin API
402
+ ----------
403
+
404
+ No significant changes.
405
+
406
+
214
407
  3.21.3 (2022-11-15)
215
408
  ===================
216
409
  REST API
@@ -820,6 +1013,82 @@ Bugfixes
820
1013
  :github:`2069`
821
1014
 
822
1015
 
1016
+ 3.18.15 (2023-03-09)
1017
+ ====================
1018
+ REST API
1019
+ --------
1020
+
1021
+ Bugfixes
1022
+ ~~~~~~~~
1023
+
1024
+ - Added a ``start_repository_version`` parameter to the file system exporter.
1025
+
1026
+ If specified, it will export only content units that differed between two repository versions.
1027
+ :github:`3413`
1028
+
1029
+
1030
+ Plugin API
1031
+ ----------
1032
+
1033
+ No significant changes.
1034
+
1035
+
1036
+ 3.18.14 (2023-02-23)
1037
+ ====================
1038
+ REST API
1039
+ --------
1040
+
1041
+ Bugfixes
1042
+ ~~~~~~~~
1043
+
1044
+ - Fixed a bug that caused the import machinery to import the same content multiple times in a row.
1045
+ :github:`3075`
1046
+
1047
+
1048
+ Plugin API
1049
+ ----------
1050
+
1051
+ No significant changes.
1052
+
1053
+
1054
+ 3.18.13 (2023-01-20)
1055
+ ====================
1056
+ REST API
1057
+ --------
1058
+
1059
+ Bugfixes
1060
+ ~~~~~~~~
1061
+
1062
+ - Fixed an occasional 500 error when viewing a repository version content summary while performing a content deletion task.
1063
+ :github:`3299`
1064
+
1065
+
1066
+ Plugin API
1067
+ ----------
1068
+
1069
+ No significant changes.
1070
+
1071
+
1072
+ 3.18.12 (2023-01-10)
1073
+ ====================
1074
+ REST API
1075
+ --------
1076
+
1077
+ Bugfixes
1078
+ ~~~~~~~~
1079
+
1080
+ - Insured that pulp-export correctly locks repos-being-exported.
1081
+ :github:`3370`
1082
+ - Fix migrating Remotes with @ in path
1083
+ :github:`3409`
1084
+
1085
+
1086
+ Plugin API
1087
+ ----------
1088
+
1089
+ No significant changes.
1090
+
1091
+
823
1092
  3.18.11 (2022-11-02)
824
1093
  ====================
825
1094
  REST API
@@ -1601,6 +1870,26 @@ Bugfixes
1601
1870
  :redmine:`9608`
1602
1871
 
1603
1872
 
1873
+ 3.16.16 (2023-02-23)
1874
+ ====================
1875
+ REST API
1876
+ --------
1877
+
1878
+ Bugfixes
1879
+ ~~~~~~~~
1880
+
1881
+ - Fixed a bug that caused the import machinery to import the same content multiple times in a row.
1882
+ :github:`3075`
1883
+ - Insured that pulp-export correctly locks repos-being-exported.
1884
+ :github:`3370`
1885
+
1886
+
1887
+ Plugin API
1888
+ ----------
1889
+
1890
+ No significant changes.
1891
+
1892
+
1604
1893
  3.16.15 (2022-11-02)
1605
1894
  ====================
1606
1895
  REST API
@@ -2571,6 +2860,26 @@ Misc
2571
2860
  - :redmine:`8606`, :redmine:`9160`
2572
2861
 
2573
2862
 
2863
+ 3.14.19 (2023-02-09)
2864
+ ====================
2865
+ REST API
2866
+ --------
2867
+
2868
+ Bugfixes
2869
+ ~~~~~~~~
2870
+
2871
+ - Fixed another rare deadlock for high-concurrency/overlapping-content syncs.
2872
+ :github:`3111`
2873
+ - Another step on closing the deadlock-window when syncing overlapping content.
2874
+ :github:`3284`
2875
+
2876
+
2877
+ Plugin API
2878
+ ----------
2879
+
2880
+ No significant changes.
2881
+
2882
+
2574
2883
  3.14.18 (2022-07-14)
2575
2884
  ====================
2576
2885
  REST API
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulpcore
3
- Version: 3.22.2
3
+ Version: 3.23.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Home-page: https://pulpproject.org
6
6
  Author: Pulp Team
@@ -46,5 +46,6 @@ Requires-Python: >=3.8
46
46
  Description-Content-Type: text/markdown
47
47
  Provides-Extra: sftp
48
48
  Provides-Extra: s3
49
+ Provides-Extra: google
49
50
  Provides-Extra: azure
50
51
  Provides-Extra: prometheus
@@ -7,3 +7,5 @@ pulpcore-client
7
7
  pulp-file-client
8
8
  pytest
9
9
  python-gnupg
10
+ proxy.py~=2.4.3
11
+ trustme~=0.9.0
@@ -4,10 +4,10 @@ from collections import defaultdict
4
4
  from gettext import gettext as _
5
5
  from importlib import import_module
6
6
 
7
- from django.conf import settings
8
7
  from django import apps
8
+ from django.conf import settings
9
9
  from django.core.exceptions import ImproperlyConfigured
10
- from django.db import transaction
10
+ from django.db import connection, transaction
11
11
  from django.db.models.expressions import OuterRef, RawSQL
12
12
  from django.db.models.signals import post_migrate
13
13
  from django.utils.module_loading import module_has_submodule
@@ -19,6 +19,7 @@ VIEWSETS_MODULE_NAME = "viewsets"
19
19
  SERIALIZERS_MODULE_NAME = "serializers"
20
20
  URLS_MODULE_NAME = "urls"
21
21
  MODELRESOURCE_MODULE_NAME = "modelresource"
22
+ REPLICA_MODULE_NAME = "replica"
22
23
 
23
24
 
24
25
  def pulp_plugin_configs():
@@ -86,7 +87,13 @@ class PulpPluginAppConfig(apps.AppConfig):
86
87
  "attribute."
87
88
  )
88
89
  raise ImproperlyConfigured(msg.format(self.label))
89
-
90
+ if settings.DOMAIN_ENABLED:
91
+ if not getattr(self, "domain_compatible", None):
92
+ msg = (
93
+ "The plugin `{}-{}` is not domain compatible. Please uninstall/update the "
94
+ "plugin or turn off `DOMAIN_ENABLED` for Pulp to start."
95
+ )
96
+ raise ImproperlyConfigured(msg.format(self.python_package_name, self.version))
90
97
  # Module containing viewsets eg. <module 'pulp_plugin.app.viewsets'
91
98
  # from 'pulp_plugin/app/viewsets.py'>. Set by import_viewsets().
92
99
  # None if the application doesn't have a viewsets module, automatically set
@@ -101,6 +108,11 @@ class PulpPluginAppConfig(apps.AppConfig):
101
108
  # List of classes from self.modelresource_module that can be exported
102
109
  self.exportable_classes = None
103
110
 
111
+ # Module containing the replicator class for a plugin
112
+ self.replicator_module = None
113
+ # List of classes from the self.replicator_module
114
+ self.replicator_classes = None
115
+
104
116
  # Mapping of model names to viewset lists (viewsets unrelated to models are excluded)
105
117
  self.named_viewsets = None
106
118
  # Mapping of serializer names to serializers
@@ -111,6 +123,7 @@ class PulpPluginAppConfig(apps.AppConfig):
111
123
  self.import_serializers()
112
124
  self.import_urls()
113
125
  self.import_modelresources()
126
+ self.import_replicators()
114
127
  post_migrate.connect(
115
128
  _populate_access_policies,
116
129
  sender=self,
@@ -193,6 +206,19 @@ class PulpPluginAppConfig(apps.AppConfig):
193
206
  self.modelresource_module = import_module(modelrsrc_module_name)
194
207
  self.exportable_classes = self.modelresource_module.IMPORT_ORDER
195
208
 
209
+ def import_replicators(self):
210
+ """
211
+ If a plugin has a replicator.py, import it.
212
+
213
+ This exists when a plugin supports replication from an upstream Pulp.
214
+ """
215
+ if module_has_submodule(self.module, REPLICA_MODULE_NAME) and self.name != "pulpcore.app":
216
+ replica_module_name = "{name}.{module}".format(
217
+ name=self.name, module=REPLICA_MODULE_NAME
218
+ )
219
+ self.replicator_module = import_module(replica_module_name)
220
+ self.replicator_classes = self.replicator_module.REPLICATION_ORDER
221
+
196
222
 
197
223
  class PulpAppConfig(PulpPluginAppConfig):
198
224
  # The pulpcore app is itself a pulpcore plugin so that it can benefit from
@@ -207,15 +233,20 @@ class PulpAppConfig(PulpPluginAppConfig):
207
233
  label = "core"
208
234
 
209
235
  # The version of this app
210
- version = "3.22.2"
236
+ version = "3.23.0"
211
237
 
212
238
  # The python package name providing this app
213
239
  python_package_name = "pulpcore"
214
240
 
241
+ domain_compatible = True
242
+
215
243
  def ready(self):
216
244
  super().ready()
217
245
  from . import checks # noqa
218
246
 
247
+ post_migrate.connect(
248
+ _ensure_default_domain, sender=self, dispatch_uid="ensure_default_domain"
249
+ )
219
250
  post_migrate.connect(
220
251
  _populate_system_id, sender=self, dispatch_uid="populate_system_id_identifier"
221
252
  )
@@ -279,6 +310,24 @@ def _populate_system_id(sender, apps, verbosity, **kwargs):
279
310
  SystemID().save()
280
311
 
281
312
 
313
+ def _ensure_default_domain(sender, **kwargs):
314
+ table_names = connection.introspection.table_names()
315
+ if "core_domain" in table_names:
316
+ from pulpcore.app.util import get_default_domain
317
+
318
+ default = get_default_domain() # Cache the default domain
319
+ # Match the Pulp settings
320
+ if (
321
+ settings.HIDE_GUARDED_DISTRIBUTIONS != default.hide_guarded_distributions
322
+ or settings.REDIRECT_TO_OBJECT_STORAGE != default.redirect_to_object_storage
323
+ or settings.DEFAULT_FILE_STORAGE != default.storage_class
324
+ ):
325
+ default.hide_guarded_distributions = settings.HIDE_GUARDED_DISTRIBUTIONS
326
+ default.redirect_to_object_storage = settings.REDIRECT_TO_OBJECT_STORAGE
327
+ default.storage_class = settings.DEFAULT_FILE_STORAGE
328
+ default.save(skip_hooks=True)
329
+
330
+
282
331
  def _populate_roles(sender, apps, verbosity, **kwargs):
283
332
  role_prefix = f"{sender.label}."
284
333
  # collect all plugin defined roles