katello 4.18.0 → 4.19.0.rc1

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 katello might be problematic. Click here for more details.

Files changed (345) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/locale/bn/katello.js +52 -349
  3. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +52 -349
  4. data/app/assets/javascripts/katello/locale/ca/katello.js +52 -349
  5. data/app/assets/javascripts/katello/locale/cs/katello.js +53 -350
  6. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +54 -351
  7. data/app/assets/javascripts/katello/locale/de/katello.js +56 -353
  8. data/app/assets/javascripts/katello/locale/de_AT/katello.js +52 -349
  9. data/app/assets/javascripts/katello/locale/de_DE/katello.js +52 -349
  10. data/app/assets/javascripts/katello/locale/el/katello.js +54 -351
  11. data/app/assets/javascripts/katello/locale/en/katello.js +53 -350
  12. data/app/assets/javascripts/katello/locale/en_GB/katello.js +53 -350
  13. data/app/assets/javascripts/katello/locale/en_US/katello.js +52 -349
  14. data/app/assets/javascripts/katello/locale/es/katello.js +56 -353
  15. data/app/assets/javascripts/katello/locale/et_EE/katello.js +52 -349
  16. data/app/assets/javascripts/katello/locale/fr/katello.js +138 -435
  17. data/app/assets/javascripts/katello/locale/gl/katello.js +52 -349
  18. data/app/assets/javascripts/katello/locale/gu/katello.js +52 -349
  19. data/app/assets/javascripts/katello/locale/he_IL/katello.js +52 -349
  20. data/app/assets/javascripts/katello/locale/hi/katello.js +52 -349
  21. data/app/assets/javascripts/katello/locale/id/katello.js +52 -349
  22. data/app/assets/javascripts/katello/locale/it/katello.js +53 -350
  23. data/app/assets/javascripts/katello/locale/ja/katello.js +142 -439
  24. data/app/assets/javascripts/katello/locale/ka/katello.js +56 -353
  25. data/app/assets/javascripts/katello/locale/kn/katello.js +52 -349
  26. data/app/assets/javascripts/katello/locale/ko/katello.js +135 -432
  27. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +52 -349
  28. data/app/assets/javascripts/katello/locale/mr/katello.js +52 -349
  29. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +52 -349
  30. data/app/assets/javascripts/katello/locale/or/katello.js +52 -349
  31. data/app/assets/javascripts/katello/locale/pa/katello.js +52 -349
  32. data/app/assets/javascripts/katello/locale/pl/katello.js +52 -349
  33. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +52 -349
  34. data/app/assets/javascripts/katello/locale/pt/katello.js +52 -349
  35. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +56 -353
  36. data/app/assets/javascripts/katello/locale/ro/katello.js +52 -349
  37. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +52 -349
  38. data/app/assets/javascripts/katello/locale/ru/katello.js +54 -351
  39. data/app/assets/javascripts/katello/locale/sl/katello.js +52 -349
  40. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +52 -349
  41. data/app/assets/javascripts/katello/locale/ta/katello.js +52 -349
  42. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +52 -349
  43. data/app/assets/javascripts/katello/locale/te/katello.js +52 -349
  44. data/app/assets/javascripts/katello/locale/tr/katello.js +52 -349
  45. data/app/assets/javascripts/katello/locale/vi/katello.js +52 -349
  46. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +52 -349
  47. data/app/assets/javascripts/katello/locale/zh/katello.js +52 -349
  48. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +135 -432
  49. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +54 -351
  50. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +46 -13
  51. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
  52. data/app/controllers/katello/api/v2/activation_keys_controller.rb +3 -65
  53. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +56 -34
  54. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
  55. data/app/controllers/katello/api/v2/content_views_controller.rb +18 -3
  56. data/app/controllers/katello/api/v2/debs_controller.rb +21 -11
  57. data/app/controllers/katello/api/v2/docker_tags_controller.rb +7 -0
  58. data/app/controllers/katello/api/v2/errata_controller.rb +4 -4
  59. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +21 -19
  60. data/app/controllers/katello/api/v2/host_debs_controller.rb +16 -1
  61. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +3 -60
  62. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +10 -53
  63. data/app/controllers/katello/api/v2/repositories_controller.rb +0 -1
  64. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +3 -0
  65. data/app/lib/actions/candlepin/activation_key/create.rb +0 -2
  66. data/app/lib/actions/candlepin/activation_key/update.rb +0 -2
  67. data/app/lib/actions/candlepin/product/content_create.rb +3 -5
  68. data/app/lib/actions/candlepin/product/content_update.rb +2 -3
  69. data/app/lib/actions/helpers/rolling_cv_repos.rb +1 -1
  70. data/app/lib/actions/katello/activation_key/create.rb +0 -1
  71. data/app/lib/actions/katello/activation_key/update.rb +0 -2
  72. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -6
  73. data/app/lib/actions/katello/content_credential/update.rb +1 -1
  74. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +18 -24
  75. data/app/lib/actions/katello/content_view/create.rb +9 -4
  76. data/app/lib/actions/katello/content_view/publish.rb +7 -7
  77. data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +6 -1
  78. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +16 -11
  79. data/app/lib/actions/katello/content_view/update.rb +34 -7
  80. data/app/lib/actions/katello/product/content_create.rb +2 -2
  81. data/app/lib/actions/katello/product/content_destroy.rb +1 -1
  82. data/app/lib/actions/katello/repository/check_matching_content.rb +1 -1
  83. data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
  84. data/app/lib/actions/katello/repository/create.rb +1 -1
  85. data/app/lib/actions/katello/repository/destroy.rb +4 -4
  86. data/app/lib/actions/katello/repository/finish_upload.rb +1 -1
  87. data/app/lib/actions/katello/repository/sync.rb +1 -1
  88. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +2 -2
  89. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
  90. data/app/lib/actions/pulp3/orchestration/repository/multi_copy_all_units.rb +1 -1
  91. data/app/lib/actions/pulp3/repository/save_publication.rb +3 -1
  92. data/app/lib/actions/pulp3/repository/save_version.rb +45 -24
  93. data/app/lib/actions/pulp3/repository/save_versions.rb +2 -1
  94. data/app/lib/katello/resources/candlepin/activation_key.rb +3 -4
  95. data/app/lib/katello/resources/candlepin/upstream_job.rb +9 -1
  96. data/app/lib/katello/resources/candlepin.rb +4 -0
  97. data/app/models/katello/authorization/repository.rb +17 -4
  98. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -7
  99. data/app/models/katello/content_view_deb_filter.rb +10 -0
  100. data/app/models/katello/content_view_deb_filter_rule.rb +7 -0
  101. data/app/models/katello/deb.rb +10 -12
  102. data/app/models/katello/erratum.rb +1 -1
  103. data/app/models/katello/glue/provider.rb +14 -3
  104. data/app/models/katello/host/content_facet.rb +1 -1
  105. data/app/models/katello/host/subscription_facet.rb +1 -7
  106. data/app/models/katello/product_content.rb +2 -2
  107. data/app/models/katello/repository.rb +4 -23
  108. data/app/models/katello/root_repository.rb +2 -5
  109. data/app/services/katello/candlepin/event_handler.rb +0 -33
  110. data/app/services/katello/candlepin/message_handler.rb +0 -41
  111. data/app/services/katello/content_unit_indexer.rb +59 -13
  112. data/app/services/katello/product_content_finder.rb +16 -7
  113. data/app/services/katello/pulp3/alternate_content_source.rb +2 -2
  114. data/app/services/katello/pulp3/ansible_collection.rb +1 -0
  115. data/app/services/katello/pulp3/api/content_guard.rb +5 -5
  116. data/app/services/katello/pulp3/api/core.rb +10 -0
  117. data/app/services/katello/pulp3/content_view_version/export.rb +25 -10
  118. data/app/services/katello/pulp3/deb.rb +1 -0
  119. data/app/services/katello/pulp3/docker_manifest.rb +1 -0
  120. data/app/services/katello/pulp3/docker_manifest_list.rb +1 -0
  121. data/app/services/katello/pulp3/docker_tag.rb +1 -0
  122. data/app/services/katello/pulp3/file_unit.rb +1 -0
  123. data/app/services/katello/pulp3/generic_content_unit.rb +1 -0
  124. data/app/services/katello/pulp3/module_stream.rb +1 -0
  125. data/app/services/katello/pulp3/package_group.rb +1 -0
  126. data/app/services/katello/pulp3/repository/apt.rb +30 -13
  127. data/app/services/katello/pulp3/repository.rb +59 -10
  128. data/app/services/katello/pulp3/rpm.rb +3 -2
  129. data/app/services/katello/pulp3/srpm.rb +3 -2
  130. data/app/services/katello/pulp3/task_group.rb +1 -1
  131. data/app/services/katello/registration_manager.rb +19 -17
  132. data/app/services/katello/repository_type_manager.rb +7 -5
  133. data/app/services/katello/smart_proxy_helper.rb +1 -6
  134. data/app/views/foreman/job_templates/upload_profile.erb +5 -0
  135. data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -1
  136. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  137. data/app/views/katello/api/v2/debs/thindex.json.rabl +6 -0
  138. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +32 -0
  139. data/app/views/katello/api/v2/docker_tags/show.json.rabl +0 -5
  140. data/app/views/katello/api/v2/flatpak_remotes/index.json.rabl +6 -0
  141. data/app/views/katello/api/v2/host_debs/installed_debs.json.rabl +6 -0
  142. data/app/views/katello/api/v2/hosts_bulk_actions/applicable_errata.json.rabl +1 -1
  143. data/app/views/katello/api/v2/hosts_bulk_actions/applicable_erratum.json.rabl +9 -0
  144. data/app/views/katello/api/v2/hosts_bulk_actions/installable_errata.json.rabl +1 -1
  145. data/app/views/katello/api/v2/hosts_bulk_actions/{erratum.json.rabl → installable_erratum.json.rabl} +3 -3
  146. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  147. data/config/initializers/monkeys.rb +1 -0
  148. data/config/routes/api/v2.rb +2 -2
  149. data/config/routes/overrides.rb +2 -7
  150. data/config/routes.rb +2 -0
  151. data/db/migrate/20211019192121_create_cdn_configuration.katello.rb +1 -1
  152. data/db/migrate/20250912000000_add_pulp_prn_fields.rb +73 -0
  153. data/db/migrate/20250912000001_populate_pulp_prn_fields.rb +403 -0
  154. data/db/migrate/20251009142516_remove_auto_attach_from_activation_keys.rb +5 -0
  155. data/db/migrate/20251009142517_remove_autoheal_from_subscription_facets.rb +5 -0
  156. data/db/seeds.d/111-upgrade_tasks.rb +2 -0
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +2 -2
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -1
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +5 -2
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +5 -2
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +5 -2
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +4 -4
  163. data/lib/katello/permission_creator.rb +2 -2
  164. data/lib/katello/permissions/host_permissions.rb +0 -6
  165. data/lib/katello/plugin.rb +16 -8
  166. data/lib/katello/tasks/jenkins.rake +1 -1
  167. data/lib/katello/tasks/upgrades/4.19/enable_structured_apt_for_deb.rake +87 -0
  168. data/lib/katello/tasks/upgrades/4.19/populate_repository_version_prns.rake +32 -0
  169. data/lib/katello/version.rb +1 -1
  170. data/lib/monkeys/fix_rpm_repository_gpgcheck.rb +38 -0
  171. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  172. data/locale/bn/katello.po +52 -349
  173. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  174. data/locale/bn_IN/katello.po +52 -349
  175. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  176. data/locale/ca/katello.po +52 -349
  177. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  178. data/locale/cs/katello.po +54 -350
  179. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/cs_CZ/katello.po +54 -351
  181. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  182. data/locale/de/katello.po +56 -353
  183. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  184. data/locale/de_AT/katello.po +52 -349
  185. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/de_DE/katello.po +52 -349
  187. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  188. data/locale/el/katello.po +55 -352
  189. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  190. data/locale/en/katello.po +54 -350
  191. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/en_GB/katello.po +53 -350
  193. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  194. data/locale/en_US/katello.po +52 -349
  195. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  196. data/locale/es/katello.po +56 -353
  197. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/et_EE/katello.po +52 -349
  199. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/fr/katello.po +139 -435
  201. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  202. data/locale/gl/katello.po +52 -349
  203. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/gu/katello.po +52 -349
  205. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/he_IL/katello.po +52 -349
  207. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  208. data/locale/hi/katello.po +52 -349
  209. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/id/katello.po +52 -349
  211. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/it/katello.po +53 -350
  213. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  214. data/locale/ja/katello.po +143 -439
  215. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/ka/katello.po +56 -353
  217. data/locale/katello.pot +695 -1152
  218. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/kn/katello.po +52 -349
  220. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  221. data/locale/ko/katello.po +136 -432
  222. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  223. data/locale/ml_IN/katello.po +52 -349
  224. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/mr/katello.po +52 -349
  226. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  227. data/locale/nl_NL/katello.po +52 -349
  228. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/or/katello.po +52 -349
  230. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/pa/katello.po +52 -349
  232. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  233. data/locale/pl/katello.po +52 -349
  234. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  235. data/locale/pl_PL/katello.po +52 -349
  236. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/pt/katello.po +52 -349
  238. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/pt_BR/katello.po +56 -353
  240. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/ro/katello.po +52 -349
  242. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  243. data/locale/ro_RO/katello.po +52 -349
  244. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  245. data/locale/ru/katello.po +54 -351
  246. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/sl/katello.po +52 -349
  248. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/sv_SE/katello.po +52 -349
  250. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  251. data/locale/ta/katello.po +52 -349
  252. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/ta_IN/katello.po +52 -349
  254. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  255. data/locale/te/katello.po +52 -349
  256. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/tr/katello.po +52 -349
  258. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/vi/katello.po +52 -349
  260. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/vi_VN/katello.po +52 -349
  262. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  263. data/locale/zh/katello.po +52 -349
  264. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/zh_CN/katello.po +136 -432
  266. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  267. data/locale/zh_TW/katello.po +54 -351
  268. data/webpack/components/Content/Details/__tests__/__snapshots__/ContentDetails.test.js.snap +2 -2
  269. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +0 -2
  270. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +0 -2
  271. data/webpack/components/extensions/Hosts/ActionsBar/index.js +1 -0
  272. data/webpack/components/extensions/Hosts/BulkActions/BulkActionsConstants.js +7 -0
  273. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/BulkChangeHostCollectionsModal.js +388 -0
  274. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/__tests__/BulkChangeHostCollectionsModal.test.js +640 -0
  275. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/actions.js +28 -0
  276. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/index.js +71 -0
  277. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +1 -1
  278. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +10 -3
  279. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +51 -24
  280. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +7 -0
  281. data/webpack/containers/Application/config.js +11 -1
  282. data/webpack/global_index.js +3 -0
  283. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesConstants.js +1 -1
  284. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesPage.js +7 -43
  285. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImagesPage.test.js +1 -1
  286. data/webpack/scenes/ContainerImages/ContainerImagesPage.js +86 -0
  287. data/webpack/scenes/ContainerImages/LabelsAnnotationsModal.js +105 -0
  288. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetails.js +218 -0
  289. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsActions.js +15 -0
  290. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsSelectors.js +16 -0
  291. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/ManifestDetails.test.js +395 -0
  292. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestDetails.fixtures.json +43 -0
  293. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestList.fixtures.json +58 -0
  294. data/webpack/scenes/ContainerImages/Synced/Details/index.js +4 -0
  295. data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.js +359 -0
  296. data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.scss +21 -0
  297. data/webpack/scenes/ContainerImages/Synced/__tests__/LabelsAnnotationsModal.test.js +69 -0
  298. data/webpack/scenes/ContainerImages/Synced/__tests__/SyncedContainerImagesPage.test.js +335 -0
  299. data/webpack/scenes/ContainerImages/Synced/__tests__/syncedContainerImages.fixtures.json +105 -0
  300. data/webpack/scenes/ContainerImages/TableEmptyState.js +67 -0
  301. data/webpack/scenes/ContainerImages/containerImagesHelpers.js +48 -0
  302. data/webpack/scenes/ContainerImages/index.js +4 -0
  303. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +29 -3
  304. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  305. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +45 -1
  306. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +0 -1
  307. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +59 -1
  308. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +1 -0
  309. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +164 -24
  310. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVDebFilterContent.test.js +268 -0
  311. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterDetail.fixtures.json +95 -0
  312. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterRules.fixtures.json +31 -0
  313. data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyCVDebFilterRules.fixtures.json +10 -0
  314. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +0 -1
  315. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +0 -1
  316. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +15 -0
  317. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +1 -0
  318. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +9 -0
  319. data/webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js +5 -3
  320. data/webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js +1 -1
  321. data/webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js +35 -3
  322. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js +1 -1
  323. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.css +3 -0
  324. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js +63 -132
  325. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js +67 -143
  326. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +10 -2
  327. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +13 -2
  328. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -0
  329. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +8 -2
  330. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +67 -1
  331. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +2 -2
  332. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +0 -2
  333. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +2 -2
  334. metadata +83 -55
  335. data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -59
  336. data/app/lib/actions/katello/host/auto_attach_subscriptions.rb +0 -22
  337. data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -50
  338. data/app/lib/actions/katello/organization/simple_content_access/disable.rb +0 -25
  339. data/app/lib/actions/katello/organization/simple_content_access/enable.rb +0 -25
  340. data/app/lib/actions/katello/organization/simple_content_access/toggle.rb +0 -42
  341. data/lib/katello/tasks/migrate_structure_content_for_deb.rake +0 -105
  342. data/lib/katello/tasks/upgrades/4.2/remove_checksum_values.rake +0 -17
  343. data/locale/action_names.rb +0 -186
  344. /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImages.fixtures.js +0 -0
  345. /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/index.js +0 -0
@@ -0,0 +1,403 @@
1
+ # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
2
+ class PopulatePulpPrnFields < ActiveRecord::Migration[7.0]
3
+ def up
4
+ # Content Guards - RHSM cert guards
5
+ Katello::Pulp3::ContentGuard.where.not(pulp_href: nil).update_all(
6
+ "pulp_prn = CASE
7
+ WHEN pulp_href ~ '/contentguards/certguard/rhsm/' THEN
8
+ 'prn:certguard.rhsmcertguard:' ||
9
+ regexp_replace(pulp_href, '^.*/([^/]+)/?$', '\\1')
10
+ ELSE NULL
11
+ END"
12
+ )
13
+
14
+ # Repositories - remote_prn
15
+ Katello::Repository.where.not(remote_href: nil).update_all(
16
+ "remote_prn = CASE
17
+ WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
18
+ 'prn:rpm.rpmremote:' ||
19
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
20
+ WHEN remote_href ~ '/remotes/rpm/uln/' THEN
21
+ 'prn:rpm.ulnremote:' ||
22
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
23
+ WHEN remote_href ~ '/remotes/deb/apt/' THEN
24
+ 'prn:deb.aptremote:' ||
25
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
26
+ WHEN remote_href ~ '/remotes/container/container/' THEN
27
+ 'prn:container.containerremote:' ||
28
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
29
+ WHEN remote_href ~ '/remotes/ansible/collection/' THEN
30
+ 'prn:ansible.collectionremote:' ||
31
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
32
+ WHEN remote_href ~ '/remotes/python/python/' THEN
33
+ 'prn:python.pythonremote:' ||
34
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
35
+ WHEN remote_href ~ '/remotes/file/file/' THEN
36
+ 'prn:file.fileremote:' ||
37
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
38
+ WHEN remote_href ~ '/remotes/ostree/ostree/' THEN
39
+ 'prn:ostree.ostreeremote:' ||
40
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
41
+ ELSE NULL
42
+ END"
43
+ )
44
+
45
+ # Repositories - publication_prn
46
+ Katello::Repository.where.not(publication_href: nil).update_all(
47
+ "publication_prn = CASE
48
+ WHEN publication_href ~ '/publications/rpm/rpm/' THEN
49
+ 'prn:rpm.rpmpublication:' ||
50
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
51
+ WHEN publication_href ~ '/publications/deb/apt/' THEN
52
+ 'prn:deb.aptpublication:' ||
53
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
54
+ WHEN publication_href ~ '/publications/container/container/' THEN
55
+ 'prn:container.containerpublication:' ||
56
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
57
+ WHEN publication_href ~ '/publications/ansible/ansible/' THEN
58
+ 'prn:ansible.ansiblepublication:' ||
59
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
60
+ WHEN publication_href ~ '/publications/python/pypi/' THEN
61
+ 'prn:python.pythonpublication:' ||
62
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
63
+ WHEN publication_href ~ '/publications/file/file/' THEN
64
+ 'prn:file.filepublication:' ||
65
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
66
+ ELSE NULL
67
+ END"
68
+ )
69
+
70
+ # Ansible Collections - Process in batches due to potentially large number of records
71
+ Katello::AnsibleCollection.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
72
+ batch.update_all(
73
+ "pulp_prn = CASE
74
+ WHEN pulp_id ~ '/content/ansible/collection_versions/' THEN
75
+ 'prn:ansible.collectionversion:' ||
76
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
77
+ ELSE NULL
78
+ END"
79
+ )
80
+ end
81
+
82
+ # Generic Content Units - Process in batches due to potentially large number of records
83
+ Katello::GenericContentUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
84
+ batch.update_all(
85
+ "pulp_prn = CASE
86
+ WHEN pulp_id ~ '/content/python/packages/' THEN
87
+ 'prn:python.pythonpackagecontent:' ||
88
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
89
+ WHEN pulp_id ~ '/content/ostree/refs/' THEN
90
+ 'prn:ostree.ostreeref:' ||
91
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
92
+ ELSE NULL
93
+ END"
94
+ )
95
+ end
96
+
97
+ # Module Streams - Process in batches due to potentially large number of records
98
+ Katello::ModuleStream.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
99
+ batch.update_all(
100
+ "pulp_prn = CASE
101
+ WHEN pulp_id ~ '/content/rpm/modulemds/' THEN
102
+ 'prn:rpm.modulemd:' ||
103
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
104
+ ELSE NULL
105
+ END"
106
+ )
107
+ end
108
+
109
+ # Docker Manifest Lists - Process in batches due to potentially large number of records
110
+ Katello::DockerManifestList.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
111
+ batch.update_all(
112
+ "pulp_prn = CASE
113
+ WHEN pulp_id ~ '/content/container/manifests/' THEN
114
+ 'prn:container.manifest:' ||
115
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
116
+ ELSE NULL
117
+ END"
118
+ )
119
+ end
120
+
121
+ # Docker Manifests - Process in batches due to potentially large number of records
122
+ Katello::DockerManifest.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
123
+ batch.update_all(
124
+ "pulp_prn = CASE
125
+ WHEN pulp_id ~ '/content/container/manifests/' THEN
126
+ 'prn:container.manifest:' ||
127
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
128
+ ELSE NULL
129
+ END"
130
+ )
131
+ end
132
+
133
+ # Docker Tags - Process in batches due to potentially large number of records
134
+ Katello::DockerTag.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
135
+ batch.update_all(
136
+ "pulp_prn = CASE
137
+ WHEN pulp_id ~ '/content/container/tags/' THEN
138
+ 'prn:container.tag:' ||
139
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
140
+ ELSE NULL
141
+ END"
142
+ )
143
+ end
144
+
145
+ # RPMs - Process in batches due to potentially millions of records
146
+ Katello::Rpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
147
+ batch.update_all(
148
+ "pulp_prn = CASE
149
+ WHEN pulp_id ~ '/content/rpm/packages/' THEN
150
+ 'prn:rpm.package:' ||
151
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
152
+ ELSE NULL
153
+ END"
154
+ )
155
+ end
156
+
157
+ # SRPMs - Process in batches due to potentially large number of records
158
+ Katello::Srpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
159
+ batch.update_all(
160
+ "pulp_prn = CASE
161
+ WHEN pulp_id ~ '/content/rpm/packages/' THEN
162
+ 'prn:rpm.package:' ||
163
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
164
+ ELSE NULL
165
+ END"
166
+ )
167
+ end
168
+
169
+ # Files (FileUnit uses table_name 'katello_files') - Process in batches due to potentially large number of records
170
+ Katello::FileUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
171
+ batch.update_all(
172
+ "pulp_prn = CASE
173
+ WHEN pulp_id ~ '/content/file/files/' THEN
174
+ 'prn:file.filecontent:' ||
175
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
176
+ ELSE NULL
177
+ END"
178
+ )
179
+ end
180
+
181
+ # Package Groups - Process in batches due to potentially large number of records
182
+ Katello::PackageGroup.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
183
+ batch.update_all(
184
+ "pulp_prn = CASE
185
+ WHEN pulp_id ~ '/content/rpm/packagegroups/' THEN
186
+ 'prn:rpm.packagegroup:' ||
187
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
188
+ ELSE NULL
189
+ END"
190
+ )
191
+ end
192
+
193
+ # Debs - Process in batches due to potentially large number of records
194
+ Katello::Deb.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
195
+ batch.update_all(
196
+ "pulp_prn = CASE
197
+ WHEN pulp_id ~ '/content/deb/packages/' THEN
198
+ 'prn:deb.package:' ||
199
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
200
+ ELSE NULL
201
+ END"
202
+ )
203
+ end
204
+
205
+ # Distribution References - prn
206
+ Katello::Pulp3::DistributionReference.where.not(href: nil).update_all(
207
+ "prn = CASE
208
+ WHEN href ~ '/distributions/rpm/rpm/' THEN
209
+ 'prn:rpm.rpmdistribution:' ||
210
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
211
+ WHEN href ~ '/distributions/deb/apt/' THEN
212
+ 'prn:deb.aptdistribution:' ||
213
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
214
+ WHEN href ~ '/distributions/container/container/' THEN
215
+ 'prn:container.containerdistribution:' ||
216
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
217
+ WHEN href ~ '/distributions/ansible/ansible/' THEN
218
+ 'prn:ansible.ansibledistribution:' ||
219
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
220
+ WHEN href ~ '/distributions/python/pypi/' THEN
221
+ 'prn:python.pythondistribution:' ||
222
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
223
+ WHEN href ~ '/distributions/file/file/' THEN
224
+ 'prn:file.filedistribution:' ||
225
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
226
+ WHEN href ~ '/distributions/ostree/ostree/' THEN
227
+ 'prn:ostree.ostreedistribution:' ||
228
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
229
+ ELSE NULL
230
+ END"
231
+ )
232
+
233
+ # Distribution References - content_guard_prn
234
+ Katello::Pulp3::DistributionReference.where.not(content_guard_href: nil).update_all(
235
+ "content_guard_prn = CASE
236
+ WHEN content_guard_href ~ '/contentguards/certguard/rhsm/' THEN
237
+ 'prn:certguard.rhsmcertguard:' ||
238
+ regexp_replace(content_guard_href, '^.*/([^/]+)/?$', '\\1')
239
+ ELSE NULL
240
+ END"
241
+ )
242
+
243
+ # Repository References - repository_prn
244
+ Katello::Pulp3::RepositoryReference.where.not(repository_href: nil).update_all(
245
+ "repository_prn = CASE
246
+ WHEN repository_href ~ '/repositories/rpm/rpm/' THEN
247
+ 'prn:rpm.rpmrepository:' ||
248
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
249
+ WHEN repository_href ~ '/repositories/deb/apt/' THEN
250
+ 'prn:deb.aptrepository:' ||
251
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
252
+ WHEN repository_href ~ '/repositories/container/container/' THEN
253
+ 'prn:container.containerrepository:' ||
254
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
255
+ WHEN repository_href ~ '/repositories/ansible/ansible/' THEN
256
+ 'prn:ansible.ansiblerepository:' ||
257
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
258
+ WHEN repository_href ~ '/repositories/python/python/' THEN
259
+ 'prn:python.pythonrepository:' ||
260
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
261
+ WHEN repository_href ~ '/repositories/file/file/' THEN
262
+ 'prn:file.filerepository:' ||
263
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
264
+ WHEN repository_href ~ '/repositories/ostree/ostree/' THEN
265
+ 'prn:ostree.ostreerepository:' ||
266
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
267
+ ELSE NULL
268
+ END"
269
+ )
270
+
271
+ # Repository Errata - erratum_prn
272
+ Katello::RepositoryErratum.where.not(erratum_pulp3_href: nil).update_all(
273
+ "erratum_prn = CASE
274
+ WHEN erratum_pulp3_href ~ '/content/rpm/advisories/' THEN
275
+ 'prn:rpm.updaterecord:' ||
276
+ regexp_replace(erratum_pulp3_href, '^.*/([^/]+)/?$', '\\1')
277
+ ELSE NULL
278
+ END"
279
+ )
280
+
281
+ # Smart Proxy Alternate Content Sources - remote_prn
282
+ Katello::SmartProxyAlternateContentSource.where.not(remote_href: nil).update_all(
283
+ "remote_prn = CASE
284
+ WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
285
+ 'prn:rpm.rpmremote:' ||
286
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
287
+ WHEN remote_href ~ '/remotes/rpm/uln/' THEN
288
+ 'prn:rpm.ulnremote:' ||
289
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
290
+ WHEN remote_href ~ '/remotes/deb/apt/' THEN
291
+ 'prn:deb.aptremote:' ||
292
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
293
+ WHEN remote_href ~ '/remotes/container/container/' THEN
294
+ 'prn:container.containerremote:' ||
295
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
296
+ WHEN remote_href ~ '/remotes/ansible/collection/' THEN
297
+ 'prn:ansible.collectionremote:' ||
298
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
299
+ WHEN remote_href ~ '/remotes/python/python/' THEN
300
+ 'prn:python.pythonremote:' ||
301
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
302
+ WHEN remote_href ~ '/remotes/file/file/' THEN
303
+ 'prn:file.fileremote:' ||
304
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
305
+ ELSE NULL
306
+ END"
307
+ )
308
+
309
+ # Smart Proxy Alternate Content Sources - alternate_content_source_prn
310
+ Katello::SmartProxyAlternateContentSource.where.not(alternate_content_source_href: nil).update_all(
311
+ "alternate_content_source_prn = CASE
312
+ WHEN alternate_content_source_href ~ '/acs/rpm/rpm/' THEN
313
+ 'prn:rpm.rpmalternatecontentsource:' ||
314
+ regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
315
+ WHEN alternate_content_source_href ~ '/acs/file/file/' THEN
316
+ 'prn:file.filealternatecontentsource:' ||
317
+ regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
318
+ ELSE NULL
319
+ END"
320
+ )
321
+
322
+ # # Add NOT NULL constraints to PRN fields that correspond to required href fields
323
+ # # These constraints match the NOT NULL constraints on their corresponding href fields
324
+ # change_column_null :katello_content_guards, :pulp_prn, false
325
+ # change_column_null :katello_repository_references, :repository_prn, false
326
+ #
327
+ # # Add NOT NULL constraints to all pulp_prn fields for content tables
328
+ # change_column_null :katello_ansible_collections, :pulp_prn, false
329
+ # change_column_null :katello_generic_content_units, :pulp_prn, false
330
+ # change_column_null :katello_module_streams, :pulp_prn, false
331
+ # change_column_null :katello_docker_manifest_lists, :pulp_prn, false
332
+ # change_column_null :katello_docker_manifests, :pulp_prn, false
333
+ # change_column_null :katello_docker_tags, :pulp_prn, false
334
+ # change_column_null :katello_rpms, :pulp_prn, false
335
+ # change_column_null :katello_srpms, :pulp_prn, false
336
+ # change_column_null :katello_files, :pulp_prn, false
337
+ # change_column_null :katello_package_groups, :pulp_prn, false
338
+ # change_column_null :katello_debs, :pulp_prn, false
339
+ #
340
+ # # Add unique indexes for all pulp_prn fields for content tables
341
+ # add_index :katello_ansible_collections, :pulp_prn, unique: true
342
+ # add_index :katello_generic_content_units, :pulp_prn, unique: true
343
+ # add_index :katello_module_streams, :pulp_prn, unique: true
344
+ # add_index :katello_docker_manifest_lists, :pulp_prn, unique: true
345
+ # add_index :katello_docker_manifests, :pulp_prn, unique: true
346
+ # add_index :katello_docker_tags, :pulp_prn, unique: true
347
+ # add_index :katello_rpms, :pulp_prn, unique: true
348
+ # add_index :katello_srpms, :pulp_prn, unique: true
349
+ # add_index :katello_files, :pulp_prn, unique: true
350
+ # add_index :katello_package_groups, :pulp_prn, unique: true
351
+ # add_index :katello_debs, :pulp_prn, unique: true
352
+ end
353
+
354
+ def down
355
+ # # Remove unique indexes before clearing data
356
+ # remove_index :katello_ansible_collections, :pulp_prn
357
+ # remove_index :katello_generic_content_units, :pulp_prn
358
+ # remove_index :katello_module_streams, :pulp_prn
359
+ # remove_index :katello_docker_manifest_lists, :pulp_prn
360
+ # remove_index :katello_docker_manifests, :pulp_prn
361
+ # remove_index :katello_docker_tags, :pulp_prn
362
+ # remove_index :katello_rpms, :pulp_prn
363
+ # remove_index :katello_srpms, :pulp_prn
364
+ # remove_index :katello_files, :pulp_prn
365
+ # remove_index :katello_package_groups, :pulp_prn
366
+ # remove_index :katello_debs, :pulp_prn
367
+ #
368
+ # # Remove NOT NULL constraints before clearing data
369
+ # change_column_null :katello_content_guards, :pulp_prn, true
370
+ # change_column_null :katello_repository_references, :repository_prn, true
371
+ # change_column_null :katello_ansible_collections, :pulp_prn, true
372
+ # change_column_null :katello_generic_content_units, :pulp_prn, true
373
+ # change_column_null :katello_module_streams, :pulp_prn, true
374
+ # change_column_null :katello_docker_manifest_lists, :pulp_prn, true
375
+ # change_column_null :katello_docker_manifests, :pulp_prn, true
376
+ # change_column_null :katello_docker_tags, :pulp_prn, true
377
+ # change_column_null :katello_rpms, :pulp_prn, true
378
+ # change_column_null :katello_srpms, :pulp_prn, true
379
+ # change_column_null :katello_files, :pulp_prn, true
380
+ # change_column_null :katello_package_groups, :pulp_prn, true
381
+ # change_column_null :katello_debs, :pulp_prn, true
382
+
383
+ # Clear all PRN fields
384
+ execute "UPDATE katello_content_guards SET pulp_prn = NULL"
385
+ execute "UPDATE katello_repositories SET remote_prn = NULL, publication_prn = NULL, version_prn = NULL"
386
+ execute "UPDATE katello_ansible_collections SET pulp_prn = NULL"
387
+ execute "UPDATE katello_generic_content_units SET pulp_prn = NULL"
388
+ execute "UPDATE katello_module_streams SET pulp_prn = NULL"
389
+ execute "UPDATE katello_docker_manifest_lists SET pulp_prn = NULL"
390
+ execute "UPDATE katello_docker_manifests SET pulp_prn = NULL"
391
+ execute "UPDATE katello_docker_tags SET pulp_prn = NULL"
392
+ execute "UPDATE katello_rpms SET pulp_prn = NULL"
393
+ execute "UPDATE katello_srpms SET pulp_prn = NULL"
394
+ execute "UPDATE katello_files SET pulp_prn = NULL"
395
+ execute "UPDATE katello_package_groups SET pulp_prn = NULL"
396
+ execute "UPDATE katello_debs SET pulp_prn = NULL"
397
+ execute "UPDATE katello_distribution_references SET prn = NULL, content_guard_prn = NULL"
398
+ execute "UPDATE katello_repository_references SET repository_prn = NULL"
399
+ execute "UPDATE katello_repository_errata SET erratum_prn = NULL"
400
+ execute "UPDATE katello_smart_proxy_alternate_content_sources SET remote_prn = NULL, alternate_content_source_prn = NULL"
401
+ end
402
+ end
403
+ # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
@@ -0,0 +1,5 @@
1
+ class RemoveAutoAttachFromActivationKeys < ActiveRecord::Migration[6.1]
2
+ def change
3
+ remove_column :katello_activation_keys, :auto_attach, :boolean
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveAutohealFromSubscriptionFacets < ActiveRecord::Migration[6.1]
2
+ def change
3
+ remove_column :katello_subscription_facets, :autoheal, :boolean
4
+ end
5
+ end
@@ -11,5 +11,7 @@ UpgradeTask.define_tasks(:katello) do
11
11
  {:name => 'katello:upgrades:4.8:fix_incorrect_providers'},
12
12
  {:name => 'katello:upgrades:4.8:regenerate_imported_repository_metadata'},
13
13
  {:name => 'katello:upgrades:4.12:update_content_access_modes'},
14
+ {:name => 'katello:upgrades:4.19:populate_repository_version_prns'},
15
+ {:name => 'katello:upgrades:4.19:enable_structured_apt_for_deb', :long_running => true, :skip_failure => true},
14
16
  ]
15
17
  end
@@ -1,11 +1,11 @@
1
1
  #
2
2
  # Translators:
3
- # Efstathios Iosifidis <iefstathios@gmail.com>, 2023
3
+ # Efstathios Iosifidis <eiosifidis@gmail.com>, 2023
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: \n"
8
- "Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2023\n"
8
+ "Last-Translator: Efstathios Iosifidis <eiosifidis@gmail.com>, 2023\n"
9
9
  "Language-Team: Greek (https://app.transifex.com/foreman/teams/114/el/)\n"
10
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -10,11 +10,12 @@
10
10
  # Baptiste Agasse <baptiste.agasse@gmail.com>, 2023
11
11
  # Bryan Kearney <bryan.kearney@gmail.com>, 2025
12
12
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
13
+ # Ondřej Gajdušek, 2025
13
14
  #
14
15
  msgid ""
15
16
  msgstr ""
16
17
  "Project-Id-Version: \n"
17
- "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025\n"
18
+ "Last-Translator: Ondřej Gajdušek, 2025\n"
18
19
  "Language-Team: French (https://app.transifex.com/foreman/teams/114/fr/)\n"
19
20
  "Content-Type: text/plain; charset=UTF-8\n"
20
21
  "Content-Transfer-Encoding: 8bit\n"
@@ -331,6 +332,8 @@ msgid ""
331
332
  "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
332
333
  " Host' | translate}} </span>"
333
334
  msgstr ""
335
+ "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
336
+ " Host' | translate}} </span>"
334
337
 
335
338
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
336
339
  msgid "1 Content Host"
@@ -3604,6 +3607,8 @@ msgid ""
3604
3607
  "Please select a lifecycle environment. Lifecycle environment and content "
3605
3608
  "view must be provided together."
3606
3609
  msgstr ""
3610
+ "Veuillez sélectionner un environnement de cycle de vie. L'environnement de "
3611
+ "cycle de vie et la vue de contenu doivent être fournis ensemble."
3607
3612
 
3608
3613
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3609
3614
  msgid "Please select an environment."
@@ -4,11 +4,12 @@
4
4
  # Amit Upadhye <aupadhye@redhat.com>, 2023
5
5
  # Bryan Kearney <bryan.kearney@gmail.com>, 2023
6
6
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
7
+ # Ondřej Gajdušek, 2025
7
8
  #
8
9
  msgid ""
9
10
  msgstr ""
10
11
  "Project-Id-Version: \n"
11
- "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025\n"
12
+ "Last-Translator: Ondřej Gajdušek, 2025\n"
12
13
  "Language-Team: Japanese (https://app.transifex.com/foreman/teams/114/ja/)\n"
13
14
  "Content-Type: text/plain; charset=UTF-8\n"
14
15
  "Content-Transfer-Encoding: 8bit\n"
@@ -314,6 +315,8 @@ msgid ""
314
315
  "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
315
316
  " Host' | translate}} </span>"
316
317
  msgstr ""
318
+ "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
319
+ " Host' | translate}} </span>"
317
320
 
318
321
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
319
322
  msgid "1 Content Host"
@@ -3367,7 +3370,7 @@ msgstr "コンテンツビューが選択されていることを確認してく
3367
3370
  msgid ""
3368
3371
  "Please select a lifecycle environment. Lifecycle environment and content "
3369
3372
  "view must be provided together."
3370
- msgstr ""
3373
+ msgstr "ライフサイクル環境を選択してください。ライフサイクル環境とコンテンツビューは一緒に提供する必要があります。"
3371
3374
 
3372
3375
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3373
3376
  msgid "Please select an environment."
@@ -4,11 +4,12 @@
4
4
  # 0868a4d1af5275b3f70b0a6dac4c99a4, 2023
5
5
  # Bryan Kearney <bryan.kearney@gmail.com>, 2023
6
6
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
7
+ # Ondřej Gajdušek, 2025
7
8
  #
8
9
  msgid ""
9
10
  msgstr ""
10
11
  "Project-Id-Version: \n"
11
- "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025\n"
12
+ "Last-Translator: Ondřej Gajdušek, 2025\n"
12
13
  "Language-Team: Korean (https://app.transifex.com/foreman/teams/114/ko/)\n"
13
14
  "Content-Type: text/plain; charset=UTF-8\n"
14
15
  "Content-Transfer-Encoding: 8bit\n"
@@ -310,6 +311,8 @@ msgid ""
310
311
  "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
311
312
  " Host' | translate}} </span>"
312
313
  msgstr ""
314
+ "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
315
+ " Host' | translate}} </span>"
313
316
 
314
317
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
315
318
  msgid "1 Content Host"
@@ -3360,7 +3363,7 @@ msgstr "컨텐츠 보기가 선택되어 있는지 확인하십시오."
3360
3363
  msgid ""
3361
3364
  "Please select a lifecycle environment. Lifecycle environment and content "
3362
3365
  "view must be provided together."
3363
- msgstr ""
3366
+ msgstr "라이프사이클 환경을 선택하세요. 라이프사이클 환경과 콘텐츠 뷰는 함께 제공되어야 합니다."
3364
3367
 
3365
3368
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3366
3369
  msgid "Please select an environment."
@@ -6,11 +6,12 @@
6
6
  # Bryan Kearney <bryan.kearney@gmail.com>, 2023
7
7
  # Amit Upadhye <aupadhye@redhat.com>, 2025
8
8
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
9
+ # Ondřej Gajdušek, 2025
9
10
  #
10
11
  msgid ""
11
12
  msgstr ""
12
13
  "Project-Id-Version: \n"
13
- "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025\n"
14
+ "Last-Translator: Ondřej Gajdušek, 2025\n"
14
15
  "Language-Team: Chinese (China) (https://app.transifex.com/foreman/teams/114/zh_CN/)\n"
15
16
  "Content-Type: text/plain; charset=UTF-8\n"
16
17
  "Content-Transfer-Encoding: 8bit\n"
@@ -310,6 +311,8 @@ msgid ""
310
311
  "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
311
312
  " Host' | translate}} </span>"
312
313
  msgstr ""
314
+ "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content"
315
+ " Host' | translate}} </span>"
313
316
 
314
317
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
315
318
  msgid "1 Content Host"
@@ -3320,7 +3323,7 @@ msgstr "请确保选择了内容视图。"
3320
3323
  msgid ""
3321
3324
  "Please select a lifecycle environment. Lifecycle environment and content "
3322
3325
  "view must be provided together."
3323
- msgstr ""
3326
+ msgstr "请选择一个生命周期环境。生命周期环境和内容视图必须一起提供。"
3324
3327
 
3325
3328
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3326
3329
  msgid "Please select an environment."