pulpcore 3.77.0__tar.gz → 3.78.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.

Potentially problematic release.


This version of pulpcore might be problematic. Click here for more details.

Files changed (553) hide show
  1. {pulpcore-3.77.0 → pulpcore-3.78.0}/CHANGES.md +105 -0
  2. {pulpcore-3.77.0 → pulpcore-3.78.0}/PKG-INFO +8 -6
  3. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/apps.py +1 -1
  6. pulpcore-3.78.0/pulpcore/app/management/commands/clean-up-progress-reports.py +52 -0
  7. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/task.py +7 -0
  8. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/user.py +65 -19
  9. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/settings.py +4 -3
  10. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/util.py +4 -3
  11. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/cache/cache.py +8 -3
  12. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/content/__init__.py +8 -0
  13. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/content/entrypoint.py +7 -1
  14. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/content/handler.py +57 -40
  15. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +18 -2
  16. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +7 -7
  17. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/performance/test_performance.py +8 -10
  18. pulpcore-3.78.0/pulpcore/tests/unit/models/test_task.py +44 -0
  19. pulpcore-3.78.0/pulpcore/tests/unit/serializers/test_user.py +86 -0
  20. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_viewsets.py +1 -1
  21. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/PKG-INFO +8 -6
  22. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/SOURCES.txt +3 -0
  23. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/requires.txt +8 -5
  24. {pulpcore-3.77.0 → pulpcore-3.78.0}/pyproject.toml +8 -7
  25. {pulpcore-3.77.0 → pulpcore-3.78.0}/CODE_OF_CONDUCT.md +0 -0
  26. {pulpcore-3.77.0 → pulpcore-3.78.0}/COMMITMENT +0 -0
  27. {pulpcore-3.77.0 → pulpcore-3.78.0}/CONTRIBUTING.md +0 -0
  28. {pulpcore-3.77.0 → pulpcore-3.78.0}/COPYRIGHT +0 -0
  29. {pulpcore-3.77.0 → pulpcore-3.78.0}/LICENSE +0 -0
  30. {pulpcore-3.77.0 → pulpcore-3.78.0}/MANIFEST.in +0 -0
  31. {pulpcore-3.77.0 → pulpcore-3.78.0}/README.md +0 -0
  32. {pulpcore-3.77.0 → pulpcore-3.78.0}/ci_requirements.txt +0 -0
  33. {pulpcore-3.77.0 → pulpcore-3.78.0}/functest_requirements.txt +0 -0
  34. {pulpcore-3.77.0 → pulpcore-3.78.0}/manage.py +0 -0
  35. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/__init__.py +0 -0
  36. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  37. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  38. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/migrations/__init__.py +0 -0
  39. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/models.py +0 -0
  40. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/serializers.py +0 -0
  41. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/utils.py +0 -0
  42. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/app/viewsets.py +0 -0
  43. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/pytest_plugin.py +0 -0
  44. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/__init__.py +0 -0
  45. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/__init__.py +0 -0
  46. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  47. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  48. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  49. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  50. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  51. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  52. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  53. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  54. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  55. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  56. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  57. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  58. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  59. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  60. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  61. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  62. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  63. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  64. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  65. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  66. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  67. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  68. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  69. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  70. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  71. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  72. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  73. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  74. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  75. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  76. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  77. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  78. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/conftest.py +0 -0
  79. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/functional/constants.py +0 -0
  80. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/unit/__init__.py +0 -0
  81. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_certguard/tests/unit/test_models.py +0 -0
  82. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/__init__.py +0 -0
  83. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0001_initial.py +0 -0
  84. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -0
  85. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0002_file_related_names.py +0 -0
  86. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0003_auto_20191014_1721.py +0 -0
  87. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0004_filefilesystemexporter.py +0 -0
  88. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0005_filerepository.py +0 -0
  89. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0006_delete_filefilesystemexporter.py +0 -0
  90. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0007_filefilesystemexporter.py +0 -0
  91. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0008_add_manifest_field.py +0 -0
  92. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0009_move_data_to_new_master_distribution_model.py +0 -0
  93. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0010_auto_publish.py +0 -0
  94. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0011_fix_auto_publish.py +0 -0
  95. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0012_delete_filefilesystemexporter.py +0 -0
  96. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0013_file_acs.py +0 -0
  97. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0014_new_rbac_permissions.py +0 -0
  98. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0015_allow_null_manifest.py +0 -0
  99. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0016_add_domain.py +0 -0
  100. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  101. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/migrations/__init__.py +0 -0
  102. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/modelresource.py +0 -0
  103. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/models.py +0 -0
  104. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/replica.py +0 -0
  105. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/serializers.py +0 -0
  106. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/tasks/__init__.py +0 -0
  107. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/tasks/publishing.py +0 -0
  108. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/tasks/synchronizing.py +0 -0
  109. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/app/viewsets.py +0 -0
  110. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/manifest.py +0 -0
  111. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/pytest_plugin.py +0 -0
  112. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/__init__.py +0 -0
  113. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/__init__.py +0 -0
  114. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/__init__.py +0 -0
  115. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_acs.py +0 -0
  116. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  117. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  118. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_content_labels.py +0 -0
  119. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_crud_content_unit.py +0 -0
  120. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  121. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_domains.py +0 -0
  122. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_download_policies.py +0 -0
  123. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  124. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_labels.py +0 -0
  125. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  126. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_publish.py +0 -0
  127. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
  128. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  129. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  130. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/functional/api/test_sync.py +0 -0
  131. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/unit/__init__.py +0 -0
  132. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/unit/test_safe_paths.py +0 -0
  133. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulp_file/tests/unit/test_serializers.py +0 -0
  134. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/__init__.py +0 -0
  135. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/__init__.py +0 -0
  136. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/access_policy.py +0 -0
  137. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/authentication.py +0 -0
  138. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/checks.py +0 -0
  139. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/entrypoint.py +0 -0
  140. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/files.py +0 -0
  141. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/global_access_conditions.py +0 -0
  142. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/importexport.py +0 -0
  143. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/loggers.py +0 -0
  144. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/manage.py +0 -0
  145. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/__init__.py +0 -0
  146. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/__init__.py +0 -0
  147. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  148. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  149. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  150. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  151. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  152. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  153. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/migrationstat.py +0 -0
  154. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/openapi.py +0 -0
  155. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/rebasemigrations.py +0 -0
  156. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  157. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  158. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/repository-size.py +0 -0
  159. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  160. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  161. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0001_initial.py +0 -0
  162. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -0
  163. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
  164. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
  165. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
  166. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
  167. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
  168. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
  169. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
  170. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
  171. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
  172. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0011_relative_path.py +0 -0
  173. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
  174. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
  175. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
  176. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
  177. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
  178. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
  179. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
  180. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
  181. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
  182. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
  183. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
  184. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
  185. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
  186. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
  187. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0026_task_group.py +0 -0
  188. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0027_export_backend.py +0 -0
  189. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
  190. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0029_export_delete.py +0 -0
  191. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
  192. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
  193. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
  194. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
  195. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
  196. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
  197. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
  198. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
  199. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
  200. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
  201. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
  202. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
  203. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
  204. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
  205. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
  206. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
  207. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
  208. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
  209. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
  210. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
  211. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
  212. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
  213. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
  214. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
  215. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
  216. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0055_label.py +0 -0
  217. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
  218. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
  219. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
  220. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
  221. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
  222. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
  223. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
  224. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
  225. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
  226. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
  227. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
  228. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
  229. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
  230. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
  231. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
  232. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
  233. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
  234. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
  235. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
  236. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0074_acs.py +0 -0
  237. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
  238. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
  239. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
  240. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
  241. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
  242. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
  243. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
  244. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
  245. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
  246. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
  247. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
  248. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
  249. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
  250. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
  251. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
  252. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
  253. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0091_systemid.py +0 -0
  254. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  255. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  256. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  257. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  258. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  259. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  260. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  261. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  262. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  263. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  264. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  265. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  266. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  267. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  268. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  269. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  270. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  271. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  272. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  273. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  274. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  275. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  276. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  277. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  278. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  279. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  280. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
  281. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
  282. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
  283. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
  284. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
  285. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
  286. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0124_task_deferred_task_immediate.py +0 -0
  287. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0125_openpgpdistribution_openpgpkeyring_openpgppublickey_and_more.py +0 -0
  288. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0126_remoteartifact_failed_at.py +0 -0
  289. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0127_remove_upstreampulp_pulp_label_select.py +0 -0
  290. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0128_domain_pulp_labels.py +0 -0
  291. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0129_content_pulp_labels.py +0 -0
  292. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0130_upstreampulp_policy.py +0 -0
  293. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0131_distribution_checkpoint_publication_checkpoint.py +0 -0
  294. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/0132_alter_content_options.py +0 -0
  295. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/migrations/__init__.py +0 -0
  296. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/mime_types.py +0 -0
  297. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/modelresource.py +0 -0
  298. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/__init__.py +0 -0
  299. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/access_policy.py +0 -0
  300. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/acs.py +0 -0
  301. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/analytics.py +0 -0
  302. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/base.py +0 -0
  303. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/content.py +0 -0
  304. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/domain.py +0 -0
  305. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/exporter.py +0 -0
  306. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/fields.py +0 -0
  307. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/generic.py +0 -0
  308. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/importer.py +0 -0
  309. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/openpgp.py +0 -0
  310. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/progress.py +0 -0
  311. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/publication.py +0 -0
  312. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/replica.py +0 -0
  313. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/repository.py +0 -0
  314. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/role.py +0 -0
  315. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/status.py +0 -0
  316. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/storage.py +0 -0
  317. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/models/upload.py +0 -0
  318. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/openpgp.py +0 -0
  319. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/protobuf/__init__.py +0 -0
  320. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  321. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/pulp_hashlib.py +0 -0
  322. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  323. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/redis_connection.py +0 -0
  324. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/replica.py +0 -0
  325. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/response.py +0 -0
  326. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/role_util.py +0 -0
  327. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/__init__.py +0 -0
  328. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/access_policy.py +0 -0
  329. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/acs.py +0 -0
  330. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/base.py +0 -0
  331. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/content.py +0 -0
  332. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/domain.py +0 -0
  333. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/exporter.py +0 -0
  334. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/fields.py +0 -0
  335. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/importer.py +0 -0
  336. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/openpgp.py +0 -0
  337. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/orphans.py +0 -0
  338. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/progress.py +0 -0
  339. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/publication.py +0 -0
  340. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/purge.py +0 -0
  341. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/reclaim.py +0 -0
  342. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/repair.py +0 -0
  343. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/replica.py +0 -0
  344. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/repository.py +0 -0
  345. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/status.py +0 -0
  346. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/task.py +0 -0
  347. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/serializers/upload.py +0 -0
  348. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/__init__.py +0 -0
  349. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/analytics.py +0 -0
  350. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/base.py +0 -0
  351. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/export.py +0 -0
  352. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/importer.py +0 -0
  353. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/migrate.py +0 -0
  354. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/orphan.py +0 -0
  355. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/purge.py +0 -0
  356. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/reclaim_space.py +0 -0
  357. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/replica.py +0 -0
  358. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/repository.py +0 -0
  359. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/telemetry.py +0 -0
  360. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/test.py +0 -0
  361. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/tasks/upload.py +0 -0
  362. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/templates/rest_framework/api.html +0 -0
  363. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/templatetags/__init__.py +0 -0
  364. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  365. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/urls.py +0 -0
  366. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/views/__init__.py +0 -0
  367. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/views/importer.py +0 -0
  368. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/views/orphans.py +0 -0
  369. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/views/repair.py +0 -0
  370. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/views/status.py +0 -0
  371. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/__init__.py +0 -0
  372. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/access_policy.py +0 -0
  373. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/acs.py +0 -0
  374. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/base.py +0 -0
  375. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/content.py +0 -0
  376. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/custom_filters.py +0 -0
  377. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/domain.py +0 -0
  378. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/exporter.py +0 -0
  379. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/importer.py +0 -0
  380. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/openpgp.py +0 -0
  381. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/orphans.py +0 -0
  382. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/publication.py +0 -0
  383. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/reclaim.py +0 -0
  384. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/replica.py +0 -0
  385. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/repository.py +0 -0
  386. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/task.py +0 -0
  387. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/upload.py +0 -0
  388. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/viewsets/user.py +0 -0
  389. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/app/wsgi.py +0 -0
  390. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/backends.py +0 -0
  391. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/cache/__init__.py +0 -0
  392. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/constants.py +0 -0
  393. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/content/authentication.py +0 -0
  394. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/content/instrumentation.py +0 -0
  395. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/download/__init__.py +0 -0
  396. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/download/base.py +0 -0
  397. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/download/factory.py +0 -0
  398. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/download/file.py +0 -0
  399. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/download/http.py +0 -0
  400. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/exceptions/__init__.py +0 -0
  401. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/exceptions/base.py +0 -0
  402. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/exceptions/plugin.py +0 -0
  403. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/exceptions/validation.py +0 -0
  404. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/filters.py +0 -0
  405. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/metrics.py +0 -0
  406. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/middleware.py +0 -0
  407. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/migrations.py +0 -0
  408. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/openapi/__init__.py +0 -0
  409. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/openapi/hooks.py +0 -0
  410. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/__init__.py +0 -0
  411. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/access_policy.py +0 -0
  412. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/actions.py +0 -0
  413. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/apps.py +0 -0
  414. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/authentication/__init__.py +0 -0
  415. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/cache/__init__.py +0 -0
  416. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/constants.py +0 -0
  417. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/content.py +0 -0
  418. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/download/__init__.py +0 -0
  419. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/exceptions.py +0 -0
  420. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/files.py +0 -0
  421. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/importexport.py +0 -0
  422. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/migrations.py +0 -0
  423. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/modelresources.py +0 -0
  424. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/models/__init__.py +0 -0
  425. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/models/role.py +0 -0
  426. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/publication_utils.py +0 -0
  427. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/pulp_hashlib.py +0 -0
  428. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/replica.py +0 -0
  429. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/repo_version_utils.py +0 -0
  430. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/responses.py +0 -0
  431. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/serializers/__init__.py +0 -0
  432. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/serializers/content.py +0 -0
  433. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/__init__.py +0 -0
  434. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/api.py +0 -0
  435. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/artifact_stages.py +0 -0
  436. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/content_stages.py +0 -0
  437. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/declarative_version.py +0 -0
  438. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/stages/models.py +0 -0
  439. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/storage.py +0 -0
  440. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/sync.py +0 -0
  441. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/tasking.py +0 -0
  442. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/util.py +0 -0
  443. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/viewsets/__init__.py +0 -0
  444. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/plugin/viewsets/content.py +0 -0
  445. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/pytest_plugin.py +0 -0
  446. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/responses.py +0 -0
  447. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/__init__.py +0 -0
  448. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/_util.py +0 -0
  449. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/entrypoint.py +0 -0
  450. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/kafka.py +0 -0
  451. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/storage.py +0 -0
  452. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/tasks.py +0 -0
  453. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tasking/worker.py +0 -0
  454. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/__init__.py +0 -0
  455. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/__init__.py +0 -0
  456. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/__init__.py +0 -0
  457. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  458. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  459. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
  460. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  461. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_auth.py +0 -0
  462. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  463. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  464. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
  465. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_filter.py +0 -0
  466. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_login.py +0 -0
  467. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  468. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_openpgp.py +0 -0
  469. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_replication.py +0 -0
  470. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_repos.py +0 -0
  471. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_role.py +0 -0
  472. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  473. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  474. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  475. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_status.py +0 -0
  476. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
  477. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  478. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_upload.py +0 -0
  479. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  480. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/test_workers.py +0 -0
  481. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  482. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +0 -0
  483. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  484. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  485. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  486. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  487. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  488. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  489. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  490. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +0 -0
  491. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  492. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
  493. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  494. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  495. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
  496. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  497. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
  498. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  499. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  500. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  501. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  502. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  503. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/assets/__init__.py +0 -0
  504. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  505. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/functional/utils.py +0 -0
  506. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/performance/__init__.py +0 -0
  507. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/__init__.py +0 -0
  508. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/conftest.py +0 -0
  509. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/content/__init__.py +0 -0
  510. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/content/test_handler.py +0 -0
  511. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  512. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/download/__init__.py +0 -0
  513. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  514. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  515. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/metrics/__init__.py +0 -0
  516. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/metrics/conftest.py +0 -0
  517. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/metrics/test_aiohttp_instrumentation.py +0 -0
  518. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/metrics/test_django_instrumentation.py +0 -0
  519. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/migration/__init__.py +0 -0
  520. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
  521. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/models/__init__.py +0 -0
  522. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/models/test_base.py +0 -0
  523. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/models/test_content.py +0 -0
  524. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/models/test_remote.py +0 -0
  525. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/models/test_repository.py +0 -0
  526. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/roles/__init__.py +0 -0
  527. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  528. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  529. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  530. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
  531. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_fields.py +0 -0
  532. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_orphans_cleanup.py +0 -0
  533. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  534. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  535. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/stages/__init__.py +0 -0
  536. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  537. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  538. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_cache.py +0 -0
  539. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  540. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_content_guard.py +0 -0
  541. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_files.py +0 -0
  542. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_import_checks.py +0 -0
  543. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  544. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_settings.py +0 -0
  545. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/test_util.py +0 -0
  546. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  547. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  548. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/dependency_links.txt +0 -0
  549. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/entry_points.txt +0 -0
  550. {pulpcore-3.77.0 → pulpcore-3.78.0}/pulpcore.egg-info/top_level.txt +0 -0
  551. {pulpcore-3.77.0 → pulpcore-3.78.0}/setup.cfg +0 -0
  552. {pulpcore-3.77.0 → pulpcore-3.78.0}/test_requirements.txt +0 -0
  553. {pulpcore-3.77.0 → pulpcore-3.78.0}/unittest_requirements.txt +0 -0
@@ -8,6 +8,68 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.78.0 (2025-05-13) {: #3.78.0 }
12
+
13
+ ### REST API {: #3.78.0-rest-api }
14
+
15
+ #### Features {: #3.78.0-rest-api-feature }
16
+
17
+ - Added the optional feature to enable uvloop library as a replacement of asyncio eventloop.
18
+ The feature is activated through the UVLOOP_ENABLED feature flag settings and the 'uvloop' optional dependency.
19
+ [#6021](https://github.com/pulp/pulpcore/issues/6021)
20
+
21
+ #### Bugfixes {: #3.78.0-rest-api-bugfix }
22
+
23
+ - Taught tasks to update the state of associated progress-reports when canceled/failed.
24
+
25
+ Added a management-task, `clean-up-progress-reports`, to clean up existing reports.
26
+ [#3609](https://github.com/pulp/pulpcore/issues/3609)
27
+ - Fixed a server error when listing user roles.
28
+ [#6330](https://github.com/pulp/pulpcore/issues/6330)
29
+ - On-demand or pull-through content is now immediately cached upon first request.
30
+ [#6540](https://github.com/pulp/pulpcore/issues/6540)
31
+
32
+ #### Misc {: #3.78.0-rest-api-misc }
33
+
34
+ -
35
+
36
+ ### Plugin API {: #3.78.0-plugin-api }
37
+
38
+ No significant changes.
39
+
40
+ ### Pulp File {: #3.78.0-pulp-file }
41
+
42
+ No significant changes.
43
+
44
+ ### Pulp Cert Guard {: #3.78.0-pulp-cert-guard }
45
+
46
+ No significant changes.
47
+
48
+ ---
49
+
50
+ ## 3.77.1 (2025-05-08) {: #3.77.1 }
51
+
52
+ ### REST API {: #3.77.1-rest-api }
53
+
54
+ #### Bugfixes {: #3.77.1-rest-api-bugfix }
55
+
56
+ - On-demand or pull-through content is now immediately cached upon first request.
57
+ [#6540](https://github.com/pulp/pulpcore/issues/6540)
58
+
59
+ ### Plugin API {: #3.77.1-plugin-api }
60
+
61
+ No significant changes.
62
+
63
+ ### Pulp File {: #3.77.1-pulp-file }
64
+
65
+ No significant changes.
66
+
67
+ ### Pulp Cert Guard {: #3.77.1-pulp-cert-guard }
68
+
69
+ No significant changes.
70
+
71
+ ---
72
+
11
73
  ## 3.77.0 (2025-05-06) {: #3.77.0 }
12
74
 
13
75
  ### REST API {: #3.77.0-rest-api }
@@ -347,6 +409,26 @@ No significant changes.
347
409
 
348
410
  ---
349
411
 
412
+ ## 3.73.9 (2025-05-06) {: #3.73.9 }
413
+
414
+ ### REST API {: #3.73.9-rest-api }
415
+
416
+ No significant changes.
417
+
418
+ ### Plugin API {: #3.73.9-plugin-api }
419
+
420
+ No significant changes.
421
+
422
+ ### Pulp File {: #3.73.9-pulp-file }
423
+
424
+ No significant changes.
425
+
426
+ ### Pulp Cert Guard {: #3.73.9-pulp-cert-guard }
427
+
428
+ No significant changes.
429
+
430
+ ---
431
+
350
432
  ## 3.73.8 (2025-04-24) {: #3.73.8 }
351
433
 
352
434
  ### REST API {: #3.73.8-rest-api }
@@ -2478,6 +2560,29 @@ No significant changes.
2478
2560
 
2479
2561
  ---
2480
2562
 
2563
+ ## 3.49.40 (2025-05-06) {: #3.49.40 }
2564
+
2565
+ ### REST API {: #3.49.40-rest-api }
2566
+
2567
+ #### Bugfixes {: #3.49.40-rest-api-bugfix }
2568
+
2569
+ - Fixed to not use the OpenTelemetryMiddleware when PULP_OTEL_ENABLED is not set.
2570
+ [#6529](https://github.com/pulp/pulpcore/issues/6529)
2571
+
2572
+ ### Plugin API {: #3.49.40-plugin-api }
2573
+
2574
+ No significant changes.
2575
+
2576
+ ### Pulp File {: #3.49.40-pulp-file }
2577
+
2578
+ No significant changes.
2579
+
2580
+ ### Pulp Cert Guard {: #3.49.40-pulp-cert-guard }
2581
+
2582
+ No significant changes.
2583
+
2584
+ ---
2585
+
2481
2586
  ## 3.49.39 (2025-04-24) {: #3.49.39 }
2482
2587
 
2483
2588
  ### REST API {: #3.49.39-rest-api }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.77.0
3
+ Version: 3.78.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.12
21
21
  Requires-Python: >=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: aiodns<=3.3.0,>=3.0
24
+ Requires-Dist: aiodns<=3.4.0,>=3.0
25
25
  Requires-Dist: aiofiles<24.2.0,>=22.1
26
26
  Requires-Dist: aiohttp<3.12,>=3.8.1
27
27
  Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
@@ -46,13 +46,13 @@ Requires-Dist: jinja2<=3.1.6,>=3.1
46
46
  Requires-Dist: json_stream<2.4,>=2.3.2
47
47
  Requires-Dist: jq<1.9.0,>=1.6.0
48
48
  Requires-Dist: PyOpenSSL<26.0
49
- Requires-Dist: opentelemetry-api<1.33,>=1.27.0
50
- Requires-Dist: opentelemetry-sdk<1.33,>=1.27.0
51
- Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.33,>=1.27.0
49
+ Requires-Dist: opentelemetry-api<1.34,>=1.27.0
50
+ Requires-Dist: opentelemetry-sdk<1.34,>=1.27.0
51
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.34,>=1.27.0
52
52
  Requires-Dist: protobuf<6.0,>=4.21.1
53
53
  Requires-Dist: pulp-glue<0.33,>=0.18.0
54
54
  Requires-Dist: pygtrie<=2.5.0,>=2.5
55
- Requires-Dist: psycopg[binary]<=3.2.7,>=3.1.8
55
+ Requires-Dist: psycopg[binary]<=3.2.8,>=3.1.8
56
56
  Requires-Dist: pyparsing<=3.2.3,>=3.1.0
57
57
  Requires-Dist: python-gnupg<=0.5.4,>=0.5
58
58
  Requires-Dist: PyYAML<=6.0.2,>=5.1.1
@@ -78,6 +78,8 @@ Requires-Dist: confluent-kafka<2.10.0,>=2.4.0; extra == "kafka"
78
78
  Provides-Extra: diagnostics
79
79
  Requires-Dist: pyinstrument~=5.0; extra == "diagnostics"
80
80
  Requires-Dist: memray~=1.17; extra == "diagnostics"
81
+ Provides-Extra: uvloop
82
+ Requires-Dist: uvloop<0.22,>=0.20; extra == "uvloop"
81
83
  Dynamic: license-file
82
84
 
83
85
 
@@ -6,6 +6,6 @@ class PulpCertGuardPluginAppConfig(PulpPluginAppConfig):
6
6
 
7
7
  name = "pulp_certguard.app"
8
8
  label = "certguard"
9
- version = "3.77.0"
9
+ version = "3.78.0"
10
10
  python_package_name = "pulpcore"
11
11
  domain_compatible = True
@@ -8,6 +8,6 @@ class PulpFilePluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_file.app"
10
10
  label = "file"
11
- version = "3.77.0"
11
+ version = "3.78.0"
12
12
  python_package_name = "pulpcore"
13
13
  domain_compatible = True
@@ -247,7 +247,7 @@ class PulpAppConfig(PulpPluginAppConfig):
247
247
  label = "core"
248
248
 
249
249
  # The version of this app
250
- version = "3.77.0"
250
+ version = "3.78.0"
251
251
 
252
252
  # The python package name providing this app
253
253
  python_package_name = "pulpcore"
@@ -0,0 +1,52 @@
1
+ from gettext import gettext as _
2
+
3
+ from django.core.management import BaseCommand
4
+ from django.db.models import F
5
+
6
+ from pulpcore.app.models import ProgressReport
7
+ from pulpcore.constants import TASK_STATES
8
+
9
+
10
+ class Command(BaseCommand):
11
+ """
12
+ Django management command for repairing progress-reports in inconsistent states.
13
+ """
14
+
15
+ help = (
16
+ "Repairs issue #3609. Long-running tasks that utilize ProgressReports, which "
17
+ "fail or are cancelled, can leave their associated reports in state 'running'. "
18
+ "This script finds the ProgressReports marked as 'running', whose owning task "
19
+ "is in either 'cancelled or 'failed', and moves the state of the ProgressReport "
20
+ "to match that of the task."
21
+ )
22
+
23
+ def add_arguments(self, parser):
24
+ """Set up arguments."""
25
+ parser.add_argument(
26
+ "--dry-run",
27
+ action="store_true",
28
+ help=_(
29
+ "Don't modify anything, just collect results on how many ProgressReports "
30
+ "are impacted."
31
+ ),
32
+ )
33
+
34
+ def handle(self, *args, **options):
35
+ dry_run = options["dry_run"]
36
+ for state in [TASK_STATES.CANCELED, TASK_STATES.FAILED]:
37
+ if dry_run:
38
+ to_be_updated = ProgressReport.objects.filter(
39
+ task__state__ne=F("state"), state=TASK_STATES.RUNNING, task__state=state
40
+ ).count()
41
+ print(
42
+ _("Number of ProgressReports in inconsistent state for {} tasks: {}").format(
43
+ state, to_be_updated
44
+ )
45
+ )
46
+ else:
47
+ updated = ProgressReport.objects.filter(
48
+ task__state__ne=F("state"), state=TASK_STATES.RUNNING, task__state=state
49
+ ).update(state=state)
50
+ print(
51
+ _("Number of ProgressReports updated for {} tasks: {}").format(state, updated)
52
+ )
@@ -204,6 +204,10 @@ class Task(BaseModel, AutoAddObjPermsMixin):
204
204
  )
205
205
  )
206
206
 
207
+ def _cleanup_progress_reports(self, state):
208
+ """Find any running progress-reports and set their states to the specified end-state."""
209
+ self.progress_reports.filter(state=TASK_STATES.RUNNING).update(state=state)
210
+
207
211
  def set_completed(self):
208
212
  """
209
213
  Set this Task to the completed state, save it, and log output in warning cases.
@@ -232,6 +236,7 @@ class Task(BaseModel, AutoAddObjPermsMixin):
232
236
  self.pk, self.state
233
237
  )
234
238
  )
239
+ self._cleanup_progress_reports(TASK_STATES.COMPLETED)
235
240
 
236
241
  def set_failed(self, exc, tb):
237
242
  """
@@ -264,6 +269,7 @@ class Task(BaseModel, AutoAddObjPermsMixin):
264
269
  self.pk, self.state
265
270
  )
266
271
  )
272
+ self._cleanup_progress_reports(TASK_STATES.FAILED)
267
273
 
268
274
  def set_canceling(self):
269
275
  """
@@ -317,6 +323,7 @@ class Task(BaseModel, AutoAddObjPermsMixin):
317
323
  self.pk, self.state
318
324
  )
319
325
  )
326
+ self._cleanup_progress_reports(final_state)
320
327
 
321
328
  def unblock(self):
322
329
  # This should be safe to be called without holding the lock.
@@ -24,8 +24,10 @@ from pulpcore.app.serializers import (
24
24
  PRNField,
25
25
  )
26
26
  from pulpcore.app.util import (
27
- get_viewset_for_model,
28
27
  get_request_without_query_params,
28
+ get_url,
29
+ get_prn,
30
+ resolve_prn,
29
31
  )
30
32
 
31
33
  User = get_user_model()
@@ -60,27 +62,42 @@ class PermissionField(serializers.RelatedField):
60
62
  class ContentObjectField(serializers.CharField):
61
63
  """Content object field"""
62
64
 
63
- def to_representation(self, obj):
64
- content_object = getattr(obj, "content_object", None)
65
- if content_object:
66
- viewset = get_viewset_for_model(obj.content_object)
67
-
65
+ def to_representation(self, value):
66
+ if value is None:
67
+ return None
68
+ else:
68
69
  request = get_request_without_query_params(self.context)
70
+ return get_url(value, request=request)
69
71
 
70
- serializer = viewset.serializer_class(obj.content_object, context={"request": request})
71
- return serializer.data.get("pulp_href")
72
-
73
- def to_internal_value(self, data):
72
+ def to_internal_value(self, value):
74
73
  # ... circular import ...
75
74
  from pulpcore.app.viewsets.base import NamedModelViewSet
76
75
 
77
- if data is None:
78
- return {"content_object": None}
79
- try:
80
- obj = NamedModelViewSet.get_resource(data)
81
- except serializers.ValidationError:
82
- raise serializers.ValidationError(_("Invalid value: {}.").format(data))
83
- return {"content_object": obj}
76
+ if value is None:
77
+ return None
78
+ else:
79
+ try:
80
+ obj = NamedModelViewSet.get_resource(value)
81
+ except serializers.ValidationError:
82
+ raise serializers.ValidationError(_("Invalid value: {}.").format(value))
83
+ return obj
84
+
85
+
86
+ class ContentObjectPRNField(serializers.CharField):
87
+ """Content object PRN field"""
88
+
89
+ def to_representation(self, value):
90
+ if value is None:
91
+ return None
92
+ else:
93
+ return get_prn(value)
94
+
95
+ def to_internal_value(self, value):
96
+ if value is None:
97
+ return None
98
+ else:
99
+ model, pk = resolve_prn(value)
100
+ return model.objects.get(pk=pk)
84
101
 
85
102
 
86
103
  class UserGroupSerializer(serializers.ModelSerializer):
@@ -247,6 +264,13 @@ class ValidateRoleMixin:
247
264
  and checks if the user/group already has the role. Does not set any value
248
265
  in data or return anything.
249
266
  """
267
+ if "content_object" not in data:
268
+ raise serializers.ValidationError(
269
+ _(
270
+ "Either 'content_object' or 'content_object_prn' needs to be specified."
271
+ " Use 'null' for global or domain level access."
272
+ )
273
+ )
250
274
  natural_key_args = {
251
275
  f"{role_type}_id": data[role_type].pk,
252
276
  "role_id": data["role"].pk,
@@ -308,8 +332,18 @@ class UserRoleSerializer(ValidateRoleMixin, ModelSerializer, NestedHyperlinkedMo
308
332
  "pulp_href of the object for which role permissions should be asserted. "
309
333
  "If set to 'null', permissions will act on either domain or model-level."
310
334
  ),
311
- source="*",
312
335
  allow_null=True,
336
+ required=False,
337
+ )
338
+
339
+ content_object_prn = ContentObjectPRNField(
340
+ help_text=_(
341
+ "prn of the object for which role permissions should be asserted. "
342
+ "If set to 'null', permissions will act on either domain or model-level."
343
+ ),
344
+ source="content_object",
345
+ allow_null=True,
346
+ required=False,
313
347
  )
314
348
 
315
349
  domain = RelatedField(
@@ -343,6 +377,7 @@ class UserRoleSerializer(ValidateRoleMixin, ModelSerializer, NestedHyperlinkedMo
343
377
  fields = ModelSerializer.Meta.fields + (
344
378
  "role",
345
379
  "content_object",
380
+ "content_object_prn",
346
381
  "description",
347
382
  "permissions",
348
383
  "domain",
@@ -366,8 +401,18 @@ class GroupRoleSerializer(ValidateRoleMixin, ModelSerializer, NestedHyperlinkedM
366
401
  "pulp_href of the object for which role permissions should be asserted. "
367
402
  "If set to 'null', permissions will act on the model-level."
368
403
  ),
369
- source="*",
370
404
  allow_null=True,
405
+ required=False,
406
+ )
407
+
408
+ content_object_prn = ContentObjectPRNField(
409
+ help_text=_(
410
+ "prn of the object for which role permissions should be asserted. "
411
+ "If set to 'null', permissions will act on either domain or model-level."
412
+ ),
413
+ source="content_object",
414
+ allow_null=True,
415
+ required=False,
371
416
  )
372
417
 
373
418
  domain = RelatedField(
@@ -403,6 +448,7 @@ class GroupRoleSerializer(ValidateRoleMixin, ModelSerializer, NestedHyperlinkedM
403
448
  fields = ModelSerializer.Meta.fields + (
404
449
  "role",
405
450
  "content_object",
451
+ "content_object_prn",
406
452
  "description",
407
453
  "permissions",
408
454
  "domain",
@@ -342,9 +342,7 @@ CACHE_SETTINGS = {
342
342
  "EXPIRES_TTL": 600, # 10 minutes
343
343
  }
344
344
 
345
- # The time a RemoteArtifact will be ignored after failure.
346
- # In on-demand, if a fetching content from a remote failed due to corrupt data,
347
- # the corresponding RemoteArtifact will be ignored for that time (seconds).
345
+ # The time in seconds a RemoteArtifact will be ignored after failure.
348
346
  REMOTE_CONTENT_FETCH_FAILURE_COOLDOWN = 5 * 60 # 5 minutes
349
347
 
350
348
  SPECTACULAR_SETTINGS = {
@@ -425,6 +423,9 @@ KAFKA_SASL_PASSWORD = None
425
423
  # opentelemetry settings
426
424
  OTEL_ENABLED = False
427
425
 
426
+ # Replaces asyncio event loop with uvloop
427
+ UVLOOP_ENABLED = False
428
+
428
429
  # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py)
429
430
  # Read more at https://www.dynaconf.com/django/
430
431
 
@@ -66,18 +66,19 @@ def get_url(model, domain=None, request=None):
66
66
  str: The path component of the resource url
67
67
  """
68
68
  kwargs = {}
69
- view_action = "list"
70
69
  if settings.DOMAIN_ENABLED:
71
70
  kwargs["pulp_domain"] = "default"
72
- if not domain and hasattr(model, "pulp_domain") and isinstance(model, model._meta.model):
71
+ if not domain and hasattr(model, "pulp_domain") and isinstance(model, Model):
73
72
  kwargs["pulp_domain"] = model.pulp_domain.name
74
73
  elif isinstance(domain, models.Domain):
75
74
  kwargs["pulp_domain"] = domain.name
76
75
  elif isinstance(domain, str):
77
76
  kwargs["pulp_domain"] = domain
78
- if isinstance(model, model._meta.model):
77
+ if isinstance(model, Model):
79
78
  view_action = "detail"
80
79
  kwargs["pk"] = model.pk
80
+ else:
81
+ view_action = "list"
81
82
 
82
83
  return reverse(get_view_name_for_model(model, view_action), kwargs=kwargs, request=request)
83
84
 
@@ -8,7 +8,7 @@ from django.http import HttpResponseRedirect, HttpResponse, FileResponse as ApiF
8
8
 
9
9
  from rest_framework.request import Request as ApiRequest
10
10
 
11
- from aiohttp.web import FileResponse, Response, HTTPSuccessful, Request
11
+ from aiohttp.web import FileResponse, Response, HTTPSuccessful, Request, StreamResponse
12
12
  from aiohttp.web_exceptions import HTTPFound
13
13
 
14
14
  from redis import ConnectionError
@@ -401,6 +401,11 @@ class AsyncContentCache(AsyncCache):
401
401
  except (HTTPSuccessful, HTTPFound) as e:
402
402
  response = e
403
403
 
404
+ original_response = response
405
+ if isinstance(response, StreamResponse):
406
+ if hasattr(response, "future_response"):
407
+ response = response.future_response
408
+
404
409
  entry = {"headers": dict(response.headers), "status": response.status}
405
410
  if expires is not None:
406
411
  # Redis TTL is not sufficient: https://github.com/pulp/pulpcore/issues/4845
@@ -427,12 +432,12 @@ class AsyncContentCache(AsyncCache):
427
432
  entry["location"] = str(response.location)
428
433
  entry["type"] = "Redirect"
429
434
  else:
430
- # We don't cache StreamResponses or errors
435
+ # We don't cache errors
431
436
  return response
432
437
 
433
438
  # TODO look into smaller format, maybe some compression on the text
434
439
  await self.set(key, json.dumps(entry), expires, base_key=base_key)
435
- return response
440
+ return original_response
436
441
 
437
442
  def make_key(self, request):
438
443
  """Makes the key based off the request"""
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  from contextlib import suppress
3
3
  from importlib import import_module
4
+ from importlib.util import find_spec
4
5
  import logging
5
6
  import os
6
7
 
@@ -35,6 +36,13 @@ if settings.OTEL_ENABLED:
35
36
  else:
36
37
  app = web.Application(middlewares=[guid, authenticate])
37
38
 
39
+
40
+ if settings.UVLOOP_ENABLED:
41
+ if not find_spec("uvloop"):
42
+ raise RuntimeError("The library 'uvloop' must be installed if UVLOOP_ENABLED is true.")
43
+ log.info("Using uvloop as the asyncio event loop.")
44
+
45
+
38
46
  CONTENT_MODULE_NAME = "content"
39
47
 
40
48
 
@@ -1,11 +1,17 @@
1
1
  import click
2
2
  from pulpcore.app.pulpcore_gunicorn_application import PulpcoreGunicornApplication
3
+ from django.conf import settings
3
4
 
4
5
 
5
6
  class PulpcoreContentApplication(PulpcoreGunicornApplication):
6
7
  def load_app_specific_config(self):
8
+ worker_class = (
9
+ "aiohttp.GunicornUVLoopWebWorker"
10
+ if settings.UVLOOP_ENABLED
11
+ else "aiohttp.GunicornWebWorker"
12
+ )
7
13
  self.set_option("default_proc_name", "pulpcore-content", enforced=True)
8
- self.set_option("worker_class", "aiohttp.GunicornWebWorker", enforced=True)
14
+ self.set_option("worker_class", worker_class, enforced=True)
9
15
 
10
16
  def load(self):
11
17
  import pulpcore.content