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
@@ -5,7 +5,7 @@ module Katello
5
5
  CONTENT_TYPE = "rpm".freeze
6
6
  PULPCORE_CONTENT_TYPE = "rpm.package".freeze
7
7
 
8
- PULP_INDEXED_FIELDS = %w(pulp_href name version release arch epoch summary is_modular rpm_sourcerpm location_href pkgId).freeze
8
+ PULP_INDEXED_FIELDS = %w(pulp_href prn name version release arch epoch summary is_modular rpm_sourcerpm location_href pkgId).freeze
9
9
 
10
10
  lazy_accessor :description, :license, :buildhost, :vendor, :relativepath, :children, :checksumtype,
11
11
  :changelog, :group, :size, :url, :build_time, :group,
@@ -90,7 +90,8 @@ module Katello
90
90
  custom_json = {}
91
91
  custom_json['modular'] = unit['is_modular']
92
92
  custom_json['pulp_id'] = unit['pulp_href']
93
- (PULP_INDEXED_FIELDS - ['is_modular', 'pulp_href', 'rpm_sourcerpm', 'pkgId', 'location_href']).
93
+ custom_json['pulp_prn'] = unit['prn'] # Also store PRN alongside pulp_id
94
+ (PULP_INDEXED_FIELDS - ['is_modular', 'pulp_href', 'prn', 'rpm_sourcerpm', 'pkgId', 'location_href']).
94
95
  each { |field| custom_json[field] = unit[field] }
95
96
  custom_json['release_sortable'] = Util::Package.sortable_version(unit['release'])
96
97
  custom_json['version_sortable'] = Util::Package.sortable_version(unit['version'])
@@ -6,7 +6,7 @@ module Katello
6
6
 
7
7
  CONTENT_TYPE = "srpm".freeze
8
8
 
9
- PULP_INDEXED_FIELDS = %w(pulp_href name version release arch epoch summary location_href pkgId).freeze
9
+ PULP_INDEXED_FIELDS = %w(pulp_href prn name version release arch epoch summary location_href pkgId).freeze
10
10
 
11
11
  lazy_accessor :pulp_facts, :initializer => :backend_data
12
12
 
@@ -68,7 +68,8 @@ module Katello
68
68
  def self.generate_model_row(unit)
69
69
  custom_json = {}
70
70
  custom_json['pulp_id'] = unit['pulp_href']
71
- (PULP_INDEXED_FIELDS - ['pulp_href', 'pkgId', 'location_href']).
71
+ custom_json['pulp_prn'] = unit['prn']
72
+ (PULP_INDEXED_FIELDS - ['pulp_href', 'prn', 'pkgId', 'location_href']).
72
73
  each { |field| custom_json[field] = unit[field] }
73
74
  custom_json['release_sortable'] = Util::Package.sortable_version(unit['release'])
74
75
  custom_json['version_sortable'] = Util::Package.sortable_version(unit['version'])
@@ -55,7 +55,7 @@ module Katello
55
55
  end
56
56
 
57
57
  def done?
58
- task_group_data['all_tasks_dispatched'] == true && IN_PROGRESS_STATES.all? { |state| task_group_data[state] == 0 }
58
+ IN_PROGRESS_STATES.all? { |state| task_group_data[state] == 0 }
59
59
  end
60
60
 
61
61
  def group_progress_reports
@@ -125,12 +125,10 @@ module Katello
125
125
  # * organization_destroy: destroy some data associated with host, but
126
126
  # leave items alone that will be removed later as part of org destroy
127
127
  # * unregistering: unregister the host but don't destroy it
128
- # * keep_kickstart_repository: ensure the KS repo ID is not set to nil
129
128
  def unregister_host(host, options = {})
130
129
  organization_destroy = options.fetch(:organization_destroy, false)
131
130
  unregistering = options.fetch(:unregistering, false)
132
- keep_kickstart_repository = options.fetch(:keep_kickstart_repository, false)
133
-
131
+ preserve_for_provisioning = options.fetch(:preserve_for_provisioning, false)
134
132
  # if the first operation fails, just raise the error since there's nothing to clean up yet.
135
133
  candlepin_consumer_destroy(host.subscription_facet.uuid) if !organization_destroy && host.subscription_facet.try(:uuid)
136
134
 
@@ -140,14 +138,10 @@ module Katello
140
138
  host.subscription_facet.try(:destroy!)
141
139
 
142
140
  if unregistering
143
- if keep_kickstart_repository
144
- remove_host_artifacts(host, kickstart_repository_id: host&.content_facet&.kickstart_repository_id)
145
- else
146
- remove_host_artifacts(host)
147
- end
141
+ remove_host_artifacts(host, preserve_for_provisioning: preserve_for_provisioning)
148
142
  elsif organization_destroy
149
143
  host.content_facet.try(:destroy!)
150
- remove_host_artifacts(host, clear_content_facet: false)
144
+ remove_host_artifacts(host, clear_content_facet: false, preserve_for_provisioning: preserve_for_provisioning)
151
145
  else
152
146
  host.content_facet.try(:destroy!)
153
147
  destroy_host_record(host.id)
@@ -159,10 +153,11 @@ module Katello
159
153
  new_host = host.new_record?
160
154
  unless new_host
161
155
  host.save!
162
- # Keep the kickstart repository ID so the host's Medium isn't unset
163
- # Important for registering a host during provisioning
156
+ # Unregister the host before re-registering
157
+ # The retain_build_profile_upon_unregistration setting controls whether
158
+ # provisioning information (including kickstart repository) is preserved
164
159
  begin
165
- unregister_host(host, :unregistering => true, :keep_kickstart_repository => true)
160
+ unregister_host(host, :unregistering => true, :preserve_for_provisioning => true)
166
161
  rescue RestClient::Gone
167
162
  Rails.logger.debug("Host %s has been removed in preparation for reregistration" % host&.name)
168
163
  end
@@ -319,15 +314,22 @@ module Katello
319
314
  subscription_facet
320
315
  end
321
316
 
322
- def remove_host_artifacts(host, clear_content_facet: true, kickstart_repository_id: nil)
323
- Rails.logger.debug "Host ID: #{host.id}, clear_content_facet: #{clear_content_facet}, kickstart_repository_id: #{kickstart_repository_id}"
317
+ def remove_host_artifacts(host, clear_content_facet: true, preserve_for_provisioning: false)
318
+ Rails.logger.debug "Host ID: #{host.id}, clear_content_facet: #{clear_content_facet}"
324
319
  if host.content_facet && clear_content_facet
325
320
  host.content_facet.bound_repositories = []
326
321
  host.content_facet.applicable_errata = []
327
322
  host.content_facet.uuid = nil
328
- host.content_facet.content_view_environments = []
329
- host.content_facet.content_source = ::SmartProxy.pulp_primary
330
- host.content_facet.kickstart_repository_id = kickstart_repository_id
323
+
324
+ # Clear or retain provisioning information based on setting
325
+ unless Setting[:retain_build_profile_upon_unregistration] || preserve_for_provisioning
326
+ # Clear provisioning information if setting is disabled
327
+ host.content_facet.content_view_environments = []
328
+ host.content_facet.kickstart_repository_id = nil
329
+ host.content_facet.content_source = ::SmartProxy.pulp_primary
330
+ end
331
+ # If setting is enabled, keep current values (CVEs, kickstart_repository_id, content_source)
332
+
331
333
  host.content_facet.save!
332
334
  Rails.logger.debug "remove_host_artifacts: marking CVEs unchanged to prevent backend update"
333
335
  host.content_facet.mark_cves_unchanged
@@ -31,14 +31,16 @@ module Katello
31
31
  end
32
32
 
33
33
  def enabled_repository_types(update = true)
34
- if update && pulp_primary&.has_feature?(PULP3_FEATURE) && pulp_primary&.capabilities(PULP3_FEATURE)&.empty?
35
- fix_pulp3_capabilities
36
- end
34
+ return @enabled_repository_types unless update
37
35
 
38
36
  disabled_types = @defined_repository_types.keys - @enabled_repository_types.keys
39
- if update && disabled_types.present?
40
- disabled_types.each { |repo_type| update_enabled_repository_type(repo_type.to_s) }
37
+ return @enabled_repository_types if disabled_types.empty?
38
+
39
+ if pulp_primary&.has_feature?(PULP3_FEATURE) && pulp_primary&.capabilities(PULP3_FEATURE)&.empty?
40
+ fix_pulp3_capabilities
41
41
  end
42
+
43
+ disabled_types.each { |repo_type| update_enabled_repository_type(repo_type.to_s) }
42
44
  @enabled_repository_types
43
45
  end
44
46
 
@@ -1,6 +1,5 @@
1
1
  module Katello
2
2
  class SmartProxyHelper
3
- include ::Actions::Helpers::RollingCVRepos
4
3
  attr_accessor :smart_proxy
5
4
 
6
5
  def initialize(smart_proxy)
@@ -40,11 +39,7 @@ module Katello
40
39
  def combined_repos_available_to_capsule(environment = nil, content_view = nil, repository = nil)
41
40
  lifecycle_environment_check(environment, repository)
42
41
  if repository && !library_export_repo(repository)
43
- if repository.library_instance?
44
- [repository] + find_related_rolling_repos(repository)
45
- else
46
- [repository]
47
- end
42
+ [repository]
48
43
  else
49
44
  repositories_available_to_capsule(environment, content_view)
50
45
  end
@@ -9,7 +9,12 @@ feature: katello_upload_profile
9
9
  %>
10
10
  #!/bin/sh
11
11
  <% if @host.operatingsystem.family == 'Redhat' -%>
12
+ # Use dnf for EL 8+ and use yum for below
13
+ <% if @host.operatingsystem.major.to_i >= 8 -%>
12
14
  dnf uploadprofile --force-upload
15
+ <% else -%>
16
+ yum uploadprofile --force-upload
17
+ <% end -%>
13
18
  <% elsif @host.operatingsystem.family == 'Suse' -%>
14
19
  katello-package-upload --force
15
20
  <% else -%>
@@ -1,7 +1,7 @@
1
1
  extends 'katello/api/v2/common/org_reference'
2
2
  extends 'katello/api/v2/common/timestamps'
3
3
 
4
- attributes :id, :name, :description, :unlimited_hosts, :auto_attach, :content_view_environment_labels
4
+ attributes :id, :name, :description, :unlimited_hosts, :content_view_environment_labels
5
5
 
6
6
  node :multi_content_view_environment do |ak|
7
7
  ak.multi_content_view_environment?
@@ -52,6 +52,7 @@ node :environments do |cv|
52
52
  }
53
53
  end
54
54
  end
55
+ attributes :environment_ids
55
56
 
56
57
  if @object.composite?
57
58
  child :component_repositories => :repositories do
@@ -0,0 +1,6 @@
1
+ object false
2
+
3
+ extends "katello/api/v2/common/metadata"
4
+ child @collection[:results] => :results do |_results|
5
+ attributes :name, :id
6
+ end
@@ -16,6 +16,26 @@ end
16
16
  child :docker_manifest => :manifest do
17
17
  attributes :pulp_id => :id
18
18
  attributes :schema_version, :digest, :manifest_type
19
+ attributes :labels, :annotations
20
+ attributes :is_bootable, :is_flatpak
21
+ attributes :created_at, :updated_at
22
+
23
+ node :manifests, :if => lambda { |m| m.manifest_type == 'list' } do |manifest|
24
+ manifest.docker_manifests.map do |child_manifest|
25
+ {
26
+ :id => child_manifest.id,
27
+ :digest => child_manifest.digest,
28
+ :schema_version => child_manifest.schema_version,
29
+ :manifest_type => child_manifest.manifest_type,
30
+ :labels => child_manifest.labels,
31
+ :annotations => child_manifest.annotations,
32
+ :is_bootable => child_manifest.is_bootable,
33
+ :is_flatpak => child_manifest.is_flatpak,
34
+ :created_at => child_manifest.created_at,
35
+ :updated_at => child_manifest.updated_at,
36
+ }
37
+ end
38
+ end
19
39
  end
20
40
 
21
41
  if @organization
@@ -25,6 +45,9 @@ if @organization
25
45
  :id => repo.id,
26
46
  :name => repo.name,
27
47
  :full_path => repo.full_path,
48
+ :library_instance => repo.library_instance?,
49
+ :product_id => repo.product&.id,
50
+ :product_name => repo.product&.name,
28
51
  }
29
52
  attributes
30
53
  end
@@ -41,6 +64,15 @@ if @organization
41
64
  else
42
65
  child :repositories => :repositories do
43
66
  attributes :id, :name, :full_path
67
+ node :library_instance do |repo|
68
+ repo.library_instance?
69
+ end
70
+ node :product_id do |repo|
71
+ repo.product&.id
72
+ end
73
+ node :product_name do |repo|
74
+ repo.product&.name
75
+ end
44
76
  end
45
77
 
46
78
  child :product => :product do
@@ -2,11 +2,6 @@ object @resource
2
2
 
3
3
  extends 'katello/api/v2/docker_tags/base'
4
4
 
5
- child :docker_manifest => :manifest do
6
- attributes :uuid => :id
7
- attributes :schema_version, :digest, :manifest_type
8
- end
9
-
10
5
  child :related_tags => :related_tags do
11
6
  attributes :id, :name
12
7
  end
@@ -3,6 +3,12 @@ object false
3
3
  extends "katello/api/v2/common/index"
4
4
  extends 'katello/api/v2/flatpak_remotes/permissions'
5
5
 
6
+ node :has_redhat_flatpak_remote do
7
+ User.as_anonymous_admin do
8
+ ::Katello::FlatpakRemote.unscoped.where("url LIKE ?", "%flatpaks.redhat.io%").exists?
9
+ end
10
+ end
11
+
6
12
  child @collection[:results] => :results do
7
13
  extends "katello/api/v2/flatpak_remotes/base"
8
14
  end
@@ -0,0 +1,6 @@
1
+ object false
2
+
3
+ extends "katello/api/v2/common/metadata"
4
+ child @collection[:results] => :results do |_results|
5
+ attributes :name, :id
6
+ end
@@ -3,5 +3,5 @@ object false
3
3
  extends "katello/api/v2/common/metadata"
4
4
 
5
5
  node :results do
6
- partial("katello/api/v2/hosts_bulk_actions/erratum", :object => @collection[:results])
6
+ partial("katello/api/v2/hosts_bulk_actions/applicable_erratum", :object => @collection[:results])
7
7
  end
@@ -0,0 +1,9 @@
1
+ extends "katello/api/v2/errata/show"
2
+
3
+ node :applicable_hosts do |erratum|
4
+ erratum.hosts_applicable(params[:organization_id]).where("#{::Host.table_name}.id" => @hosts).
5
+ pluck(:id, :name).
6
+ map { |id, name| {:name => name, :id => id} }
7
+ end
8
+
9
+ node(:affected_hosts_count) { |erratum| erratum.hosts_applicable(params[:organization_id]).where("#{::Host.table_name}.id" => @hosts).count }
@@ -3,5 +3,5 @@ object false
3
3
  extends "katello/api/v2/common/metadata"
4
4
 
5
5
  node :results do
6
- partial("katello/api/v2/hosts_bulk_actions/erratum", :object => @collection[:results])
6
+ partial("katello/api/v2/hosts_bulk_actions/installable_erratum", :object => @collection[:results])
7
7
  end
@@ -1,9 +1,9 @@
1
1
  extends "katello/api/v2/errata/show"
2
2
 
3
3
  node :applicable_hosts do |erratum|
4
- erratum.hosts_available.where("#{::Host.table_name}.id" => @hosts).
5
- select(["#{::Host.table_name}.id", "#{::Host.table_name}.name"]).
6
- collect { |host| {:name => host.name, :id => host.id} }
4
+ erratum.hosts_available(params[:organization_id]).where("#{::Host.table_name}.id" => @hosts).
5
+ pluck(:id, :name).
6
+ map { |id, name| {:name => name, :id => id} }
7
7
  end
8
8
 
9
9
  node(:affected_hosts_count) { |erratum| erratum.hosts_available(params[:organization_id]).where("#{::Host.table_name}.id" => @hosts).count }
@@ -1,4 +1,4 @@
1
- attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autoheal, :registered_at, :registered_through, :purpose_role, :purpose_usage, :hypervisor, :convert2rhel_through_foreman
1
+ attributes :id, :uuid, :last_checkin, :service_level, :release_version, :registered_at, :registered_through, :purpose_role, :purpose_usage, :hypervisor, :convert2rhel_through_foreman
2
2
 
3
3
  child :user => :user do
4
4
  attributes :id, :login
@@ -1,3 +1,4 @@
1
1
  #place where monkey patches are required
2
2
  require 'monkeys/ar_postgres_evr_t'
3
3
  require 'monkeys/remove_hidden_distribution'
4
+ require 'monkeys/fix_rpm_repository_gpgcheck'
@@ -58,8 +58,6 @@ Katello::Engine.routes.draw do
58
58
  match '/product_content' => 'repository_sets#index', :via => :get, :entity => :activation_key
59
59
  match '/content_override' => 'activation_keys#content_override', :via => :put
60
60
  post :copy
61
- put :add_subscriptions
62
- put :remove_subscriptions
63
61
  end
64
62
  match '/releases' => 'activation_keys#available_releases', :via => :get, :on => :member
65
63
  api_resources :host_collections, :only => [:index]
@@ -191,6 +189,8 @@ Katello::Engine.routes.draw do
191
189
  end
192
190
  end
193
191
 
192
+ get "/debs/thindex" => "debs#thindex"
193
+
194
194
  api_resources :debs, :only => [:index, :show] do
195
195
  collection do
196
196
  get :auto_complete_search
@@ -9,7 +9,7 @@ module Katello
9
9
  end
10
10
 
11
11
  Foreman::Application.routes.draw do
12
- override_message = '{"message": "Route overriden by Katello, use the /katello API endpoint instead. See /apidoc for more details."}'
12
+ override_message = '{"message": "Route overridden by Katello, use the /katello API endpoint instead. See /apidoc for more details."}'
13
13
 
14
14
  match "/api/v2/organizations/*all", :to => proc { [404, {}, [override_message]] },
15
15
  :via => :put,
@@ -64,9 +64,6 @@ Foreman::Application.routes.draw do
64
64
  match '/bulk/remove_host_collections' => 'hosts_bulk_actions#bulk_remove_host_collections', :via => :put
65
65
  match '/bulk/remove_host_collections' => 'hosts_bulk_actions#bulk_remove_host_collections', :via => :put
66
66
 
67
- match '/bulk/add_subscriptions' => 'hosts_bulk_actions#add_subscriptions', :via => :put
68
- match '/bulk/remove_subscriptions' => 'hosts_bulk_actions#remove_subscriptions', :via => :put
69
- match '/bulk/auto_attach' => 'hosts_bulk_actions#auto_attach', :via => :put
70
67
  match '/bulk/content_overrides' => 'hosts_bulk_actions#content_overrides', :via => :put
71
68
 
72
69
  match '/bulk/applicable_errata' => 'hosts_bulk_actions#applicable_errata', :via => :post
@@ -82,6 +79,7 @@ Foreman::Application.routes.draw do
82
79
  match '/bulk/change_content_source' => 'hosts_bulk_actions#change_content_source', :via => :put
83
80
  match '/subscriptions/' => 'host_subscriptions#create', :via => :post
84
81
  match '/host_packages/installed_packages' => 'host_packages#installed_packages', :via => :get
82
+ match '/host_debs/installed_debs' => 'host_debs#installed_debs', :via => :get
85
83
  end
86
84
 
87
85
  resources :packages, :only => [:index], :controller => :host_packages do
@@ -98,13 +96,10 @@ Foreman::Application.routes.draw do
98
96
 
99
97
  resources :subscriptions, :only => [:index], :controller => :host_subscriptions do
100
98
  collection do
101
- put :auto_attach
102
99
  match '/product_content' => 'repository_sets#index', :via => :get, :entity => :host
103
100
  get :available_release_versions
104
101
  get :enabled_repositories
105
102
  put :content_override
106
- put :remove_subscriptions
107
- put :add_subscriptions
108
103
  delete :destroy
109
104
  end
110
105
  end
data/config/routes.rb CHANGED
@@ -35,6 +35,8 @@ Katello::Engine.routes.draw do
35
35
 
36
36
  match '/booted_container_images' => 'react#index', :via => [:get]
37
37
 
38
+ match '/container_images' => 'react#index', :via => [:get]
39
+
38
40
  match '/flatpak_remotes' => 'react#index', :via => [:get]
39
41
  match '/flatpak_remotes/*page' => 'react#index', :via => [:get]
40
42
 
@@ -23,7 +23,7 @@ class CreateCdnConfiguration < ActiveRecord::Migration[6.0]
23
23
  ::Organization.all.each do |org|
24
24
  FakeCdnConfiguration.where(
25
25
  organization_id: org.id,
26
- url: org.redhat_provider.repository_url || ::Katello::Resources::CDN::CdnResource.redhat_cdn_url
26
+ url: org.redhat_provider&.repository_url || ::Katello::Resources::CDN::CdnResource.redhat_cdn_url
27
27
  ).first_or_create!
28
28
  end
29
29
 
@@ -0,0 +1,73 @@
1
+ class AddPulpPrnFields < ActiveRecord::Migration[7.0]
2
+ # rubocop:disable Metrics/MethodLength
3
+ def up
4
+ # Tables with pulp_href fields - add pulp_prn field
5
+ add_column :katello_content_guards, :pulp_prn, :string
6
+
7
+ # Tables with pulp_id fields - add pulp_prn field
8
+ add_column :katello_ansible_collections, :pulp_prn, :string
9
+ add_column :katello_generic_content_units, :pulp_prn, :string
10
+ add_column :katello_module_streams, :pulp_prn, :string
11
+ add_column :katello_docker_manifest_lists, :pulp_prn, :string
12
+ add_column :katello_docker_manifests, :pulp_prn, :string
13
+ add_column :katello_docker_tags, :pulp_prn, :string
14
+ add_column :katello_rpms, :pulp_prn, :string
15
+ add_column :katello_srpms, :pulp_prn, :string
16
+ add_column :katello_files, :pulp_prn, :string # FileUnit uses table_name 'katello_files'
17
+ add_column :katello_package_groups, :pulp_prn, :string
18
+ add_column :katello_debs, :pulp_prn, :string
19
+
20
+ # Tables with other href fields - add corresponding _prn fields
21
+ add_column :katello_repositories, :remote_prn, :string
22
+ add_column :katello_repositories, :publication_prn, :string
23
+ add_column :katello_repositories, :version_prn, :string
24
+ add_column :katello_distribution_references, :prn, :string
25
+ add_column :katello_distribution_references, :content_guard_prn, :string
26
+ add_column :katello_repository_references, :repository_prn, :string
27
+ add_column :katello_repository_errata, :erratum_prn, :string
28
+ add_column :katello_smart_proxy_alternate_content_sources, :remote_prn, :string
29
+ add_column :katello_smart_proxy_alternate_content_sources, :alternate_content_source_prn, :string
30
+
31
+ # Add indexes for performance on commonly queried fields
32
+ add_index :katello_content_guards, :pulp_prn
33
+ add_index :katello_repositories, :remote_prn
34
+ add_index :katello_repositories, :publication_prn
35
+ add_index :katello_repositories, :version_prn
36
+ add_index :katello_repository_errata, :erratum_prn
37
+ end
38
+
39
+ def down
40
+ # Remove indexes
41
+ remove_index :katello_content_guards, :pulp_prn
42
+ remove_index :katello_repositories, :remote_prn
43
+ remove_index :katello_repositories, :publication_prn
44
+ remove_index :katello_repositories, :version_prn
45
+ remove_index :katello_repository_errata, :erratum_prn
46
+
47
+ # Remove columns - pulp_prn fields
48
+ remove_column :katello_content_guards, :pulp_prn
49
+ remove_column :katello_ansible_collections, :pulp_prn
50
+ remove_column :katello_generic_content_units, :pulp_prn
51
+ remove_column :katello_module_streams, :pulp_prn
52
+ remove_column :katello_docker_manifest_lists, :pulp_prn
53
+ remove_column :katello_docker_manifests, :pulp_prn
54
+ remove_column :katello_docker_tags, :pulp_prn
55
+ remove_column :katello_rpms, :pulp_prn
56
+ remove_column :katello_srpms, :pulp_prn
57
+ remove_column :katello_files, :pulp_prn
58
+ remove_column :katello_package_groups, :pulp_prn
59
+ remove_column :katello_debs, :pulp_prn
60
+
61
+ # Remove columns - other _prn fields
62
+ remove_column :katello_repositories, :remote_prn
63
+ remove_column :katello_repositories, :publication_prn
64
+ remove_column :katello_repositories, :version_prn
65
+ remove_column :katello_distribution_references, :prn
66
+ remove_column :katello_distribution_references, :content_guard_prn
67
+ remove_column :katello_repository_references, :repository_prn
68
+ remove_column :katello_repository_errata, :erratum_prn
69
+ remove_column :katello_smart_proxy_alternate_content_sources, :remote_prn
70
+ remove_column :katello_smart_proxy_alternate_content_sources, :alternate_content_source_prn
71
+ end
72
+ # rubocop:enable Metrics/MethodLength
73
+ end