katello 4.18.1 → 4.19.0.rc2

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 (388) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/locale/bn/katello.js +379 -109
  3. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +379 -109
  4. data/app/assets/javascripts/katello/locale/ca/katello.js +379 -109
  5. data/app/assets/javascripts/katello/locale/cs/katello.js +380 -110
  6. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +382 -112
  7. data/app/assets/javascripts/katello/locale/de/katello.js +385 -115
  8. data/app/assets/javascripts/katello/locale/de_AT/katello.js +379 -109
  9. data/app/assets/javascripts/katello/locale/de_DE/katello.js +379 -109
  10. data/app/assets/javascripts/katello/locale/el/katello.js +380 -110
  11. data/app/assets/javascripts/katello/locale/en/katello.js +380 -110
  12. data/app/assets/javascripts/katello/locale/en_GB/katello.js +379 -109
  13. data/app/assets/javascripts/katello/locale/en_US/katello.js +379 -109
  14. data/app/assets/javascripts/katello/locale/es/katello.js +383 -113
  15. data/app/assets/javascripts/katello/locale/et_EE/katello.js +379 -109
  16. data/app/assets/javascripts/katello/locale/fr/katello.js +388 -118
  17. data/app/assets/javascripts/katello/locale/gl/katello.js +379 -109
  18. data/app/assets/javascripts/katello/locale/gu/katello.js +379 -109
  19. data/app/assets/javascripts/katello/locale/he_IL/katello.js +379 -109
  20. data/app/assets/javascripts/katello/locale/hi/katello.js +379 -109
  21. data/app/assets/javascripts/katello/locale/id/katello.js +379 -109
  22. data/app/assets/javascripts/katello/locale/it/katello.js +379 -109
  23. data/app/assets/javascripts/katello/locale/ja/katello.js +388 -118
  24. data/app/assets/javascripts/katello/locale/ka/katello.js +385 -115
  25. data/app/assets/javascripts/katello/locale/kn/katello.js +379 -109
  26. data/app/assets/javascripts/katello/locale/ko/katello.js +388 -118
  27. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +379 -109
  28. data/app/assets/javascripts/katello/locale/mr/katello.js +379 -109
  29. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +379 -109
  30. data/app/assets/javascripts/katello/locale/or/katello.js +379 -109
  31. data/app/assets/javascripts/katello/locale/pa/katello.js +379 -109
  32. data/app/assets/javascripts/katello/locale/pl/katello.js +379 -109
  33. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +379 -109
  34. data/app/assets/javascripts/katello/locale/pt/katello.js +379 -109
  35. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +383 -113
  36. data/app/assets/javascripts/katello/locale/ro/katello.js +379 -109
  37. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +379 -109
  38. data/app/assets/javascripts/katello/locale/ru/katello.js +381 -111
  39. data/app/assets/javascripts/katello/locale/sl/katello.js +379 -109
  40. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +379 -109
  41. data/app/assets/javascripts/katello/locale/ta/katello.js +379 -109
  42. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +379 -109
  43. data/app/assets/javascripts/katello/locale/te/katello.js +379 -109
  44. data/app/assets/javascripts/katello/locale/tr/katello.js +379 -109
  45. data/app/assets/javascripts/katello/locale/vi/katello.js +379 -109
  46. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +379 -109
  47. data/app/assets/javascripts/katello/locale/zh/katello.js +379 -109
  48. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +388 -118
  49. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +381 -111
  50. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +41 -12
  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_view_filter_rules_controller.rb +1 -1
  54. data/app/controllers/katello/api/v2/content_views_controller.rb +18 -3
  55. data/app/controllers/katello/api/v2/debs_controller.rb +21 -11
  56. data/app/controllers/katello/api/v2/docker_tags_controller.rb +7 -0
  57. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +21 -19
  58. data/app/controllers/katello/api/v2/host_debs_controller.rb +16 -1
  59. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +3 -60
  60. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +10 -53
  61. data/app/controllers/katello/api/v2/repositories_controller.rb +0 -1
  62. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +10 -0
  63. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +3 -0
  64. data/app/lib/actions/candlepin/activation_key/create.rb +0 -2
  65. data/app/lib/actions/candlepin/activation_key/update.rb +0 -2
  66. data/app/lib/actions/candlepin/product/content_create.rb +3 -5
  67. data/app/lib/actions/candlepin/product/content_update.rb +2 -3
  68. data/app/lib/actions/helpers/rolling_cv_repos.rb +1 -1
  69. data/app/lib/actions/katello/activation_key/create.rb +0 -1
  70. data/app/lib/actions/katello/activation_key/update.rb +0 -2
  71. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -6
  72. data/app/lib/actions/katello/content_credential/update.rb +1 -1
  73. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +18 -24
  74. data/app/lib/actions/katello/content_view/create.rb +9 -4
  75. data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +6 -1
  76. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +16 -11
  77. data/app/lib/actions/katello/content_view/update.rb +34 -7
  78. data/app/lib/actions/katello/product/content_create.rb +2 -2
  79. data/app/lib/actions/katello/product/content_destroy.rb +1 -1
  80. data/app/lib/actions/katello/repository/check_matching_content.rb +1 -1
  81. data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
  82. data/app/lib/actions/katello/repository/create.rb +1 -1
  83. data/app/lib/actions/katello/repository/destroy.rb +4 -4
  84. data/app/lib/actions/katello/repository/finish_upload.rb +1 -1
  85. data/app/lib/actions/katello/repository/sync.rb +1 -1
  86. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +2 -2
  87. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
  88. data/app/lib/actions/pulp3/orchestration/repository/multi_copy_all_units.rb +1 -1
  89. data/app/lib/actions/pulp3/repository/save_publication.rb +3 -1
  90. data/app/lib/actions/pulp3/repository/save_version.rb +45 -24
  91. data/app/lib/actions/pulp3/repository/save_versions.rb +2 -1
  92. data/app/lib/katello/resources/candlepin/activation_key.rb +3 -4
  93. data/app/lib/katello/resources/candlepin/upstream_job.rb +9 -1
  94. data/app/lib/katello/resources/candlepin.rb +4 -0
  95. data/app/models/katello/authorization/repository.rb +17 -4
  96. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -7
  97. data/app/models/katello/content_view_deb_filter.rb +10 -0
  98. data/app/models/katello/content_view_deb_filter_rule.rb +7 -0
  99. data/app/models/katello/deb.rb +10 -10
  100. data/app/models/katello/erratum.rb +1 -1
  101. data/app/models/katello/glue/provider.rb +14 -3
  102. data/app/models/katello/host/content_facet.rb +1 -1
  103. data/app/models/katello/host/subscription_facet.rb +1 -7
  104. data/app/models/katello/product_content.rb +2 -2
  105. data/app/models/katello/repository.rb +4 -23
  106. data/app/models/katello/root_repository.rb +2 -5
  107. data/app/services/katello/candlepin/event_handler.rb +0 -33
  108. data/app/services/katello/candlepin/message_handler.rb +0 -41
  109. data/app/services/katello/content_unit_indexer.rb +59 -13
  110. data/app/services/katello/product_content_finder.rb +5 -4
  111. data/app/services/katello/pulp3/alternate_content_source.rb +2 -2
  112. data/app/services/katello/pulp3/ansible_collection.rb +1 -0
  113. data/app/services/katello/pulp3/api/content_guard.rb +5 -5
  114. data/app/services/katello/pulp3/api/core.rb +10 -0
  115. data/app/services/katello/pulp3/deb.rb +1 -0
  116. data/app/services/katello/pulp3/docker_manifest.rb +1 -0
  117. data/app/services/katello/pulp3/docker_manifest_list.rb +1 -0
  118. data/app/services/katello/pulp3/docker_tag.rb +1 -0
  119. data/app/services/katello/pulp3/file_unit.rb +1 -0
  120. data/app/services/katello/pulp3/generic_content_unit.rb +1 -0
  121. data/app/services/katello/pulp3/module_stream.rb +1 -0
  122. data/app/services/katello/pulp3/package_group.rb +1 -0
  123. data/app/services/katello/pulp3/repository/apt.rb +41 -16
  124. data/app/services/katello/pulp3/repository.rb +59 -10
  125. data/app/services/katello/pulp3/rpm.rb +3 -2
  126. data/app/services/katello/pulp3/srpm.rb +3 -2
  127. data/app/services/katello/pulp3/task_group.rb +1 -1
  128. data/app/services/katello/registration_manager.rb +19 -17
  129. data/app/services/katello/repository_type_manager.rb +7 -5
  130. data/app/services/katello/smart_proxy_helper.rb +1 -6
  131. data/app/views/foreman/job_templates/upload_profile.erb +5 -0
  132. data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -1
  133. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  134. data/app/views/katello/api/v2/debs/thindex.json.rabl +6 -0
  135. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +32 -0
  136. data/app/views/katello/api/v2/docker_tags/show.json.rabl +0 -5
  137. data/app/views/katello/api/v2/flatpak_remotes/index.json.rabl +6 -0
  138. data/app/views/katello/api/v2/host_debs/installed_debs.json.rabl +6 -0
  139. data/app/views/katello/api/v2/hosts_bulk_actions/applicable_errata.json.rabl +1 -1
  140. data/app/views/katello/api/v2/hosts_bulk_actions/applicable_erratum.json.rabl +9 -0
  141. data/app/views/katello/api/v2/hosts_bulk_actions/installable_errata.json.rabl +1 -1
  142. data/app/views/katello/api/v2/hosts_bulk_actions/{erratum.json.rabl → installable_erratum.json.rabl} +3 -3
  143. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  144. data/config/initializers/monkeys.rb +1 -0
  145. data/config/routes/api/v2.rb +2 -2
  146. data/config/routes/overrides.rb +2 -7
  147. data/config/routes.rb +2 -0
  148. data/db/migrate/20211019192121_create_cdn_configuration.katello.rb +1 -1
  149. data/db/migrate/20250912000000_add_pulp_prn_fields.rb +73 -0
  150. data/db/migrate/20250912000001_populate_pulp_prn_fields.rb +403 -0
  151. data/db/migrate/20251009142516_remove_auto_attach_from_activation_keys.rb +5 -0
  152. data/db/migrate/20251009142517_remove_autoheal_from_subscription_facets.rb +5 -0
  153. data/db/seeds.d/111-upgrade_tasks.rb +2 -0
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +10 -0
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +10 -0
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +10 -0
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +10 -0
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +10 -0
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +10 -0
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +10 -0
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +12 -2
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +10 -0
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +10 -0
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +10 -0
  165. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +10 -0
  166. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +10 -0
  167. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +10 -0
  168. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +10 -0
  169. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +10 -0
  170. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +10 -0
  171. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +10 -0
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +10 -0
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +10 -0
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +10 -0
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +10 -0
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +10 -0
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +10 -0
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +10 -0
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +10 -0
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +10 -0
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +10 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +10 -0
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +10 -0
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +10 -0
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +10 -0
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +10 -0
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +10 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +10 -0
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +10 -0
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +10 -0
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +10 -0
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +10 -0
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +10 -0
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +10 -0
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +10 -0
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +10 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +10 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +10 -0
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +10 -0
  200. data/lib/katello/permission_creator.rb +2 -2
  201. data/lib/katello/permissions/host_permissions.rb +0 -6
  202. data/lib/katello/plugin.rb +17 -8
  203. data/lib/katello/tasks/jenkins.rake +1 -1
  204. data/lib/katello/tasks/upgrades/4.19/enable_structured_apt_for_deb.rake +87 -0
  205. data/lib/katello/tasks/upgrades/4.19/populate_repository_version_prns.rake +32 -0
  206. data/lib/katello/version.rb +1 -1
  207. data/lib/monkeys/fix_rpm_repository_gpgcheck.rb +38 -0
  208. data/locale/action_names.rb +0 -6
  209. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/bn/katello.po +379 -109
  211. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/bn_IN/katello.po +379 -109
  213. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  214. data/locale/ca/katello.po +379 -109
  215. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/cs/katello.po +380 -111
  217. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  218. data/locale/cs_CZ/katello.po +382 -112
  219. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  220. data/locale/de/katello.po +386 -116
  221. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/de_AT/katello.po +379 -109
  223. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  224. data/locale/de_DE/katello.po +379 -109
  225. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  226. data/locale/el/katello.po +381 -111
  227. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/en/katello.po +380 -111
  229. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  230. data/locale/en_GB/katello.po +379 -109
  231. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  232. data/locale/en_US/katello.po +379 -109
  233. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/es/katello.po +383 -113
  235. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  236. data/locale/et_EE/katello.po +379 -109
  237. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  238. data/locale/fr/katello.po +389 -119
  239. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/gl/katello.po +379 -109
  241. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  242. data/locale/gu/katello.po +379 -109
  243. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/he_IL/katello.po +379 -109
  245. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  246. data/locale/hi/katello.po +379 -109
  247. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  248. data/locale/id/katello.po +379 -109
  249. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  250. data/locale/it/katello.po +379 -109
  251. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  252. data/locale/ja/katello.po +390 -119
  253. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  254. data/locale/ka/katello.po +385 -115
  255. data/locale/katello.pot +1273 -831
  256. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/kn/katello.po +379 -109
  258. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/ko/katello.po +389 -119
  260. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/ml_IN/katello.po +379 -109
  262. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  263. data/locale/mr/katello.po +379 -109
  264. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/nl_NL/katello.po +379 -109
  266. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  267. data/locale/or/katello.po +379 -109
  268. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  269. data/locale/pa/katello.po +379 -109
  270. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/pl/katello.po +379 -109
  272. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  273. data/locale/pl_PL/katello.po +379 -109
  274. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  275. data/locale/pt/katello.po +379 -109
  276. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  277. data/locale/pt_BR/katello.po +383 -113
  278. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  279. data/locale/ro/katello.po +379 -109
  280. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  281. data/locale/ro_RO/katello.po +379 -109
  282. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  283. data/locale/ru/katello.po +381 -111
  284. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  285. data/locale/sl/katello.po +379 -109
  286. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  287. data/locale/sv_SE/katello.po +379 -109
  288. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  289. data/locale/ta/katello.po +379 -109
  290. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  291. data/locale/ta_IN/katello.po +379 -109
  292. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  293. data/locale/te/katello.po +379 -109
  294. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  295. data/locale/tr/katello.po +379 -109
  296. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  297. data/locale/vi/katello.po +379 -109
  298. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  299. data/locale/vi_VN/katello.po +379 -109
  300. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  301. data/locale/zh/katello.po +379 -109
  302. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  303. data/locale/zh_CN/katello.po +389 -119
  304. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  305. data/locale/zh_TW/katello.po +381 -111
  306. data/webpack/ForemanColumnExtensions/index.js +46 -2
  307. data/webpack/components/Content/Details/__tests__/__snapshots__/ContentDetails.test.js.snap +2 -2
  308. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +0 -2
  309. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +0 -2
  310. data/webpack/components/extensions/Hosts/ActionsBar/index.js +1 -0
  311. data/webpack/components/extensions/Hosts/BulkActions/BulkActionsConstants.js +7 -0
  312. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/BulkChangeHostCollectionsModal.js +388 -0
  313. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/__tests__/BulkChangeHostCollectionsModal.test.js +640 -0
  314. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/actions.js +28 -0
  315. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/index.js +71 -0
  316. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/02_BulkErrataTable.js +1 -1
  317. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +1 -1
  318. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +11 -4
  319. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +51 -24
  320. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/01_BulkRepositorySetsTable.js +1 -1
  321. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +8 -1
  322. data/webpack/containers/Application/config.js +11 -1
  323. data/webpack/global_index.js +3 -0
  324. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesConstants.js +1 -1
  325. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesPage.js +7 -43
  326. data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImagesPage.test.js +1 -1
  327. data/webpack/scenes/ContainerImages/ContainerImagesPage.js +86 -0
  328. data/webpack/scenes/ContainerImages/LabelsAnnotationsModal.js +105 -0
  329. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetails.js +218 -0
  330. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsActions.js +15 -0
  331. data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsSelectors.js +16 -0
  332. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/ManifestDetails.test.js +395 -0
  333. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestDetails.fixtures.json +43 -0
  334. data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestList.fixtures.json +58 -0
  335. data/webpack/scenes/ContainerImages/Synced/Details/index.js +4 -0
  336. data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.js +359 -0
  337. data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.scss +21 -0
  338. data/webpack/scenes/ContainerImages/Synced/__tests__/LabelsAnnotationsModal.test.js +69 -0
  339. data/webpack/scenes/ContainerImages/Synced/__tests__/SyncedContainerImagesPage.test.js +335 -0
  340. data/webpack/scenes/ContainerImages/Synced/__tests__/syncedContainerImages.fixtures.json +105 -0
  341. data/webpack/scenes/ContainerImages/TableEmptyState.js +67 -0
  342. data/webpack/scenes/ContainerImages/containerImagesHelpers.js +48 -0
  343. data/webpack/scenes/ContainerImages/index.js +4 -0
  344. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +29 -3
  345. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  346. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +45 -1
  347. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +0 -1
  348. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +59 -1
  349. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +1 -0
  350. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +164 -24
  351. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVDebFilterContent.test.js +268 -0
  352. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterDetail.fixtures.json +95 -0
  353. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterRules.fixtures.json +31 -0
  354. data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyCVDebFilterRules.fixtures.json +10 -0
  355. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +0 -1
  356. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +0 -1
  357. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +15 -0
  358. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +1 -0
  359. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +9 -0
  360. data/webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js +5 -3
  361. data/webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js +1 -1
  362. data/webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js +35 -3
  363. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js +1 -1
  364. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.css +3 -0
  365. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js +63 -132
  366. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js +67 -143
  367. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +10 -2
  368. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +13 -2
  369. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -0
  370. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +8 -2
  371. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +67 -1
  372. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +2 -2
  373. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +0 -2
  374. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +15 -5
  375. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +22 -5
  376. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +141 -0
  377. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +2 -2
  378. metadata +82 -56
  379. data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -59
  380. data/app/lib/actions/katello/host/auto_attach_subscriptions.rb +0 -22
  381. data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -50
  382. data/app/lib/actions/katello/organization/simple_content_access/disable.rb +0 -25
  383. data/app/lib/actions/katello/organization/simple_content_access/enable.rb +0 -25
  384. data/app/lib/actions/katello/organization/simple_content_access/toggle.rb +0 -42
  385. data/lib/katello/tasks/migrate_structure_content_for_deb.rake +0 -105
  386. data/lib/katello/tasks/upgrades/4.2/remove_checksum_values.rake +0 -17
  387. /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImages.fixtures.js +0 -0
  388. /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/index.js +0 -0
@@ -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