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
@@ -0,0 +1,403 @@
1
+ # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
2
+ class PopulatePulpPrnFields < ActiveRecord::Migration[7.0]
3
+ def up
4
+ # Content Guards - RHSM cert guards
5
+ Katello::Pulp3::ContentGuard.where.not(pulp_href: nil).update_all(
6
+ "pulp_prn = CASE
7
+ WHEN pulp_href ~ '/contentguards/certguard/rhsm/' THEN
8
+ 'prn:certguard.rhsmcertguard:' ||
9
+ regexp_replace(pulp_href, '^.*/([^/]+)/?$', '\\1')
10
+ ELSE NULL
11
+ END"
12
+ )
13
+
14
+ # Repositories - remote_prn
15
+ Katello::Repository.where.not(remote_href: nil).update_all(
16
+ "remote_prn = CASE
17
+ WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
18
+ 'prn:rpm.rpmremote:' ||
19
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
20
+ WHEN remote_href ~ '/remotes/rpm/uln/' THEN
21
+ 'prn:rpm.ulnremote:' ||
22
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
23
+ WHEN remote_href ~ '/remotes/deb/apt/' THEN
24
+ 'prn:deb.aptremote:' ||
25
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
26
+ WHEN remote_href ~ '/remotes/container/container/' THEN
27
+ 'prn:container.containerremote:' ||
28
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
29
+ WHEN remote_href ~ '/remotes/ansible/collection/' THEN
30
+ 'prn:ansible.collectionremote:' ||
31
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
32
+ WHEN remote_href ~ '/remotes/python/python/' THEN
33
+ 'prn:python.pythonremote:' ||
34
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
35
+ WHEN remote_href ~ '/remotes/file/file/' THEN
36
+ 'prn:file.fileremote:' ||
37
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
38
+ WHEN remote_href ~ '/remotes/ostree/ostree/' THEN
39
+ 'prn:ostree.ostreeremote:' ||
40
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
41
+ ELSE NULL
42
+ END"
43
+ )
44
+
45
+ # Repositories - publication_prn
46
+ Katello::Repository.where.not(publication_href: nil).update_all(
47
+ "publication_prn = CASE
48
+ WHEN publication_href ~ '/publications/rpm/rpm/' THEN
49
+ 'prn:rpm.rpmpublication:' ||
50
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
51
+ WHEN publication_href ~ '/publications/deb/apt/' THEN
52
+ 'prn:deb.aptpublication:' ||
53
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
54
+ WHEN publication_href ~ '/publications/container/container/' THEN
55
+ 'prn:container.containerpublication:' ||
56
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
57
+ WHEN publication_href ~ '/publications/ansible/ansible/' THEN
58
+ 'prn:ansible.ansiblepublication:' ||
59
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
60
+ WHEN publication_href ~ '/publications/python/pypi/' THEN
61
+ 'prn:python.pythonpublication:' ||
62
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
63
+ WHEN publication_href ~ '/publications/file/file/' THEN
64
+ 'prn:file.filepublication:' ||
65
+ regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
66
+ ELSE NULL
67
+ END"
68
+ )
69
+
70
+ # Ansible Collections - Process in batches due to potentially large number of records
71
+ Katello::AnsibleCollection.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
72
+ batch.update_all(
73
+ "pulp_prn = CASE
74
+ WHEN pulp_id ~ '/content/ansible/collection_versions/' THEN
75
+ 'prn:ansible.collectionversion:' ||
76
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
77
+ ELSE NULL
78
+ END"
79
+ )
80
+ end
81
+
82
+ # Generic Content Units - Process in batches due to potentially large number of records
83
+ Katello::GenericContentUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
84
+ batch.update_all(
85
+ "pulp_prn = CASE
86
+ WHEN pulp_id ~ '/content/python/packages/' THEN
87
+ 'prn:python.pythonpackagecontent:' ||
88
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
89
+ WHEN pulp_id ~ '/content/ostree/refs/' THEN
90
+ 'prn:ostree.ostreeref:' ||
91
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
92
+ ELSE NULL
93
+ END"
94
+ )
95
+ end
96
+
97
+ # Module Streams - Process in batches due to potentially large number of records
98
+ Katello::ModuleStream.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
99
+ batch.update_all(
100
+ "pulp_prn = CASE
101
+ WHEN pulp_id ~ '/content/rpm/modulemds/' THEN
102
+ 'prn:rpm.modulemd:' ||
103
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
104
+ ELSE NULL
105
+ END"
106
+ )
107
+ end
108
+
109
+ # Docker Manifest Lists - Process in batches due to potentially large number of records
110
+ Katello::DockerManifestList.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
111
+ batch.update_all(
112
+ "pulp_prn = CASE
113
+ WHEN pulp_id ~ '/content/container/manifests/' THEN
114
+ 'prn:container.manifest:' ||
115
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
116
+ ELSE NULL
117
+ END"
118
+ )
119
+ end
120
+
121
+ # Docker Manifests - Process in batches due to potentially large number of records
122
+ Katello::DockerManifest.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
123
+ batch.update_all(
124
+ "pulp_prn = CASE
125
+ WHEN pulp_id ~ '/content/container/manifests/' THEN
126
+ 'prn:container.manifest:' ||
127
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
128
+ ELSE NULL
129
+ END"
130
+ )
131
+ end
132
+
133
+ # Docker Tags - Process in batches due to potentially large number of records
134
+ Katello::DockerTag.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
135
+ batch.update_all(
136
+ "pulp_prn = CASE
137
+ WHEN pulp_id ~ '/content/container/tags/' THEN
138
+ 'prn:container.tag:' ||
139
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
140
+ ELSE NULL
141
+ END"
142
+ )
143
+ end
144
+
145
+ # RPMs - Process in batches due to potentially millions of records
146
+ Katello::Rpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
147
+ batch.update_all(
148
+ "pulp_prn = CASE
149
+ WHEN pulp_id ~ '/content/rpm/packages/' THEN
150
+ 'prn:rpm.package:' ||
151
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
152
+ ELSE NULL
153
+ END"
154
+ )
155
+ end
156
+
157
+ # SRPMs - Process in batches due to potentially large number of records
158
+ Katello::Srpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
159
+ batch.update_all(
160
+ "pulp_prn = CASE
161
+ WHEN pulp_id ~ '/content/rpm/packages/' THEN
162
+ 'prn:rpm.package:' ||
163
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
164
+ ELSE NULL
165
+ END"
166
+ )
167
+ end
168
+
169
+ # Files (FileUnit uses table_name 'katello_files') - Process in batches due to potentially large number of records
170
+ Katello::FileUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
171
+ batch.update_all(
172
+ "pulp_prn = CASE
173
+ WHEN pulp_id ~ '/content/file/files/' THEN
174
+ 'prn:file.filecontent:' ||
175
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
176
+ ELSE NULL
177
+ END"
178
+ )
179
+ end
180
+
181
+ # Package Groups - Process in batches due to potentially large number of records
182
+ Katello::PackageGroup.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
183
+ batch.update_all(
184
+ "pulp_prn = CASE
185
+ WHEN pulp_id ~ '/content/rpm/packagegroups/' THEN
186
+ 'prn:rpm.packagegroup:' ||
187
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
188
+ ELSE NULL
189
+ END"
190
+ )
191
+ end
192
+
193
+ # Debs - Process in batches due to potentially large number of records
194
+ Katello::Deb.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
195
+ batch.update_all(
196
+ "pulp_prn = CASE
197
+ WHEN pulp_id ~ '/content/deb/packages/' THEN
198
+ 'prn:deb.package:' ||
199
+ regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
200
+ ELSE NULL
201
+ END"
202
+ )
203
+ end
204
+
205
+ # Distribution References - prn
206
+ Katello::Pulp3::DistributionReference.where.not(href: nil).update_all(
207
+ "prn = CASE
208
+ WHEN href ~ '/distributions/rpm/rpm/' THEN
209
+ 'prn:rpm.rpmdistribution:' ||
210
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
211
+ WHEN href ~ '/distributions/deb/apt/' THEN
212
+ 'prn:deb.aptdistribution:' ||
213
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
214
+ WHEN href ~ '/distributions/container/container/' THEN
215
+ 'prn:container.containerdistribution:' ||
216
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
217
+ WHEN href ~ '/distributions/ansible/ansible/' THEN
218
+ 'prn:ansible.ansibledistribution:' ||
219
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
220
+ WHEN href ~ '/distributions/python/pypi/' THEN
221
+ 'prn:python.pythondistribution:' ||
222
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
223
+ WHEN href ~ '/distributions/file/file/' THEN
224
+ 'prn:file.filedistribution:' ||
225
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
226
+ WHEN href ~ '/distributions/ostree/ostree/' THEN
227
+ 'prn:ostree.ostreedistribution:' ||
228
+ regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
229
+ ELSE NULL
230
+ END"
231
+ )
232
+
233
+ # Distribution References - content_guard_prn
234
+ Katello::Pulp3::DistributionReference.where.not(content_guard_href: nil).update_all(
235
+ "content_guard_prn = CASE
236
+ WHEN content_guard_href ~ '/contentguards/certguard/rhsm/' THEN
237
+ 'prn:certguard.rhsmcertguard:' ||
238
+ regexp_replace(content_guard_href, '^.*/([^/]+)/?$', '\\1')
239
+ ELSE NULL
240
+ END"
241
+ )
242
+
243
+ # Repository References - repository_prn
244
+ Katello::Pulp3::RepositoryReference.where.not(repository_href: nil).update_all(
245
+ "repository_prn = CASE
246
+ WHEN repository_href ~ '/repositories/rpm/rpm/' THEN
247
+ 'prn:rpm.rpmrepository:' ||
248
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
249
+ WHEN repository_href ~ '/repositories/deb/apt/' THEN
250
+ 'prn:deb.aptrepository:' ||
251
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
252
+ WHEN repository_href ~ '/repositories/container/container/' THEN
253
+ 'prn:container.containerrepository:' ||
254
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
255
+ WHEN repository_href ~ '/repositories/ansible/ansible/' THEN
256
+ 'prn:ansible.ansiblerepository:' ||
257
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
258
+ WHEN repository_href ~ '/repositories/python/python/' THEN
259
+ 'prn:python.pythonrepository:' ||
260
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
261
+ WHEN repository_href ~ '/repositories/file/file/' THEN
262
+ 'prn:file.filerepository:' ||
263
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
264
+ WHEN repository_href ~ '/repositories/ostree/ostree/' THEN
265
+ 'prn:ostree.ostreerepository:' ||
266
+ regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
267
+ ELSE NULL
268
+ END"
269
+ )
270
+
271
+ # Repository Errata - erratum_prn
272
+ Katello::RepositoryErratum.where.not(erratum_pulp3_href: nil).update_all(
273
+ "erratum_prn = CASE
274
+ WHEN erratum_pulp3_href ~ '/content/rpm/advisories/' THEN
275
+ 'prn:rpm.updaterecord:' ||
276
+ regexp_replace(erratum_pulp3_href, '^.*/([^/]+)/?$', '\\1')
277
+ ELSE NULL
278
+ END"
279
+ )
280
+
281
+ # Smart Proxy Alternate Content Sources - remote_prn
282
+ Katello::SmartProxyAlternateContentSource.where.not(remote_href: nil).update_all(
283
+ "remote_prn = CASE
284
+ WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
285
+ 'prn:rpm.rpmremote:' ||
286
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
287
+ WHEN remote_href ~ '/remotes/rpm/uln/' THEN
288
+ 'prn:rpm.ulnremote:' ||
289
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
290
+ WHEN remote_href ~ '/remotes/deb/apt/' THEN
291
+ 'prn:deb.aptremote:' ||
292
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
293
+ WHEN remote_href ~ '/remotes/container/container/' THEN
294
+ 'prn:container.containerremote:' ||
295
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
296
+ WHEN remote_href ~ '/remotes/ansible/collection/' THEN
297
+ 'prn:ansible.collectionremote:' ||
298
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
299
+ WHEN remote_href ~ '/remotes/python/python/' THEN
300
+ 'prn:python.pythonremote:' ||
301
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
302
+ WHEN remote_href ~ '/remotes/file/file/' THEN
303
+ 'prn:file.fileremote:' ||
304
+ regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
305
+ ELSE NULL
306
+ END"
307
+ )
308
+
309
+ # Smart Proxy Alternate Content Sources - alternate_content_source_prn
310
+ Katello::SmartProxyAlternateContentSource.where.not(alternate_content_source_href: nil).update_all(
311
+ "alternate_content_source_prn = CASE
312
+ WHEN alternate_content_source_href ~ '/acs/rpm/rpm/' THEN
313
+ 'prn:rpm.rpmalternatecontentsource:' ||
314
+ regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
315
+ WHEN alternate_content_source_href ~ '/acs/file/file/' THEN
316
+ 'prn:file.filealternatecontentsource:' ||
317
+ regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
318
+ ELSE NULL
319
+ END"
320
+ )
321
+
322
+ # # Add NOT NULL constraints to PRN fields that correspond to required href fields
323
+ # # These constraints match the NOT NULL constraints on their corresponding href fields
324
+ # change_column_null :katello_content_guards, :pulp_prn, false
325
+ # change_column_null :katello_repository_references, :repository_prn, false
326
+ #
327
+ # # Add NOT NULL constraints to all pulp_prn fields for content tables
328
+ # change_column_null :katello_ansible_collections, :pulp_prn, false
329
+ # change_column_null :katello_generic_content_units, :pulp_prn, false
330
+ # change_column_null :katello_module_streams, :pulp_prn, false
331
+ # change_column_null :katello_docker_manifest_lists, :pulp_prn, false
332
+ # change_column_null :katello_docker_manifests, :pulp_prn, false
333
+ # change_column_null :katello_docker_tags, :pulp_prn, false
334
+ # change_column_null :katello_rpms, :pulp_prn, false
335
+ # change_column_null :katello_srpms, :pulp_prn, false
336
+ # change_column_null :katello_files, :pulp_prn, false
337
+ # change_column_null :katello_package_groups, :pulp_prn, false
338
+ # change_column_null :katello_debs, :pulp_prn, false
339
+ #
340
+ # # Add unique indexes for all pulp_prn fields for content tables
341
+ # add_index :katello_ansible_collections, :pulp_prn, unique: true
342
+ # add_index :katello_generic_content_units, :pulp_prn, unique: true
343
+ # add_index :katello_module_streams, :pulp_prn, unique: true
344
+ # add_index :katello_docker_manifest_lists, :pulp_prn, unique: true
345
+ # add_index :katello_docker_manifests, :pulp_prn, unique: true
346
+ # add_index :katello_docker_tags, :pulp_prn, unique: true
347
+ # add_index :katello_rpms, :pulp_prn, unique: true
348
+ # add_index :katello_srpms, :pulp_prn, unique: true
349
+ # add_index :katello_files, :pulp_prn, unique: true
350
+ # add_index :katello_package_groups, :pulp_prn, unique: true
351
+ # add_index :katello_debs, :pulp_prn, unique: true
352
+ end
353
+
354
+ def down
355
+ # # Remove unique indexes before clearing data
356
+ # remove_index :katello_ansible_collections, :pulp_prn
357
+ # remove_index :katello_generic_content_units, :pulp_prn
358
+ # remove_index :katello_module_streams, :pulp_prn
359
+ # remove_index :katello_docker_manifest_lists, :pulp_prn
360
+ # remove_index :katello_docker_manifests, :pulp_prn
361
+ # remove_index :katello_docker_tags, :pulp_prn
362
+ # remove_index :katello_rpms, :pulp_prn
363
+ # remove_index :katello_srpms, :pulp_prn
364
+ # remove_index :katello_files, :pulp_prn
365
+ # remove_index :katello_package_groups, :pulp_prn
366
+ # remove_index :katello_debs, :pulp_prn
367
+ #
368
+ # # Remove NOT NULL constraints before clearing data
369
+ # change_column_null :katello_content_guards, :pulp_prn, true
370
+ # change_column_null :katello_repository_references, :repository_prn, true
371
+ # change_column_null :katello_ansible_collections, :pulp_prn, true
372
+ # change_column_null :katello_generic_content_units, :pulp_prn, true
373
+ # change_column_null :katello_module_streams, :pulp_prn, true
374
+ # change_column_null :katello_docker_manifest_lists, :pulp_prn, true
375
+ # change_column_null :katello_docker_manifests, :pulp_prn, true
376
+ # change_column_null :katello_docker_tags, :pulp_prn, true
377
+ # change_column_null :katello_rpms, :pulp_prn, true
378
+ # change_column_null :katello_srpms, :pulp_prn, true
379
+ # change_column_null :katello_files, :pulp_prn, true
380
+ # change_column_null :katello_package_groups, :pulp_prn, true
381
+ # change_column_null :katello_debs, :pulp_prn, true
382
+
383
+ # Clear all PRN fields
384
+ execute "UPDATE katello_content_guards SET pulp_prn = NULL"
385
+ execute "UPDATE katello_repositories SET remote_prn = NULL, publication_prn = NULL, version_prn = NULL"
386
+ execute "UPDATE katello_ansible_collections SET pulp_prn = NULL"
387
+ execute "UPDATE katello_generic_content_units SET pulp_prn = NULL"
388
+ execute "UPDATE katello_module_streams SET pulp_prn = NULL"
389
+ execute "UPDATE katello_docker_manifest_lists SET pulp_prn = NULL"
390
+ execute "UPDATE katello_docker_manifests SET pulp_prn = NULL"
391
+ execute "UPDATE katello_docker_tags SET pulp_prn = NULL"
392
+ execute "UPDATE katello_rpms SET pulp_prn = NULL"
393
+ execute "UPDATE katello_srpms SET pulp_prn = NULL"
394
+ execute "UPDATE katello_files SET pulp_prn = NULL"
395
+ execute "UPDATE katello_package_groups SET pulp_prn = NULL"
396
+ execute "UPDATE katello_debs SET pulp_prn = NULL"
397
+ execute "UPDATE katello_distribution_references SET prn = NULL, content_guard_prn = NULL"
398
+ execute "UPDATE katello_repository_references SET repository_prn = NULL"
399
+ execute "UPDATE katello_repository_errata SET erratum_prn = NULL"
400
+ execute "UPDATE katello_smart_proxy_alternate_content_sources SET remote_prn = NULL, alternate_content_source_prn = NULL"
401
+ end
402
+ end
403
+ # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
@@ -0,0 +1,5 @@
1
+ class RemoveAutoAttachFromActivationKeys < ActiveRecord::Migration[6.1]
2
+ def change
3
+ remove_column :katello_activation_keys, :auto_attach, :boolean
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveAutohealFromSubscriptionFacets < ActiveRecord::Migration[6.1]
2
+ def change
3
+ remove_column :katello_subscription_facets, :autoheal, :boolean
4
+ end
5
+ end
@@ -11,5 +11,7 @@ UpgradeTask.define_tasks(:katello) do
11
11
  {:name => 'katello:upgrades:4.8:fix_incorrect_providers'},
12
12
  {:name => 'katello:upgrades:4.8:regenerate_imported_repository_metadata'},
13
13
  {:name => 'katello:upgrades:4.12:update_content_access_modes'},
14
+ {:name => 'katello:upgrades:4.19:populate_repository_version_prns'},
15
+ {:name => 'katello:upgrades:4.19:enable_structured_apt_for_deb', :long_running => true, :skip_failure => true},
14
16
  ]
15
17
  end
@@ -3124,6 +3124,10 @@ msgid ""
3124
3124
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3125
3125
  msgstr ""
3126
3126
 
3127
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3128
+ msgid "Other Advisory"
3129
+ msgstr ""
3130
+
3127
3131
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3128
3132
  msgid "Overridden"
3129
3133
  msgstr ""
@@ -4988,6 +4992,12 @@ msgid ""
4988
4992
  "repository does not require authentication."
4989
4993
  msgstr ""
4990
4994
 
4995
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4996
+ msgid ""
4997
+ "Using a search parameter will improve repository discovery. A blank search "
4998
+ "might return an incomplete list due to registry's API limits."
4999
+ msgstr ""
5000
+
4991
5001
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4992
5002
  msgid "Variant"
4993
5003
  msgstr ""
@@ -3124,6 +3124,10 @@ msgid ""
3124
3124
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3125
3125
  msgstr ""
3126
3126
 
3127
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3128
+ msgid "Other Advisory"
3129
+ msgstr ""
3130
+
3127
3131
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3128
3132
  msgid "Overridden"
3129
3133
  msgstr ""
@@ -4988,6 +4992,12 @@ msgid ""
4988
4992
  "repository does not require authentication."
4989
4993
  msgstr ""
4990
4994
 
4995
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4996
+ msgid ""
4997
+ "Using a search parameter will improve repository discovery. A blank search "
4998
+ "might return an incomplete list due to registry's API limits."
4999
+ msgstr ""
5000
+
4991
5001
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4992
5002
  msgid "Variant"
4993
5003
  msgstr ""
@@ -3124,6 +3124,10 @@ msgid ""
3124
3124
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3125
3125
  msgstr ""
3126
3126
 
3127
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3128
+ msgid "Other Advisory"
3129
+ msgstr ""
3130
+
3127
3131
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3128
3132
  msgid "Overridden"
3129
3133
  msgstr ""
@@ -4988,6 +4992,12 @@ msgid ""
4988
4992
  "repository does not require authentication."
4989
4993
  msgstr ""
4990
4994
 
4995
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4996
+ msgid ""
4997
+ "Using a search parameter will improve repository discovery. A blank search "
4998
+ "might return an incomplete list due to registry's API limits."
4999
+ msgstr ""
5000
+
4991
5001
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4992
5002
  msgid "Variant"
4993
5003
  msgstr ""
@@ -3154,6 +3154,10 @@ msgid ""
3154
3154
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3155
3155
  msgstr ""
3156
3156
 
3157
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3158
+ msgid "Other Advisory"
3159
+ msgstr ""
3160
+
3157
3161
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3158
3162
  msgid "Overridden"
3159
3163
  msgstr ""
@@ -5033,6 +5037,12 @@ msgid ""
5033
5037
  "repository does not require authentication."
5034
5038
  msgstr ""
5035
5039
 
5040
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
5041
+ msgid ""
5042
+ "Using a search parameter will improve repository discovery. A blank search "
5043
+ "might return an incomplete list due to registry's API limits."
5044
+ msgstr ""
5045
+
5036
5046
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5037
5047
  msgid "Variant"
5038
5048
  msgstr ""
@@ -3273,6 +3273,10 @@ msgstr ""
3273
3273
  "OSTree-Repositorys <div> {{ library.counts.ostree_repositories || 0 }} "
3274
3274
  "</div>"
3275
3275
 
3276
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3277
+ msgid "Other Advisory"
3278
+ msgstr ""
3279
+
3276
3280
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3277
3281
  msgid "Overridden"
3278
3282
  msgstr "Überschreiben"
@@ -5224,6 +5228,12 @@ msgstr ""
5224
5228
  "Lassen Sie das Feld leer, wenn das Repository keine Authentifizierung "
5225
5229
  "erfordert."
5226
5230
 
5231
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
5232
+ msgid ""
5233
+ "Using a search parameter will improve repository discovery. A blank search "
5234
+ "might return an incomplete list due to registry's API limits."
5235
+ msgstr ""
5236
+
5227
5237
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5228
5238
  msgid "Variant"
5229
5239
  msgstr "Variante"
@@ -3120,6 +3120,10 @@ msgid ""
3120
3120
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3121
3121
  msgstr ""
3122
3122
 
3123
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3124
+ msgid "Other Advisory"
3125
+ msgstr ""
3126
+
3123
3127
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3124
3128
  msgid "Overridden"
3125
3129
  msgstr ""
@@ -4984,6 +4988,12 @@ msgid ""
4984
4988
  "repository does not require authentication."
4985
4989
  msgstr ""
4986
4990
 
4991
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4992
+ msgid ""
4993
+ "Using a search parameter will improve repository discovery. A blank search "
4994
+ "might return an incomplete list due to registry's API limits."
4995
+ msgstr ""
4996
+
4987
4997
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4988
4998
  msgid "Variant"
4989
4999
  msgstr ""
@@ -3126,6 +3126,10 @@ msgid ""
3126
3126
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3127
3127
  msgstr ""
3128
3128
 
3129
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3130
+ msgid "Other Advisory"
3131
+ msgstr ""
3132
+
3129
3133
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3130
3134
  msgid "Overridden"
3131
3135
  msgstr ""
@@ -4990,6 +4994,12 @@ msgid ""
4990
4994
  "repository does not require authentication."
4991
4995
  msgstr ""
4992
4996
 
4997
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4998
+ msgid ""
4999
+ "Using a search parameter will improve repository discovery. A blank search "
5000
+ "might return an incomplete list due to registry's API limits."
5001
+ msgstr ""
5002
+
4993
5003
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4994
5004
  msgid "Variant"
4995
5005
  msgstr ""
@@ -1,11 +1,11 @@
1
1
  #
2
2
  # Translators:
3
- # Efstathios Iosifidis <iefstathios@gmail.com>, 2023
3
+ # Efstathios Iosifidis <eiosifidis@gmail.com>, 2023
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: \n"
8
- "Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2023\n"
8
+ "Last-Translator: Efstathios Iosifidis <eiosifidis@gmail.com>, 2023\n"
9
9
  "Language-Team: Greek (https://app.transifex.com/foreman/teams/114/el/)\n"
10
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -3124,6 +3124,10 @@ msgid ""
3124
3124
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3125
3125
  msgstr ""
3126
3126
 
3127
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3128
+ msgid "Other Advisory"
3129
+ msgstr ""
3130
+
3127
3131
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3128
3132
  msgid "Overridden"
3129
3133
  msgstr ""
@@ -4988,6 +4992,12 @@ msgid ""
4988
4992
  "repository does not require authentication."
4989
4993
  msgstr ""
4990
4994
 
4995
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4996
+ msgid ""
4997
+ "Using a search parameter will improve repository discovery. A blank search "
4998
+ "might return an incomplete list due to registry's API limits."
4999
+ msgstr ""
5000
+
4991
5001
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4992
5002
  msgid "Variant"
4993
5003
  msgstr "Παραλλαγή"
@@ -3125,6 +3125,10 @@ msgid ""
3125
3125
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3126
3126
  msgstr ""
3127
3127
 
3128
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3129
+ msgid "Other Advisory"
3130
+ msgstr ""
3131
+
3128
3132
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3129
3133
  msgid "Overridden"
3130
3134
  msgstr ""
@@ -4989,6 +4993,12 @@ msgid ""
4989
4993
  "repository does not require authentication."
4990
4994
  msgstr ""
4991
4995
 
4996
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4997
+ msgid ""
4998
+ "Using a search parameter will improve repository discovery. A blank search "
4999
+ "might return an incomplete list due to registry's API limits."
5000
+ msgstr ""
5001
+
4992
5002
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4993
5003
  msgid "Variant"
4994
5004
  msgstr ""