pulpcore 3.49.65__tar.gz → 3.49.67__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 (514) hide show
  1. {pulpcore-3.49.65 → pulpcore-3.49.67}/CHANGES.md +45 -0
  2. {pulpcore-3.49.65 → pulpcore-3.49.67}/PKG-INFO +1 -1
  3. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_domains.py +1 -1
  6. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_pulp_export.py +1 -1
  7. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/apps.py +1 -1
  8. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/authentication.py +1 -1
  9. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/redis_connection.py +1 -1
  10. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/exporter.py +1 -1
  11. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/fields.py +4 -0
  12. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/importer.py +1 -1
  13. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/repository.py +1 -1
  14. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/export.py +2 -1
  15. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/views/importer.py +1 -1
  16. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/domain.py +1 -0
  17. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/cache/cache.py +1 -1
  18. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_auth.py +1 -1
  19. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_crud_domains.py +38 -0
  20. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +1 -1
  21. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +1 -1
  22. pulpcore-3.49.67/pulpcore/tests/unit/serializers/test_fields.py +17 -0
  23. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/PKG-INFO +1 -1
  24. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/SOURCES.txt +1 -0
  25. {pulpcore-3.49.65 → pulpcore-3.49.67}/pyproject.toml +3 -2
  26. {pulpcore-3.49.65 → pulpcore-3.49.67}/setup.py +1 -1
  27. {pulpcore-3.49.65 → pulpcore-3.49.67}/CODE_OF_CONDUCT.md +0 -0
  28. {pulpcore-3.49.65 → pulpcore-3.49.67}/COMMITMENT +0 -0
  29. {pulpcore-3.49.65 → pulpcore-3.49.67}/CONTRIBUTING.md +0 -0
  30. {pulpcore-3.49.65 → pulpcore-3.49.67}/COPYRIGHT +0 -0
  31. {pulpcore-3.49.65 → pulpcore-3.49.67}/LICENSE +0 -0
  32. {pulpcore-3.49.65 → pulpcore-3.49.67}/MANIFEST.in +0 -0
  33. {pulpcore-3.49.65 → pulpcore-3.49.67}/README.md +0 -0
  34. {pulpcore-3.49.65 → pulpcore-3.49.67}/ci_requirements.txt +0 -0
  35. {pulpcore-3.49.65 → pulpcore-3.49.67}/functest_requirements.txt +0 -0
  36. {pulpcore-3.49.65 → pulpcore-3.49.67}/manage.py +0 -0
  37. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/__init__.py +0 -0
  38. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  39. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  40. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/migrations/__init__.py +0 -0
  41. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/models.py +0 -0
  42. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/serializers.py +0 -0
  43. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/utils.py +0 -0
  44. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/app/viewsets.py +0 -0
  45. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/pytest_plugin.py +0 -0
  46. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/__init__.py +0 -0
  47. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/__init__.py +0 -0
  48. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  49. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  50. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  51. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  52. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  53. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  54. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  55. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  56. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  57. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  58. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  59. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  60. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  61. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  62. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  63. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  64. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  65. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  66. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  67. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  68. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  69. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  70. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  71. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  72. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  73. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  74. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  75. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  76. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  77. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  78. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  79. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  80. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/conftest.py +0 -0
  81. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/functional/constants.py +0 -0
  82. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/unit/__init__.py +0 -0
  83. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_certguard/tests/unit/test_models.py +0 -0
  84. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/__init__.py +0 -0
  85. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0001_initial.py +0 -0
  86. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0002_file_related_names.py +0 -0
  87. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0003_auto_20191014_1721.py +0 -0
  88. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0004_filefilesystemexporter.py +0 -0
  89. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0005_filerepository.py +0 -0
  90. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0006_delete_filefilesystemexporter.py +0 -0
  91. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0007_filefilesystemexporter.py +0 -0
  92. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0008_add_manifest_field.py +0 -0
  93. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0009_move_data_to_new_master_distribution_model.py +0 -0
  94. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0010_auto_publish.py +0 -0
  95. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0011_fix_auto_publish.py +0 -0
  96. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0012_delete_filefilesystemexporter.py +0 -0
  97. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0013_file_acs.py +0 -0
  98. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0014_new_rbac_permissions.py +0 -0
  99. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0015_allow_null_manifest.py +0 -0
  100. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0016_add_domain.py +0 -0
  101. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  102. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/migrations/__init__.py +0 -0
  103. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/modelresource.py +0 -0
  104. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/models.py +0 -0
  105. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/replica.py +0 -0
  106. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/serializers.py +0 -0
  107. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/tasks/__init__.py +0 -0
  108. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/tasks/publishing.py +0 -0
  109. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/tasks/synchronizing.py +0 -0
  110. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/app/viewsets.py +0 -0
  111. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/manifest.py +0 -0
  112. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/pytest_plugin.py +0 -0
  113. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/__init__.py +0 -0
  114. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/__init__.py +0 -0
  115. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/__init__.py +0 -0
  116. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_acs.py +0 -0
  117. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  118. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  119. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_crud_content_unit.py +0 -0
  120. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  121. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_download_policies.py +0 -0
  122. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  123. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_labels.py +0 -0
  124. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  125. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_publish.py +0 -0
  126. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  127. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  128. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/functional/api/test_sync.py +0 -0
  129. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/unit/__init__.py +0 -0
  130. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulp_file/tests/unit/test_serializers.py +0 -0
  131. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/__init__.py +0 -0
  132. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/__init__.py +0 -0
  133. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/access_policy.py +0 -0
  134. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/checks.py +0 -0
  135. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/entrypoint.py +0 -0
  136. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/files.py +0 -0
  137. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/global_access_conditions.py +0 -0
  138. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/importexport.py +0 -0
  139. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/loggers.py +0 -0
  140. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/manage.py +0 -0
  141. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/__init__.py +0 -0
  142. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/__init__.py +0 -0
  143. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  144. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  145. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  146. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  147. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  148. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  149. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/openapi.py +0 -0
  150. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  151. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  152. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/repository-size.py +0 -0
  153. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  154. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  155. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/management/commands/shell.py +0 -0
  156. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0001_initial.py +0 -0
  157. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
  158. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
  159. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
  160. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
  161. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
  162. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
  163. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
  164. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
  165. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
  166. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0011_relative_path.py +0 -0
  167. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
  168. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
  169. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
  170. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
  171. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
  172. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
  173. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
  174. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
  175. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
  176. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
  177. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
  178. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
  179. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
  180. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
  181. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0026_task_group.py +0 -0
  182. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0027_export_backend.py +0 -0
  183. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
  184. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0029_export_delete.py +0 -0
  185. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
  186. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
  187. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
  188. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
  189. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
  190. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
  191. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
  192. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
  193. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
  194. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
  195. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
  196. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
  197. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
  198. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
  199. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
  200. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
  201. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
  202. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
  203. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
  204. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
  205. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
  206. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
  207. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
  208. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
  209. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
  210. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0055_label.py +0 -0
  211. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
  212. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
  213. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
  214. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
  215. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
  216. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
  217. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
  218. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
  219. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
  220. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
  221. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
  222. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
  223. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
  224. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
  225. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
  226. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
  227. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
  228. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
  229. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
  230. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0074_acs.py +0 -0
  231. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
  232. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
  233. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
  234. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
  235. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
  236. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
  237. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
  238. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
  239. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
  240. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
  241. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
  242. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
  243. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
  244. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
  245. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
  246. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
  247. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0091_systemid.py +0 -0
  248. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  249. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  250. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  251. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  252. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  253. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  254. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  255. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  256. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  257. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  258. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  259. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  260. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  261. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  262. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  263. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  264. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  265. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  266. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  267. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  268. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  269. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  270. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  271. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  272. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  273. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  274. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/migrations/__init__.py +0 -0
  275. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/mime_types.py +0 -0
  276. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/modelresource.py +0 -0
  277. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/__init__.py +0 -0
  278. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/access_policy.py +0 -0
  279. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/acs.py +0 -0
  280. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/analytics.py +0 -0
  281. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/base.py +0 -0
  282. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/content.py +0 -0
  283. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/domain.py +0 -0
  284. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/exporter.py +0 -0
  285. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/fields.py +0 -0
  286. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/generic.py +0 -0
  287. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/importer.py +0 -0
  288. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/progress.py +0 -0
  289. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/publication.py +0 -0
  290. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/replica.py +0 -0
  291. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/repository.py +0 -0
  292. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/role.py +0 -0
  293. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/status.py +0 -0
  294. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/storage.py +0 -0
  295. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/task.py +0 -0
  296. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/models/upload.py +0 -0
  297. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/protobuf/__init__.py +0 -0
  298. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  299. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/pulp_hashlib.py +0 -0
  300. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  301. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/replica.py +0 -0
  302. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/response.py +0 -0
  303. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/role_util.py +0 -0
  304. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/__init__.py +0 -0
  305. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/access_policy.py +0 -0
  306. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/acs.py +0 -0
  307. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/base.py +0 -0
  308. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/content.py +0 -0
  309. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/domain.py +0 -0
  310. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/orphans.py +0 -0
  311. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/progress.py +0 -0
  312. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/publication.py +0 -0
  313. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/purge.py +0 -0
  314. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/reclaim.py +0 -0
  315. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/repair.py +0 -0
  316. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/replica.py +0 -0
  317. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/status.py +0 -0
  318. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/task.py +0 -0
  319. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/upload.py +0 -0
  320. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/serializers/user.py +0 -0
  321. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/settings.py +0 -0
  322. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/__init__.py +0 -0
  323. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/analytics.py +0 -0
  324. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/base.py +0 -0
  325. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/importer.py +0 -0
  326. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/orphan.py +0 -0
  327. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/purge.py +0 -0
  328. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/reclaim_space.py +0 -0
  329. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/replica.py +0 -0
  330. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/repository.py +0 -0
  331. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/test.py +0 -0
  332. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/tasks/upload.py +0 -0
  333. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/templates/rest_framework/api.html +0 -0
  334. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/templatetags/__init__.py +0 -0
  335. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  336. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/urls.py +0 -0
  337. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/util.py +0 -0
  338. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/views/__init__.py +0 -0
  339. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/views/orphans.py +0 -0
  340. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/views/repair.py +0 -0
  341. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/views/status.py +0 -0
  342. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/__init__.py +0 -0
  343. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/access_policy.py +0 -0
  344. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/acs.py +0 -0
  345. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/base.py +0 -0
  346. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/content.py +0 -0
  347. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/custom_filters.py +0 -0
  348. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/exporter.py +0 -0
  349. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/importer.py +0 -0
  350. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/orphans.py +0 -0
  351. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/publication.py +0 -0
  352. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/reclaim.py +0 -0
  353. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/replica.py +0 -0
  354. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/repository.py +0 -0
  355. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/task.py +0 -0
  356. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/upload.py +0 -0
  357. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/viewsets/user.py +0 -0
  358. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/app/wsgi.py +0 -0
  359. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/backends.py +0 -0
  360. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/cache/__init__.py +0 -0
  361. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/constants.py +0 -0
  362. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/content/__init__.py +0 -0
  363. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/content/authentication.py +0 -0
  364. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/content/entrypoint.py +0 -0
  365. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/content/handler.py +0 -0
  366. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/content/instrumentation.py +0 -0
  367. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/download/__init__.py +0 -0
  368. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/download/base.py +0 -0
  369. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/download/factory.py +0 -0
  370. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/download/file.py +0 -0
  371. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/download/http.py +0 -0
  372. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/exceptions/__init__.py +0 -0
  373. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/exceptions/base.py +0 -0
  374. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/exceptions/plugin.py +0 -0
  375. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/exceptions/validation.py +0 -0
  376. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/filters.py +0 -0
  377. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/middleware.py +0 -0
  378. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/migrations.py +0 -0
  379. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/openapi/__init__.py +0 -0
  380. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/openapi/hooks.py +0 -0
  381. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/__init__.py +0 -0
  382. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/access_policy.py +0 -0
  383. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/actions.py +0 -0
  384. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/apps.py +0 -0
  385. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/authentication/__init__.py +0 -0
  386. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/cache/__init__.py +0 -0
  387. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/constants.py +0 -0
  388. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/content.py +0 -0
  389. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/download/__init__.py +0 -0
  390. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/exceptions.py +0 -0
  391. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/files.py +0 -0
  392. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/importexport.py +0 -0
  393. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/migrations.py +0 -0
  394. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/modelresources.py +0 -0
  395. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/models/__init__.py +0 -0
  396. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/models/role.py +0 -0
  397. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/publication_utils.py +0 -0
  398. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/pulp_hashlib.py +0 -0
  399. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/replica.py +0 -0
  400. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/repo_version_utils.py +0 -0
  401. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/responses.py +0 -0
  402. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/serializers/__init__.py +0 -0
  403. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/serializers/content.py +0 -0
  404. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/__init__.py +0 -0
  405. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/api.py +0 -0
  406. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/artifact_stages.py +0 -0
  407. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/content_stages.py +0 -0
  408. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/declarative_version.py +0 -0
  409. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/stages/models.py +0 -0
  410. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/storage.py +0 -0
  411. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/sync.py +0 -0
  412. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/tasking.py +0 -0
  413. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/util.py +0 -0
  414. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/viewsets/__init__.py +0 -0
  415. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/plugin/viewsets/content.py +0 -0
  416. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/responses.py +0 -0
  417. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/__init__.py +0 -0
  418. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/_util.py +0 -0
  419. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/entrypoint.py +0 -0
  420. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/storage.py +0 -0
  421. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/tasks.py +0 -0
  422. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tasking/worker.py +0 -0
  423. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/__init__.py +0 -0
  424. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/__init__.py +0 -0
  425. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/__init__.py +0 -0
  426. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  427. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  428. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  429. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  430. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  431. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_filter.py +0 -0
  432. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  433. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_replication.py +0 -0
  434. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_repos.py +0 -0
  435. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_role.py +0 -0
  436. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  437. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  438. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  439. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_status.py +0 -0
  440. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  441. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_upload.py +0 -0
  442. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  443. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/test_workers.py +0 -0
  444. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  445. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  446. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
  447. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +0 -0
  448. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  449. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  450. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  451. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  452. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  453. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  454. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  455. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  456. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  457. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  458. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_purge.py +0 -0
  459. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  460. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  461. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  462. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  463. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  464. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/assets/__init__.py +0 -0
  465. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  466. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/gpg_ascii_armor_signing_service.py +0 -0
  467. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/functional/utils.py +0 -0
  468. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/performance/__init__.py +0 -0
  469. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/performance/test_performance.py +0 -0
  470. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/__init__.py +0 -0
  471. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/conftest.py +0 -0
  472. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/content/__init__.py +0 -0
  473. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/content/test_handler.py +0 -0
  474. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  475. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/download/__init__.py +0 -0
  476. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  477. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  478. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/migration/__init__.py +0 -0
  479. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
  480. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/models/__init__.py +0 -0
  481. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/models/test_base.py +0 -0
  482. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/models/test_content.py +0 -0
  483. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/models/test_remote.py +0 -0
  484. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/models/test_repository.py +0 -0
  485. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/roles/__init__.py +0 -0
  486. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/roles/test_adjust_roles.py +0 -0
  487. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  488. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  489. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  490. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
  491. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  492. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  493. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/stages/__init__.py +0 -0
  494. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  495. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  496. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_cache.py +0 -0
  497. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  498. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_content_guard.py +0 -0
  499. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_files.py +0 -0
  500. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_import_checks.py +0 -0
  501. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  502. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_settings.py +0 -0
  503. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_util.py +0 -0
  504. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/test_viewsets.py +0 -0
  505. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  506. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  507. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/dependency_links.txt +0 -0
  508. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/entry_points.txt +0 -0
  509. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/requires.txt +0 -0
  510. {pulpcore-3.49.65 → pulpcore-3.49.67}/pulpcore.egg-info/top_level.txt +0 -0
  511. {pulpcore-3.49.65 → pulpcore-3.49.67}/requirements.txt +0 -0
  512. {pulpcore-3.49.65 → pulpcore-3.49.67}/setup.cfg +0 -0
  513. {pulpcore-3.49.65 → pulpcore-3.49.67}/test_requirements.txt +0 -0
  514. {pulpcore-3.49.65 → pulpcore-3.49.67}/unittest_requirements.txt +0 -0
@@ -8,6 +8,51 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.49.67 (2026-07-28) {: #3.49.67 }
12
+
13
+ ### REST API {: #3.49.67-rest-api }
14
+
15
+ #### Bugfixes {: #3.49.67-rest-api-bugfix }
16
+
17
+ - Fixed domain list returning all domains to authenticated users instead of only domains they can view.
18
+ [#7898](https://github.com/pulp/pulpcore/issues/7898)
19
+
20
+ ### Plugin API {: #3.49.67-plugin-api }
21
+
22
+ No significant changes.
23
+
24
+ ### Pulp File {: #3.49.67-pulp-file }
25
+
26
+ No significant changes.
27
+
28
+ ### Pulp Cert Guard {: #3.49.67-pulp-cert-guard }
29
+
30
+ No significant changes.
31
+
32
+ ---
33
+
34
+ ## 3.49.66 (2026-07-20) {: #3.49.66 }
35
+
36
+ ### REST API {: #3.49.66-rest-api }
37
+
38
+ #### Bugfixes {: #3.49.66-rest-api-bugfix }
39
+
40
+ - Improved validation of relative paths to prevent a path traversal attack in filesystem exports. (CVE-2026-12701)
41
+
42
+ ### Plugin API {: #3.49.66-plugin-api }
43
+
44
+ No significant changes.
45
+
46
+ ### Pulp File {: #3.49.66-pulp-file }
47
+
48
+ No significant changes.
49
+
50
+ ### Pulp Cert Guard {: #3.49.66-pulp-cert-guard }
51
+
52
+ No significant changes.
53
+
54
+ ---
55
+
11
56
  ## 3.49.65 (2026-07-16) {: #3.49.65 }
12
57
 
13
58
  ### REST API {: #3.49.65-rest-api }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.49.65
3
+ Version: 3.49.67
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Home-page: https://pulpproject.org
6
6
  Author: Pulp Team
@@ -6,6 +6,6 @@ class PulpCertGuardPluginAppConfig(PulpPluginAppConfig):
6
6
 
7
7
  name = "pulp_certguard.app"
8
8
  label = "certguard"
9
- version = "3.49.65"
9
+ version = "3.49.67"
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.49.65"
11
+ version = "3.49.67"
12
12
  python_package_name = "pulpcore"
13
13
  domain_compatible = True
@@ -3,7 +3,7 @@ import uuid
3
3
 
4
4
  import pytest
5
5
 
6
- from pulpcore.app import settings
6
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
7
7
  from pulpcore.client.pulp_file import ApiException
8
8
  from pulpcore.client.pulpcore import ApiException as CoreApiException
9
9
  from pulpcore.client.pulpcore import Repair
@@ -2,7 +2,7 @@ import uuid
2
2
 
3
3
  import pytest
4
4
 
5
- from pulpcore.app import settings
5
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
6
6
  from pulpcore.client.pulpcore.exceptions import ApiException
7
7
  from pulpcore.constants import TASK_STATES
8
8
 
@@ -242,7 +242,7 @@ class PulpAppConfig(PulpPluginAppConfig):
242
242
  label = "core"
243
243
 
244
244
  # The version of this app
245
- version = "3.49.65"
245
+ version = "3.49.67"
246
246
 
247
247
  # The python package name providing this app
248
248
  python_package_name = "pulpcore"
@@ -10,7 +10,7 @@ from django.contrib.auth.backends import RemoteUserBackend
10
10
  from rest_framework.authentication import BaseAuthentication, RemoteUserAuthentication
11
11
  from rest_framework.exceptions import AuthenticationFailed
12
12
 
13
- from pulpcore.app import settings
13
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
14
14
 
15
15
  _logger = logging.getLogger(__name__)
16
16
 
@@ -1,7 +1,7 @@
1
1
  from redis import Redis
2
2
  from redis.asyncio import Redis as aRedis
3
3
 
4
- from pulpcore.app.settings import settings
4
+ from pulpcore.app.settings import settings # noqa: TID251 Unfixable in old dynaconf version.
5
5
 
6
6
  _conn = None
7
7
  _a_conn = None
@@ -5,7 +5,7 @@ from gettext import gettext as _
5
5
  from rest_framework import serializers
6
6
  from rest_framework.validators import UniqueValidator
7
7
 
8
- from pulpcore.app import models, settings
8
+ from pulpcore.app import models, settings # noqa: TID251 Unfixable in old dynaconf version.
9
9
  from pulpcore.app.serializers import (
10
10
  DetailIdentityField,
11
11
  DetailRelatedField,
@@ -20,6 +20,10 @@ def relative_path_validator(relative_path):
20
20
  raise serializers.ValidationError(
21
21
  _("Relative path can't start with '/'. {0}").format(relative_path)
22
22
  )
23
+ if os.path.normpath(relative_path).startswith("../"):
24
+ raise serializers.ValidationError(
25
+ _("Relative path must not reach beyond the base path. {0}").format(relative_path)
26
+ )
23
27
 
24
28
 
25
29
  @extend_schema_field(OpenApiTypes.OBJECT)
@@ -5,7 +5,7 @@ from django.core.exceptions import ObjectDoesNotExist
5
5
  from rest_framework import serializers
6
6
  from rest_framework.validators import UniqueValidator
7
7
 
8
- from pulpcore.app import models, settings
8
+ from pulpcore.app import models, settings # noqa: TID251 Unfixable in old dynaconf version.
9
9
  from pulpcore.app.serializers import (
10
10
  DetailIdentityField,
11
11
  ImportIdentityField,
@@ -6,7 +6,7 @@ from cryptography.x509 import load_pem_x509_certificate
6
6
  from rest_framework import fields, serializers
7
7
  from rest_framework_nested.serializers import NestedHyperlinkedModelSerializer
8
8
 
9
- from pulpcore.app import models, settings
9
+ from pulpcore.app import models, settings # noqa: TID251 Unfixable in old dynaconf version.
10
10
  from pulpcore.app.serializers import (
11
11
  DetailIdentityField,
12
12
  DetailRelatedField,
@@ -29,7 +29,7 @@ from pulpcore.app.models import (
29
29
  Task,
30
30
  )
31
31
  from pulpcore.app.models.content import ContentArtifact
32
- from pulpcore.app.serializers import PulpExportSerializer
32
+ from pulpcore.app.serializers import PulpExportSerializer, relative_path_validator
33
33
  from pulpcore.app.util import Crc32Hasher, compute_file_hash
34
34
  from pulpcore.constants import FS_EXPORT_METHODS
35
35
 
@@ -98,6 +98,7 @@ def _export_to_file_system(path, relative_paths_to_artifacts, method=FS_EXPORT_M
98
98
  method = FS_EXPORT_METHODS.WRITE
99
99
 
100
100
  for relative_path, artifact in relative_paths_to_artifacts.items():
101
+ relative_path_validator(relative_path)
101
102
  dest = os.path.join(path, relative_path)
102
103
  os.makedirs(os.path.split(dest)[0], exist_ok=True)
103
104
 
@@ -6,7 +6,7 @@ from drf_spectacular.utils import extend_schema
6
6
  from rest_framework.response import Response
7
7
  from rest_framework.views import APIView
8
8
 
9
- from pulpcore.app import settings
9
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
10
10
  from pulpcore.app.serializers import PulpImportCheckResponseSerializer, PulpImportCheckSerializer
11
11
 
12
12
 
@@ -37,6 +37,7 @@ class DomainViewSet(
37
37
  serializer_class = DomainSerializer
38
38
  endpoint_name = "domains"
39
39
  filterset_class = DomainFilter
40
+ queryset_filtering_required_permission = "core.view_domain"
40
41
  DEFAULT_ACCESS_POLICY = {
41
42
  "statements": [
42
43
  {
@@ -15,7 +15,7 @@ from pulpcore.app.redis_connection import (
15
15
  get_async_redis_connection,
16
16
  get_redis_connection,
17
17
  )
18
- from pulpcore.app.settings import settings
18
+ from pulpcore.app.settings import settings # noqa: TID251 Unfixable in old dynaconf version.
19
19
  from pulpcore.responses import ArtifactResponse
20
20
 
21
21
  DEFAULT_EXPIRES_TTL = settings.CACHE_SETTINGS["EXPIRES_TTL"]
@@ -9,7 +9,7 @@ from base64 import b64encode
9
9
 
10
10
  import pytest
11
11
 
12
- from pulpcore.app import settings
12
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
13
13
  from pulpcore.client.pulpcore import ApiException
14
14
 
15
15
 
@@ -310,3 +310,41 @@ def test_special_domain_creation(domains_api_client, gen_object_with_cleanup, pu
310
310
  domain = gen_object_with_cleanup(domains_api_client, body, pulp_domain=random_name)
311
311
  assert "default/api/v3/" in domain.pulp_href
312
312
  assert random_name not in domain.pulp_href
313
+
314
+
315
+ @pytest.mark.parallel
316
+ def test_domain_list_queryset_scoping(pulpcore_bindings, gen_user, gen_object_with_cleanup):
317
+ """Test that domain list is scoped to domains the user can view."""
318
+ body = {
319
+ "name": str(uuid.uuid4()),
320
+ "storage_class": "pulpcore.app.models.storage.FileSystem",
321
+ "storage_settings": {"MEDIA_ROOT": ""},
322
+ }
323
+ domain = gen_object_with_cleanup(pulpcore_bindings.DomainsApi, body)
324
+ gen_object_with_cleanup(pulpcore_bindings.DomainsApi, {**body, "name": str(uuid.uuid4())})
325
+
326
+ # Authenticated users without view_domain see no domains
327
+ with gen_user():
328
+ assert pulpcore_bindings.DomainsApi.list().count == 0
329
+
330
+ # Object-level domain_viewer can see only that domain
331
+ with gen_user(object_roles=[("core.domain_viewer", domain.pulp_href)]):
332
+ domains = pulpcore_bindings.DomainsApi.list()
333
+ assert domains.count == 1
334
+ assert domains.results[0].pulp_href == domain.pulp_href
335
+
336
+ # Object-level domain_owner can see only that domain
337
+ with gen_user(object_roles=[("core.domain_owner", domain.pulp_href)]):
338
+ domains = pulpcore_bindings.DomainsApi.list()
339
+ assert domains.count == 1
340
+ assert domains.results[0].pulp_href == domain.pulp_href
341
+
342
+ # Domain creator sees domains they create (via creation_hooks), not others
343
+ creator = gen_user(model_roles=["core.domain_creator"])
344
+ with creator:
345
+ created = gen_object_with_cleanup(
346
+ pulpcore_bindings.DomainsApi, {**body, "name": str(uuid.uuid4())}
347
+ )
348
+ domains = pulpcore_bindings.DomainsApi.list()
349
+ assert domains.count == 1
350
+ assert domains.results[0].pulp_href == created.pulp_href
@@ -9,7 +9,7 @@ import uuid
9
9
 
10
10
  import pytest
11
11
 
12
- from pulpcore.app import settings
12
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
13
13
  from pulpcore.client.pulp_file import RepositorySyncURL
14
14
  from pulpcore.client.pulpcore.exceptions import ApiException
15
15
 
@@ -12,7 +12,7 @@ from pathlib import Path
12
12
 
13
13
  import pytest
14
14
 
15
- from pulpcore.app import settings
15
+ from pulpcore.app import settings # noqa: TID251 Unfixable in old dynaconf version.
16
16
  from pulpcore.client.pulp_file import RepositorySyncURL
17
17
  from pulpcore.client.pulpcore.exceptions import ApiException
18
18
 
@@ -0,0 +1,17 @@
1
+ import pytest
2
+ from rest_framework import serializers
3
+
4
+ from pulpcore.app.serializers.fields import relative_path_validator
5
+
6
+
7
+ @pytest.mark.parametrize(
8
+ ("path",),
9
+ [
10
+ pytest.param("/absolute/path", id="absolute"),
11
+ pytest.param("../sneaky/path", id="path_traversal"),
12
+ pytest.param("suspicious/../../sneaky/path", id="hidden_path_traversal"),
13
+ ],
14
+ )
15
+ def test_relative_path_validator_rejects(path):
16
+ with pytest.raises(serializers.ValidationError):
17
+ relative_path_validator(path)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.49.65
3
+ Version: 3.49.67
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Home-page: https://pulpproject.org
6
6
  Author: Pulp Team
@@ -502,6 +502,7 @@ pulpcore/tests/unit/roles/test_roles.py
502
502
  pulpcore/tests/unit/serializers/__init__.py
503
503
  pulpcore/tests/unit/serializers/test_base.py
504
504
  pulpcore/tests/unit/serializers/test_domain.py
505
+ pulpcore/tests/unit/serializers/test_fields.py
505
506
  pulpcore/tests/unit/serializers/test_pulpexport.py
506
507
  pulpcore/tests/unit/serializers/test_repository.py
507
508
  pulpcore/tests/unit/stages/__init__.py
@@ -105,7 +105,7 @@ ignore = [
105
105
  [tool.bumpversion]
106
106
  # This section is managed by the plugin template. Do not edit manually.
107
107
 
108
- current_version = "3.49.65"
108
+ current_version = "3.49.67"
109
109
  commit = false
110
110
  tag = false
111
111
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
@@ -161,7 +161,6 @@ replace = "version = \"{new_version}\""
161
161
  [[tool.bumpversion.files]]
162
162
  filename = "./setup.py"
163
163
 
164
-
165
164
  [tool.ruff]
166
165
  # This section is managed by the plugin template. Do not edit manually.
167
166
  line-length = 100
@@ -173,6 +172,7 @@ extend-exclude = [
173
172
 
174
173
  [tool.ruff.lint]
175
174
  # This section is managed by the plugin template. Do not edit manually.
175
+ select = ["E4", "E7", "E9", "F"]
176
176
  extend-select = [
177
177
  "I",
178
178
  "INT",
@@ -183,6 +183,7 @@ extend-select = [
183
183
  [tool.ruff.lint.flake8-tidy-imports.banned-api]
184
184
  # This section is managed by the plugin template. Do not edit manually.
185
185
  "distutils".msg = "The 'distutils' module has been deprecated since Python 3.9."
186
+ "pulpcore.app.settings".msg = "Always import 'settings' from 'django.conf' instead."
186
187
 
187
188
  [tool.ruff.lint.isort]
188
189
  # This section is managed by the plugin template. Do not edit manually.
@@ -8,7 +8,7 @@ with open("requirements.txt") as requirements:
8
8
 
9
9
  setup(
10
10
  name="pulpcore",
11
- version="3.49.65",
11
+ version="3.49.67",
12
12
  description="Pulp Django Application and Related Modules",
13
13
  long_description=long_description,
14
14
  long_description_content_type="text/markdown",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes