pulpcore 3.77.1__tar.gz → 3.79.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.1 → pulpcore-3.79.0}/CHANGES.md +153 -0
  2. {pulpcore-3.77.1 → pulpcore-3.79.0}/PKG-INFO +10 -8
  3. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/apps.py +1 -1
  6. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/entrypoint.py +1 -1
  7. pulpcore-3.79.0/pulpcore/app/management/commands/clean-up-progress-reports.py +52 -0
  8. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/dump-publications-to-fs.py +1 -1
  9. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/task.py +70 -70
  10. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/openpgp.py +6 -6
  11. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/replica.py +1 -1
  12. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/base.py +1 -1
  13. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/user.py +65 -19
  14. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/settings.py +4 -3
  15. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/repository.py +3 -3
  16. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/util.py +4 -3
  17. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/content/__init__.py +8 -0
  18. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/content/entrypoint.py +7 -1
  19. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/content/handler.py +4 -3
  20. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/tasks.py +12 -1
  21. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/worker.py +1 -1
  22. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +7 -7
  23. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/performance/test_performance.py +8 -10
  24. pulpcore-3.79.0/pulpcore/tests/unit/models/test_task.py +44 -0
  25. pulpcore-3.79.0/pulpcore/tests/unit/serializers/test_user.py +86 -0
  26. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_viewsets.py +1 -1
  27. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/PKG-INFO +10 -8
  28. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/SOURCES.txt +3 -0
  29. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/requires.txt +10 -7
  30. {pulpcore-3.77.1 → pulpcore-3.79.0}/pyproject.toml +10 -9
  31. {pulpcore-3.77.1 → pulpcore-3.79.0}/CODE_OF_CONDUCT.md +0 -0
  32. {pulpcore-3.77.1 → pulpcore-3.79.0}/COMMITMENT +0 -0
  33. {pulpcore-3.77.1 → pulpcore-3.79.0}/CONTRIBUTING.md +0 -0
  34. {pulpcore-3.77.1 → pulpcore-3.79.0}/COPYRIGHT +0 -0
  35. {pulpcore-3.77.1 → pulpcore-3.79.0}/LICENSE +0 -0
  36. {pulpcore-3.77.1 → pulpcore-3.79.0}/MANIFEST.in +0 -0
  37. {pulpcore-3.77.1 → pulpcore-3.79.0}/README.md +0 -0
  38. {pulpcore-3.77.1 → pulpcore-3.79.0}/ci_requirements.txt +0 -0
  39. {pulpcore-3.77.1 → pulpcore-3.79.0}/functest_requirements.txt +0 -0
  40. {pulpcore-3.77.1 → pulpcore-3.79.0}/manage.py +0 -0
  41. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/__init__.py +0 -0
  42. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  43. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  44. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/migrations/__init__.py +0 -0
  45. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/models.py +0 -0
  46. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/serializers.py +0 -0
  47. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/utils.py +0 -0
  48. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/app/viewsets.py +0 -0
  49. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/pytest_plugin.py +0 -0
  50. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/__init__.py +0 -0
  51. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/__init__.py +0 -0
  52. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  53. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  54. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  55. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  56. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  57. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  58. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  59. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  60. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  61. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  62. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  63. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  64. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  65. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  66. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  67. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  68. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  69. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  70. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  71. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  72. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  73. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  74. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  75. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  76. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  77. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  78. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  79. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  80. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  81. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  82. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  83. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  84. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/conftest.py +0 -0
  85. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/functional/constants.py +0 -0
  86. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/unit/__init__.py +0 -0
  87. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_certguard/tests/unit/test_models.py +0 -0
  88. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/__init__.py +0 -0
  89. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0001_initial.py +0 -0
  90. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -0
  91. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0002_file_related_names.py +0 -0
  92. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0003_auto_20191014_1721.py +0 -0
  93. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0004_filefilesystemexporter.py +0 -0
  94. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0005_filerepository.py +0 -0
  95. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0006_delete_filefilesystemexporter.py +0 -0
  96. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0007_filefilesystemexporter.py +0 -0
  97. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0008_add_manifest_field.py +0 -0
  98. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0009_move_data_to_new_master_distribution_model.py +0 -0
  99. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0010_auto_publish.py +0 -0
  100. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0011_fix_auto_publish.py +0 -0
  101. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0012_delete_filefilesystemexporter.py +0 -0
  102. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0013_file_acs.py +0 -0
  103. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0014_new_rbac_permissions.py +0 -0
  104. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0015_allow_null_manifest.py +0 -0
  105. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0016_add_domain.py +0 -0
  106. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  107. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/migrations/__init__.py +0 -0
  108. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/modelresource.py +0 -0
  109. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/models.py +0 -0
  110. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/replica.py +0 -0
  111. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/serializers.py +0 -0
  112. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/tasks/__init__.py +0 -0
  113. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/tasks/publishing.py +0 -0
  114. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/tasks/synchronizing.py +0 -0
  115. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/app/viewsets.py +0 -0
  116. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/manifest.py +0 -0
  117. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/pytest_plugin.py +0 -0
  118. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/__init__.py +0 -0
  119. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/__init__.py +0 -0
  120. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/__init__.py +0 -0
  121. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_acs.py +0 -0
  122. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  123. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  124. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_content_labels.py +0 -0
  125. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_crud_content_unit.py +0 -0
  126. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  127. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_domains.py +0 -0
  128. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_download_policies.py +0 -0
  129. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  130. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_labels.py +0 -0
  131. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  132. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_publish.py +0 -0
  133. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
  134. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  135. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  136. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/functional/api/test_sync.py +0 -0
  137. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/unit/__init__.py +0 -0
  138. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/unit/test_safe_paths.py +0 -0
  139. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulp_file/tests/unit/test_serializers.py +0 -0
  140. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/__init__.py +0 -0
  141. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/__init__.py +0 -0
  142. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/access_policy.py +0 -0
  143. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/authentication.py +0 -0
  144. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/checks.py +0 -0
  145. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/files.py +0 -0
  146. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/global_access_conditions.py +0 -0
  147. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/importexport.py +0 -0
  148. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/loggers.py +0 -0
  149. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/manage.py +0 -0
  150. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/__init__.py +0 -0
  151. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/__init__.py +0 -0
  152. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  153. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  154. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  155. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  156. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  157. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/migrationstat.py +0 -0
  158. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/openapi.py +0 -0
  159. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/rebasemigrations.py +0 -0
  160. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  161. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  162. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/repository-size.py +0 -0
  163. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  164. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  165. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0001_initial.py +0 -0
  166. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -0
  167. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
  168. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
  169. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
  170. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
  171. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
  172. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
  173. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
  174. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
  175. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
  176. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0011_relative_path.py +0 -0
  177. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
  178. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
  179. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
  180. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
  181. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
  182. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
  183. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
  184. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
  185. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
  186. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
  187. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
  188. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
  189. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
  190. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
  191. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0026_task_group.py +0 -0
  192. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0027_export_backend.py +0 -0
  193. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
  194. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0029_export_delete.py +0 -0
  195. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
  196. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
  197. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
  198. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
  199. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
  200. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
  201. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
  202. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
  203. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
  204. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
  205. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
  206. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
  207. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
  208. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
  209. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
  210. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
  211. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
  212. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
  213. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
  214. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
  215. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
  216. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
  217. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
  218. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
  219. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
  220. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0055_label.py +0 -0
  221. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
  222. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
  223. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
  224. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
  225. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
  226. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
  227. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
  228. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
  229. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
  230. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
  231. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
  232. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
  233. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
  234. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
  235. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
  236. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
  237. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
  238. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
  239. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
  240. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0074_acs.py +0 -0
  241. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
  242. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
  243. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
  244. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
  245. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
  246. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
  247. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
  248. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
  249. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
  250. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
  251. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
  252. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
  253. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
  254. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
  255. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
  256. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
  257. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0091_systemid.py +0 -0
  258. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  259. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  260. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  261. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  262. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  263. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  264. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  265. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  266. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  267. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  268. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  269. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  270. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  271. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  272. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  273. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  274. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  275. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  276. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  277. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  278. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  279. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  280. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  281. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  282. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  283. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  284. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
  285. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
  286. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
  287. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
  288. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
  289. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
  290. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0124_task_deferred_task_immediate.py +0 -0
  291. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0125_openpgpdistribution_openpgpkeyring_openpgppublickey_and_more.py +0 -0
  292. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0126_remoteartifact_failed_at.py +0 -0
  293. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0127_remove_upstreampulp_pulp_label_select.py +0 -0
  294. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0128_domain_pulp_labels.py +0 -0
  295. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0129_content_pulp_labels.py +0 -0
  296. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0130_upstreampulp_policy.py +0 -0
  297. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0131_distribution_checkpoint_publication_checkpoint.py +0 -0
  298. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/0132_alter_content_options.py +0 -0
  299. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/migrations/__init__.py +0 -0
  300. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/mime_types.py +0 -0
  301. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/modelresource.py +0 -0
  302. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/__init__.py +0 -0
  303. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/access_policy.py +0 -0
  304. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/acs.py +0 -0
  305. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/analytics.py +0 -0
  306. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/base.py +0 -0
  307. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/content.py +0 -0
  308. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/domain.py +0 -0
  309. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/exporter.py +0 -0
  310. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/fields.py +0 -0
  311. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/generic.py +0 -0
  312. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/importer.py +0 -0
  313. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/openpgp.py +0 -0
  314. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/progress.py +0 -0
  315. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/publication.py +0 -0
  316. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/replica.py +0 -0
  317. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/repository.py +0 -0
  318. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/role.py +0 -0
  319. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/status.py +0 -0
  320. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/storage.py +0 -0
  321. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/models/upload.py +0 -0
  322. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/protobuf/__init__.py +0 -0
  323. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  324. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/pulp_hashlib.py +0 -0
  325. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  326. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/redis_connection.py +0 -0
  327. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/response.py +0 -0
  328. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/role_util.py +0 -0
  329. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/__init__.py +0 -0
  330. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/access_policy.py +0 -0
  331. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/acs.py +0 -0
  332. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/content.py +0 -0
  333. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/domain.py +0 -0
  334. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/exporter.py +0 -0
  335. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/fields.py +0 -0
  336. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/importer.py +0 -0
  337. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/openpgp.py +0 -0
  338. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/orphans.py +0 -0
  339. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/progress.py +0 -0
  340. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/publication.py +0 -0
  341. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/purge.py +0 -0
  342. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/reclaim.py +0 -0
  343. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/repair.py +0 -0
  344. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/replica.py +0 -0
  345. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/repository.py +0 -0
  346. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/status.py +0 -0
  347. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/task.py +0 -0
  348. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/serializers/upload.py +0 -0
  349. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/__init__.py +0 -0
  350. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/analytics.py +0 -0
  351. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/base.py +0 -0
  352. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/export.py +0 -0
  353. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/importer.py +0 -0
  354. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/migrate.py +0 -0
  355. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/orphan.py +0 -0
  356. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/purge.py +0 -0
  357. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/reclaim_space.py +0 -0
  358. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/replica.py +0 -0
  359. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/telemetry.py +0 -0
  360. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/test.py +0 -0
  361. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/tasks/upload.py +0 -0
  362. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/templates/rest_framework/api.html +0 -0
  363. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/templatetags/__init__.py +0 -0
  364. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  365. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/urls.py +0 -0
  366. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/views/__init__.py +0 -0
  367. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/views/importer.py +0 -0
  368. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/views/orphans.py +0 -0
  369. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/views/repair.py +0 -0
  370. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/views/status.py +0 -0
  371. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/__init__.py +0 -0
  372. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/access_policy.py +0 -0
  373. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/acs.py +0 -0
  374. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/base.py +0 -0
  375. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/content.py +0 -0
  376. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/custom_filters.py +0 -0
  377. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/domain.py +0 -0
  378. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/exporter.py +0 -0
  379. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/importer.py +0 -0
  380. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/openpgp.py +0 -0
  381. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/orphans.py +0 -0
  382. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/publication.py +0 -0
  383. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/reclaim.py +0 -0
  384. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/replica.py +0 -0
  385. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/repository.py +0 -0
  386. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/task.py +0 -0
  387. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/upload.py +0 -0
  388. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/viewsets/user.py +0 -0
  389. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/app/wsgi.py +0 -0
  390. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/backends.py +0 -0
  391. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/cache/__init__.py +0 -0
  392. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/cache/cache.py +0 -0
  393. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/constants.py +0 -0
  394. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/content/authentication.py +0 -0
  395. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/content/instrumentation.py +0 -0
  396. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/download/__init__.py +0 -0
  397. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/download/base.py +0 -0
  398. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/download/factory.py +0 -0
  399. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/download/file.py +0 -0
  400. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/download/http.py +0 -0
  401. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/exceptions/__init__.py +0 -0
  402. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/exceptions/base.py +0 -0
  403. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/exceptions/plugin.py +0 -0
  404. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/exceptions/validation.py +0 -0
  405. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/filters.py +0 -0
  406. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/metrics.py +0 -0
  407. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/middleware.py +0 -0
  408. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/migrations.py +0 -0
  409. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/openapi/__init__.py +0 -0
  410. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/openapi/hooks.py +0 -0
  411. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/__init__.py +0 -0
  412. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/access_policy.py +0 -0
  413. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/actions.py +0 -0
  414. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/apps.py +0 -0
  415. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/authentication/__init__.py +0 -0
  416. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/cache/__init__.py +0 -0
  417. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/constants.py +0 -0
  418. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/content.py +0 -0
  419. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/download/__init__.py +0 -0
  420. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/exceptions.py +0 -0
  421. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/files.py +0 -0
  422. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/importexport.py +0 -0
  423. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/migrations.py +0 -0
  424. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/modelresources.py +0 -0
  425. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/models/__init__.py +0 -0
  426. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/models/role.py +0 -0
  427. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/publication_utils.py +0 -0
  428. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/pulp_hashlib.py +0 -0
  429. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/replica.py +0 -0
  430. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/repo_version_utils.py +0 -0
  431. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/responses.py +0 -0
  432. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/serializers/__init__.py +0 -0
  433. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/serializers/content.py +0 -0
  434. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/__init__.py +0 -0
  435. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/api.py +0 -0
  436. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/artifact_stages.py +0 -0
  437. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/content_stages.py +0 -0
  438. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/declarative_version.py +0 -0
  439. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/stages/models.py +0 -0
  440. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/storage.py +0 -0
  441. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/sync.py +0 -0
  442. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/tasking.py +0 -0
  443. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/util.py +0 -0
  444. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/viewsets/__init__.py +0 -0
  445. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/plugin/viewsets/content.py +0 -0
  446. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/pytest_plugin.py +0 -0
  447. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/responses.py +0 -0
  448. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/__init__.py +0 -0
  449. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/_util.py +0 -0
  450. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/entrypoint.py +0 -0
  451. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/kafka.py +0 -0
  452. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tasking/storage.py +0 -0
  453. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/__init__.py +0 -0
  454. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/__init__.py +0 -0
  455. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/__init__.py +0 -0
  456. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  457. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  458. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
  459. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  460. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_auth.py +0 -0
  461. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  462. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  463. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
  464. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_filter.py +0 -0
  465. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_login.py +0 -0
  466. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  467. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_openpgp.py +0 -0
  468. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_replication.py +0 -0
  469. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_repos.py +0 -0
  470. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_role.py +0 -0
  471. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  472. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  473. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  474. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_status.py +0 -0
  475. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
  476. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  477. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_upload.py +0 -0
  478. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  479. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/test_workers.py +0 -0
  480. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  481. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +0 -0
  482. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  483. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
  484. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  485. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  486. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  487. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  488. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  489. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  490. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +0 -0
  491. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  492. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
  493. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  494. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  495. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
  496. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  497. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
  498. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  499. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  500. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  501. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  502. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  503. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/assets/__init__.py +0 -0
  504. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  505. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/functional/utils.py +0 -0
  506. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/performance/__init__.py +0 -0
  507. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/__init__.py +0 -0
  508. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/conftest.py +0 -0
  509. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/content/__init__.py +0 -0
  510. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/content/test_handler.py +0 -0
  511. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  512. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/download/__init__.py +0 -0
  513. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  514. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  515. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/metrics/__init__.py +0 -0
  516. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/metrics/conftest.py +0 -0
  517. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/metrics/test_aiohttp_instrumentation.py +0 -0
  518. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/metrics/test_django_instrumentation.py +0 -0
  519. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/migration/__init__.py +0 -0
  520. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
  521. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/models/__init__.py +0 -0
  522. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/models/test_base.py +0 -0
  523. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/models/test_content.py +0 -0
  524. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/models/test_remote.py +0 -0
  525. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/models/test_repository.py +0 -0
  526. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/roles/__init__.py +0 -0
  527. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  528. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  529. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  530. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
  531. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_fields.py +0 -0
  532. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_orphans_cleanup.py +0 -0
  533. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  534. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  535. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/stages/__init__.py +0 -0
  536. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  537. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  538. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_cache.py +0 -0
  539. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  540. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_content_guard.py +0 -0
  541. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_files.py +0 -0
  542. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_import_checks.py +0 -0
  543. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  544. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_settings.py +0 -0
  545. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/test_util.py +0 -0
  546. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  547. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  548. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/dependency_links.txt +0 -0
  549. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/entry_points.txt +0 -0
  550. {pulpcore-3.77.1 → pulpcore-3.79.0}/pulpcore.egg-info/top_level.txt +0 -0
  551. {pulpcore-3.77.1 → pulpcore-3.79.0}/setup.cfg +0 -0
  552. {pulpcore-3.77.1 → pulpcore-3.79.0}/test_requirements.txt +0 -0
  553. {pulpcore-3.77.1 → pulpcore-3.79.0}/unittest_requirements.txt +0 -0
@@ -8,6 +8,68 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.79.0 (2025-05-20) {: #3.79.0 }
12
+
13
+ ### REST API {: #3.79.0-rest-api }
14
+
15
+ #### Features {: #3.79.0-rest-api-feature }
16
+
17
+ - Added the `execution_time` as microseconds and other task related information on the finished task log entry.
18
+ [#6569](https://github.com/pulp/pulpcore/issues/6569)
19
+
20
+ ### Plugin API {: #3.79.0-plugin-api }
21
+
22
+ No significant changes.
23
+
24
+ ### Pulp File {: #3.79.0-pulp-file }
25
+
26
+ No significant changes.
27
+
28
+ ### Pulp Cert Guard {: #3.79.0-pulp-cert-guard }
29
+
30
+ No significant changes.
31
+
32
+ ---
33
+
34
+ ## 3.78.0 (2025-05-13) {: #3.78.0 }
35
+
36
+ ### REST API {: #3.78.0-rest-api }
37
+
38
+ #### Features {: #3.78.0-rest-api-feature }
39
+
40
+ - Added the optional feature to enable uvloop library as a replacement of asyncio eventloop.
41
+ The feature is activated through the UVLOOP_ENABLED feature flag settings and the 'uvloop' optional dependency.
42
+ [#6021](https://github.com/pulp/pulpcore/issues/6021)
43
+
44
+ #### Bugfixes {: #3.78.0-rest-api-bugfix }
45
+
46
+ - Taught tasks to update the state of associated progress-reports when canceled/failed.
47
+
48
+ Added a management-task, `clean-up-progress-reports`, to clean up existing reports.
49
+ [#3609](https://github.com/pulp/pulpcore/issues/3609)
50
+ - Fixed a server error when listing user roles.
51
+ [#6330](https://github.com/pulp/pulpcore/issues/6330)
52
+ - On-demand or pull-through content is now immediately cached upon first request.
53
+ [#6540](https://github.com/pulp/pulpcore/issues/6540)
54
+
55
+ #### Misc {: #3.78.0-rest-api-misc }
56
+
57
+ -
58
+
59
+ ### Plugin API {: #3.78.0-plugin-api }
60
+
61
+ No significant changes.
62
+
63
+ ### Pulp File {: #3.78.0-pulp-file }
64
+
65
+ No significant changes.
66
+
67
+ ### Pulp Cert Guard {: #3.78.0-pulp-cert-guard }
68
+
69
+ No significant changes.
70
+
71
+ ---
72
+
11
73
  ## 3.77.1 (2025-05-08) {: #3.77.1 }
12
74
 
13
75
  ### REST API {: #3.77.1-rest-api }
@@ -370,6 +432,26 @@ No significant changes.
370
432
 
371
433
  ---
372
434
 
435
+ ## 3.73.9 (2025-05-06) {: #3.73.9 }
436
+
437
+ ### REST API {: #3.73.9-rest-api }
438
+
439
+ No significant changes.
440
+
441
+ ### Plugin API {: #3.73.9-plugin-api }
442
+
443
+ No significant changes.
444
+
445
+ ### Pulp File {: #3.73.9-pulp-file }
446
+
447
+ No significant changes.
448
+
449
+ ### Pulp Cert Guard {: #3.73.9-pulp-cert-guard }
450
+
451
+ No significant changes.
452
+
453
+ ---
454
+
373
455
  ## 3.73.8 (2025-04-24) {: #3.73.8 }
374
456
 
375
457
  ### REST API {: #3.73.8-rest-api }
@@ -1261,6 +1343,30 @@ No significant changes.
1261
1343
 
1262
1344
  ---
1263
1345
 
1346
+ ## 3.63.18 (2025-05-13) {: #3.63.18 }
1347
+
1348
+ ### REST API {: #3.63.18-rest-api }
1349
+
1350
+ #### Bugfixes {: #3.63.18-rest-api-bugfix }
1351
+
1352
+ - Disable retry logic on the context of content-app on-demand streaming, as we can't recover
1353
+ from any errors after starting the streaming process (chunked transfer).
1354
+ [#5937](https://github.com/pulp/pulpcore/issues/5937)
1355
+
1356
+ ### Plugin API {: #3.63.18-plugin-api }
1357
+
1358
+ No significant changes.
1359
+
1360
+ ### Pulp File {: #3.63.18-pulp-file }
1361
+
1362
+ No significant changes.
1363
+
1364
+ ### Pulp Cert Guard {: #3.63.18-pulp-cert-guard }
1365
+
1366
+ No significant changes.
1367
+
1368
+ ---
1369
+
1264
1370
  ## 3.63.17 (2025-04-24) {: #3.63.17 }
1265
1371
 
1266
1372
  ### REST API {: #3.63.17-rest-api }
@@ -2501,6 +2607,53 @@ No significant changes.
2501
2607
 
2502
2608
  ---
2503
2609
 
2610
+ ## 3.49.41 (2025-05-13) {: #3.49.41 }
2611
+
2612
+ ### REST API {: #3.49.41-rest-api }
2613
+
2614
+ #### Bugfixes {: #3.49.41-rest-api-bugfix }
2615
+
2616
+ - Disable retry logic on the context of content-app on-demand streaming, as we can't recover
2617
+ from any errors after starting the streaming process (chunked transfer).
2618
+ [#5937](https://github.com/pulp/pulpcore/issues/5937)
2619
+
2620
+ ### Plugin API {: #3.49.41-plugin-api }
2621
+
2622
+ No significant changes.
2623
+
2624
+ ### Pulp File {: #3.49.41-pulp-file }
2625
+
2626
+ No significant changes.
2627
+
2628
+ ### Pulp Cert Guard {: #3.49.41-pulp-cert-guard }
2629
+
2630
+ No significant changes.
2631
+
2632
+ ---
2633
+
2634
+ ## 3.49.40 (2025-05-06) {: #3.49.40 }
2635
+
2636
+ ### REST API {: #3.49.40-rest-api }
2637
+
2638
+ #### Bugfixes {: #3.49.40-rest-api-bugfix }
2639
+
2640
+ - Fixed to not use the OpenTelemetryMiddleware when PULP_OTEL_ENABLED is not set.
2641
+ [#6529](https://github.com/pulp/pulpcore/issues/6529)
2642
+
2643
+ ### Plugin API {: #3.49.40-plugin-api }
2644
+
2645
+ No significant changes.
2646
+
2647
+ ### Pulp File {: #3.49.40-pulp-file }
2648
+
2649
+ No significant changes.
2650
+
2651
+ ### Pulp Cert Guard {: #3.49.40-pulp-cert-guard }
2652
+
2653
+ No significant changes.
2654
+
2655
+ ---
2656
+
2504
2657
  ## 3.49.39 (2025-04-24) {: #3.49.39 }
2505
2658
 
2506
2659
  ### 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.1
3
+ Version: 3.79.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,14 +21,14 @@ 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
28
28
  Requires-Dist: async-timeout<4.0.4,>=4.0.3; python_version < "3.11"
29
29
  Requires-Dist: backoff<2.2.2,>=2.1.2
30
30
  Requires-Dist: click<=8.1.8,>=8.1.0
31
- Requires-Dist: cryptography<44.0.4,>=38.0.1
31
+ Requires-Dist: cryptography<45.0.3,>=38.0.1
32
32
  Requires-Dist: Django~=4.2.0
33
33
  Requires-Dist: django-filter<=25.1,>=23.1
34
34
  Requires-Dist: django-guid<=3.5.1,>=3.3
@@ -37,7 +37,7 @@ Requires-Dist: django-lifecycle<=1.2.4,>=1.0
37
37
  Requires-Dist: djangorestframework<=3.16.0,>=3.14.0
38
38
  Requires-Dist: djangorestframework-queryfields<=1.1.0,>=1.0
39
39
  Requires-Dist: drf-access-policy<1.5.1,>=1.1.2
40
- Requires-Dist: drf-nested-routers<=0.94.1,>=0.93.4
40
+ Requires-Dist: drf-nested-routers<=0.94.2,>=0.93.4
41
41
  Requires-Dist: drf-spectacular==0.27.2
42
42
  Requires-Dist: dynaconf<3.3.0,>=3.2.5
43
43
  Requires-Dist: gunicorn<23.1.0,>=20.1
@@ -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.9,>=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.1"
9
+ version = "3.79.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.1"
11
+ version = "3.79.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.1"
250
+ version = "3.79.0"
251
251
 
252
252
  # The python package name providing this app
253
253
  python_package_name = "pulpcore"
@@ -48,7 +48,7 @@ class PulpApiWorker(SyncWorker):
48
48
  from pulpcore.app.models import ApiAppStatus
49
49
 
50
50
  if settings.API_APP_TTL < 2 * self.timeout:
51
- logger.warn(
51
+ logger.warning(
52
52
  "API_APP_TTL (%s) is smaller than double the gunicorn timeout (%s). "
53
53
  "You may experience workers wrongly reporting as missing",
54
54
  settings.API_APP_TTL,
@@ -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
+ )
@@ -109,7 +109,7 @@ class Command(BaseCommand):
109
109
  repo_path = os.path.join(options["dest"], distribution.base_path)
110
110
  to_export.append((repo_path, publication))
111
111
  except ObjectDoesNotExist:
112
- logging.warn(
112
+ logging.warning(
113
113
  "No publication found for the repo published at '{}': skipping".format(
114
114
  distribution.base_path
115
115
  )
@@ -4,7 +4,6 @@ Django models related to the Tasking system
4
4
 
5
5
  import logging
6
6
  import traceback
7
- from contextlib import suppress
8
7
  from datetime import timedelta
9
8
  from gettext import gettext as _
10
9
 
@@ -76,6 +75,21 @@ class Task(BaseModel, AutoAddObjPermsMixin):
76
75
  """
77
76
  Represents a task
78
77
 
78
+ The Tasks state machine works like a finite automaton without loops:
79
+ The initial state is WAITING.
80
+ Final states are COMPLETED, FAILED and CANCELED.
81
+ The possible transitions are:
82
+ WAITING -> RUNNING
83
+ WAITING ->* CANCELING
84
+ RUNNING -> COMPLETED
85
+ RUNNING -> FAILED
86
+ RUNNING ->* CANCELING
87
+ CANCELING -> CANCELED
88
+
89
+ The transitions to CANCELING (marked with *) are the only ones allowed to happen without
90
+ holding the tasks advisory lock. Canceling is meant to be initiated asyncronously by a sparate
91
+ process before signalling the worker via Postgres LISTEN.
92
+
79
93
  Fields:
80
94
 
81
95
  state (models.TextField): The state of the task
@@ -180,24 +194,26 @@ class Task(BaseModel, AutoAddObjPermsMixin):
180
194
  """Set the "core.task_user_dispatcher" role for the current user after creation."""
181
195
  self.add_roles_for_object_creator("core.task_user_dispatcher")
182
196
 
197
+ def _cleanup_progress_reports(self, state):
198
+ """Find any running progress-reports and set their states to the specified end-state."""
199
+ self.progress_reports.filter(state=TASK_STATES.RUNNING).update(state=state)
200
+
183
201
  def set_running(self):
184
202
  """
185
203
  Set this Task to the running state, save it, and log output in warning cases.
186
204
 
187
205
  This updates the :attr:`started_at` and sets the :attr:`state` to :attr:`RUNNING`.
188
206
  """
207
+ started_at = timezone.now()
189
208
  rows = Task.objects.filter(pk=self.pk, state=TASK_STATES.WAITING).update(
190
- state=TASK_STATES.RUNNING, started_at=timezone.now()
209
+ state=TASK_STATES.RUNNING,
210
+ started_at=started_at,
191
211
  )
192
- with suppress(AttributeError):
193
- del self.state
194
- with suppress(AttributeError):
195
- del self.started_at
196
- with suppress(AttributeError):
197
- del self.finished_at
198
- with suppress(AttributeError):
199
- del self.error
200
- if rows != 1:
212
+ if rows == 1:
213
+ self.state = TASK_STATES.RUNNING
214
+ self.started_at = started_at
215
+ else:
216
+ self.refresh_from_db()
201
217
  raise RuntimeError(
202
218
  _("Attempt to set not waiting task {} to running from '{}'.").format(
203
219
  self.pk, self.state
@@ -212,18 +228,16 @@ class Task(BaseModel, AutoAddObjPermsMixin):
212
228
  """
213
229
  # Only set the state to finished if it's running. This is important for when the task has
214
230
  # been canceled, so we don't move the task from canceled to finished.
231
+ finished_at = timezone.now()
215
232
  rows = Task.objects.filter(pk=self.pk, state=TASK_STATES.RUNNING).update(
216
- state=TASK_STATES.COMPLETED, finished_at=timezone.now()
233
+ state=TASK_STATES.COMPLETED,
234
+ finished_at=finished_at,
217
235
  )
218
- with suppress(AttributeError):
219
- del self.state
220
- with suppress(AttributeError):
221
- del self.started_at
222
- with suppress(AttributeError):
223
- del self.finished_at
224
- with suppress(AttributeError):
225
- del self.error
226
- if rows != 1:
236
+ if rows == 1:
237
+ self.state = TASK_STATES.COMPLETED
238
+ self.finished_at = finished_at
239
+ else:
240
+ self.refresh_from_db()
227
241
  # If the user requested to cancel this task while the worker finished it, we leave it
228
242
  # as it is, but accept this is not an error condition.
229
243
  if self.state != TASK_STATES.CANCELING:
@@ -232,6 +246,7 @@ class Task(BaseModel, AutoAddObjPermsMixin):
232
246
  self.pk, self.state
233
247
  )
234
248
  )
249
+ self._cleanup_progress_reports(TASK_STATES.COMPLETED)
235
250
 
236
251
  def set_failed(self, exc, tb):
237
252
  """
@@ -244,26 +259,26 @@ class Task(BaseModel, AutoAddObjPermsMixin):
244
259
  exc (Exception): The exception raised by the task.
245
260
  tb (traceback): Traceback instance for the current exception.
246
261
  """
262
+ finished_at = timezone.now()
247
263
  tb_str = "".join(traceback.format_tb(tb))
264
+ error = exception_to_dict(exc, tb_str)
248
265
  rows = Task.objects.filter(pk=self.pk, state=TASK_STATES.RUNNING).update(
249
266
  state=TASK_STATES.FAILED,
250
- finished_at=timezone.now(),
251
- error=exception_to_dict(exc, tb_str),
267
+ finished_at=finished_at,
268
+ error=error,
252
269
  )
253
- with suppress(AttributeError):
254
- del self.state
255
- with suppress(AttributeError):
256
- del self.started_at
257
- with suppress(AttributeError):
258
- del self.finished_at
259
- with suppress(AttributeError):
260
- del self.error
261
- if rows != 1:
270
+ if rows == 1:
271
+ self.state = TASK_STATES.FAILED
272
+ self.finished_at = finished_at
273
+ self.error = error
274
+ else:
275
+ self.refresh_from_db()
262
276
  raise RuntimeError(
263
277
  _("Attempt to set not running task {} to failed from '{}'.").format(
264
278
  self.pk, self.state
265
279
  )
266
280
  )
281
+ self._cleanup_progress_reports(TASK_STATES.FAILED)
267
282
 
268
283
  def set_canceling(self):
269
284
  """
@@ -274,15 +289,10 @@ class Task(BaseModel, AutoAddObjPermsMixin):
274
289
  rows = Task.objects.filter(pk=self.pk, state__in=TASK_INCOMPLETE_STATES).update(
275
290
  state=TASK_STATES.CANCELING,
276
291
  )
277
- with suppress(AttributeError):
278
- del self.state
279
- with suppress(AttributeError):
280
- del self.started_at
281
- with suppress(AttributeError):
282
- del self.finished_at
283
- with suppress(AttributeError):
284
- del self.error
285
- if rows != 1:
292
+ if rows == 1:
293
+ self.state = TASK_STATES.CANCELING
294
+ else:
295
+ self.refresh_from_db()
286
296
  raise RuntimeError(
287
297
  _("Attempt to set not incomplete task {} to canceling from '{}'.").format(
288
298
  self.pk, self.state
@@ -295,50 +305,40 @@ class Task(BaseModel, AutoAddObjPermsMixin):
295
305
  """
296
306
  # Make sure this function was called with a proper final state
297
307
  assert final_state in [TASK_STATES.CANCELED, TASK_STATES.FAILED]
308
+ finished_at = timezone.now()
298
309
  task_data = {}
299
310
  if reason:
300
311
  task_data["error"] = {"reason": reason}
301
312
  rows = Task.objects.filter(pk=self.pk, state=TASK_STATES.CANCELING).update(
302
313
  state=final_state,
303
- finished_at=timezone.now(),
314
+ finished_at=finished_at,
304
315
  **task_data,
305
316
  )
306
- with suppress(AttributeError):
307
- del self.state
308
- with suppress(AttributeError):
309
- del self.started_at
310
- with suppress(AttributeError):
311
- del self.finished_at
312
- with suppress(AttributeError):
313
- del self.error
314
- if rows != 1:
317
+ if rows == 1:
318
+ self.state = final_state
319
+ self.finished_at = finished_at
320
+ if reason:
321
+ self.error = task_data["error"]
322
+ else:
323
+ self.refresh_from_db()
315
324
  raise RuntimeError(
316
325
  _("Attempt to set not canceling task {} to canceled from '{}'.").format(
317
326
  self.pk, self.state
318
327
  )
319
328
  )
329
+ self._cleanup_progress_reports(final_state)
320
330
 
321
331
  def unblock(self):
322
332
  # This should be safe to be called without holding the lock.
323
- Task.objects.filter(pk=self.pk).update(unblocked_at=timezone.now())
324
- with suppress(AttributeError):
325
- del self.unblocked_at
326
-
327
- # Example taken from here:
328
- # https://docs.djangoproject.com/en/3.2/ref/models/instances/#refreshing-objects-from-database
329
- def refresh_from_db(self, using=None, fields=None, **kwargs):
330
- # fields contains the name of the deferred field to be
331
- # loaded.
332
- if fields is not None:
333
- fields = set(fields)
334
- deferred_fields = {
335
- field for field in self.get_deferred_fields() if not field.startswith("enc_")
336
- }
337
- # If any state related deferred field is going to be loaded
338
- if fields.intersection(deferred_fields):
339
- # then load all of them
340
- fields = fields.union(deferred_fields)
341
- super().refresh_from_db(using, fields, **kwargs)
333
+ unblocked_at = timezone.now()
334
+ rows = Task.objects.filter(pk=self.pk).update(unblocked_at=unblocked_at)
335
+ if rows == 1:
336
+ self.unblocked_at = unblocked_at
337
+ else:
338
+ self.refresh_from_db()
339
+ raise RuntimeError(
340
+ _("Falied to set task {} unblocked in state '{}'.").format(self.pk, self.state)
341
+ )
342
342
 
343
343
  class Meta:
344
344
  indexes = [
@@ -289,15 +289,15 @@ def analyze_signature(data, pubkey, signed_packet_type, signed_packet):
289
289
  if version == 4:
290
290
  hash_payload = b"\x99" + len(signed_packet).to_bytes(2, "big") + signed_packet
291
291
  else: # version == 5
292
- hash_payload = b"\x9A" + len(signed_packet).to_bytes(4, "big") + signed_packet
292
+ hash_payload = b"\x9a" + len(signed_packet).to_bytes(4, "big") + signed_packet
293
293
  elif signature_type in [0x10, 0x11, 0x12, 0x13, 0x16, 0x30]:
294
294
  # 0x10 - 0x13 Certification of a user id or attribute
295
295
  # 0x16 Attested Key Signature
296
296
  # 0x30 Certification Revocation Signature
297
297
  if signed_packet_type == 13:
298
- hash_payload = b"\xB4" + len(signed_packet).to_bytes(4, "big") + signed_packet
298
+ hash_payload = b"\xb4" + len(signed_packet).to_bytes(4, "big") + signed_packet
299
299
  elif signed_packet_type == 17:
300
- hash_payload = b"\xD1" + len(signed_packet).to_bytes(4, "big") + signed_packet
300
+ hash_payload = b"\xd1" + len(signed_packet).to_bytes(4, "big") + signed_packet
301
301
  else:
302
302
  raise ValueError("Out of band user ID or attribute signature.")
303
303
  elif signature_type in [0x1F, 0x20, 0x30]:
@@ -318,18 +318,18 @@ def analyze_signature(data, pubkey, signed_packet_type, signed_packet):
318
318
  if version == 4:
319
319
  h.update(b"\x99" + len(pubkey).to_bytes(2, "big") + pubkey)
320
320
  else: # version == 5
321
- h.update(b"\x9A" + len(pubkey).to_bytes(4, "big") + pubkey)
321
+ h.update(b"\x9a" + len(pubkey).to_bytes(4, "big") + pubkey)
322
322
  h.update(hash_payload)
323
323
  if version == 4:
324
324
  h.update(
325
325
  data[: 6 + hashed_size]
326
- + b"\x04\xFF"
326
+ + b"\x04\xff"
327
327
  + ((6 + hashed_size) % (1 << 32)).to_bytes(4, "big")
328
328
  )
329
329
  else: # version == 5
330
330
  h.update(
331
331
  data[: 6 + hashed_size]
332
- + b"\x05\xFF"
332
+ + b"\x05\xff"
333
333
  + ((6 + hashed_size) % (1 << 64)).to_bytes(8, "big")
334
334
  )
335
335
  if not h.digest().startswith(canary):
@@ -27,7 +27,7 @@ class ReplicaContext(PulpContext):
27
27
  if err:
28
28
  self.err_buf += message
29
29
  if nl:
30
- _logger.warn("{}", self.err_buf)
30
+ _logger.warning("{}", self.err_buf)
31
31
  self.err_buf = ""
32
32
  else:
33
33
  self.out_buf += message
@@ -112,7 +112,7 @@ class _DetailFieldMixin(HrefPrnFieldMixin):
112
112
  if view_name_pattern:
113
113
  view_name = _MatchingRegexViewName(view_name_pattern)
114
114
  else:
115
- log.warn(
115
+ log.warning(
116
116
  _(
117
117
  "Please provide either 'view_name' or 'view_name_pattern' for {} on {}."
118
118
  ).format(self.__class__.__name__, traceback.extract_stack()[-4][2])