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
@@ -3146,6 +3146,10 @@ msgid ""
3146
3146
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3147
3147
  msgstr ""
3148
3148
 
3149
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3150
+ msgid "Other Advisory"
3151
+ msgstr ""
3152
+
3149
3153
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3150
3154
  msgid "Overridden"
3151
3155
  msgstr ""
@@ -5022,6 +5026,12 @@ msgid ""
5022
5026
  "repository does not require authentication."
5023
5027
  msgstr ""
5024
5028
 
5029
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
5030
+ msgid ""
5031
+ "Using a search parameter will improve repository discovery. A blank search "
5032
+ "might return an incomplete list due to registry's API limits."
5033
+ msgstr ""
5034
+
5025
5035
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5026
5036
  msgid "Variant"
5027
5037
  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 ""
@@ -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 ""
@@ -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 ""
@@ -3109,6 +3109,10 @@ msgid ""
3109
3109
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3110
3110
  msgstr ""
3111
3111
 
3112
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3113
+ msgid "Other Advisory"
3114
+ msgstr ""
3115
+
3112
3116
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3113
3117
  msgid "Overridden"
3114
3118
  msgstr ""
@@ -4967,6 +4971,12 @@ msgid ""
4967
4971
  "repository does not require authentication."
4968
4972
  msgstr ""
4969
4973
 
4974
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4975
+ msgid ""
4976
+ "Using a search parameter will improve repository discovery. A blank search "
4977
+ "might return an incomplete list due to registry's API limits."
4978
+ msgstr ""
4979
+
4970
4980
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4971
4981
  msgid "Variant"
4972
4982
  msgstr ""
@@ -3109,6 +3109,10 @@ msgid ""
3109
3109
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3110
3110
  msgstr ""
3111
3111
 
3112
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3113
+ msgid "Other Advisory"
3114
+ msgstr ""
3115
+
3112
3116
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3113
3117
  msgid "Overridden"
3114
3118
  msgstr ""
@@ -4967,6 +4971,12 @@ msgid ""
4967
4971
  "repository does not require authentication."
4968
4972
  msgstr ""
4969
4973
 
4974
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4975
+ msgid ""
4976
+ "Using a search parameter will improve repository discovery. A blank search "
4977
+ "might return an incomplete list due to registry's API limits."
4978
+ msgstr ""
4979
+
4970
4980
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4971
4981
  msgid "Variant"
4972
4982
  msgstr ""
@@ -3109,6 +3109,10 @@ msgid ""
3109
3109
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3110
3110
  msgstr ""
3111
3111
 
3112
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3113
+ msgid "Other Advisory"
3114
+ msgstr ""
3115
+
3112
3116
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3113
3117
  msgid "Overridden"
3114
3118
  msgstr ""
@@ -4967,6 +4971,12 @@ msgid ""
4967
4971
  "repository does not require authentication."
4968
4972
  msgstr ""
4969
4973
 
4974
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
4975
+ msgid ""
4976
+ "Using a search parameter will improve repository discovery. A blank search "
4977
+ "might return an incomplete list due to registry's API limits."
4978
+ msgstr ""
4979
+
4970
4980
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4971
4981
  msgid "Variant"
4972
4982
  msgstr ""
@@ -3148,6 +3148,10 @@ msgid ""
3148
3148
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3149
3149
  msgstr "OSTree 仓库 <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3150
3150
 
3151
+ #: app/assets/javascripts/bastion_katello/errata/errata-type.filter.js
3152
+ msgid "Other Advisory"
3153
+ msgstr ""
3154
+
3151
3155
  #: app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js
3152
3156
  msgid "Overridden"
3153
3157
  msgstr "覆盖"
@@ -5044,6 +5048,12 @@ msgid ""
5044
5048
  "repository does not require authentication."
5045
5049
  msgstr "用于认证的上游仓库用户的用户名。如果仓库不需要身份验证,则保留为空。"
5046
5050
 
5051
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
5052
+ msgid ""
5053
+ "Using a search parameter will improve repository discovery. A blank search "
5054
+ "might return an incomplete list due to registry's API limits."
5055
+ msgstr ""
5056
+
5047
5057
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5048
5058
  msgid "Variant"
5049
5059
  msgstr "变体"
@@ -3126,6 +3126,10 @@ msgid ""
3126
3126
  "OSTree Repositories <div>{{ library.counts.ostree_repositories || 0 }}</div>"
3127
3127
  msgstr "OSTree 軟體庫 <div>{{ library.counts.ostree_repositories || 0 }}</div>"
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 ""
@@ -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 "變體"
@@ -38,7 +38,6 @@ module Katello
38
38
  @plugin.permission :edit_activation_keys,
39
39
  {
40
40
  'katello/api/v2/activation_keys' => [:update, :content_override,
41
- :add_subscriptions, :remove_subscriptions,
42
41
  :add_host_collections, :remove_host_collections],
43
42
  },
44
43
  :resource_type => 'Katello::ActivationKey',
@@ -254,7 +253,7 @@ module Katello
254
253
  'katello/api/v2/repositories' => [:index, :show, :repository_types, :content_types, :auto_complete_search, :cancel],
255
254
  'katello/api/v2/packages' => [:index, :thindex, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
256
255
  'katello/api/v2/srpms' => [:index, :show, :auto_complete_search, :compare],
257
- 'katello/api/v2/debs' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
256
+ 'katello/api/v2/debs' => [:index, :thindex, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
258
257
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
259
258
  'katello/api/v2/docker_manifests' => [:index, :show, :auto_complete_search, :compare],
260
259
  'katello/api/v2/docker_manifest_lists' => [:index, :show, :auto_complete_search, :compare],
@@ -289,6 +288,7 @@ module Katello
289
288
  :repo_compare_packages],
290
289
  'katello/api/v2/repository_sets' => [:index, :show, :available_repositories, :auto_complete_search],
291
290
  'katello/api/v2/host_packages' => [:installed_packages],
291
+ 'katello/api/v2/host_debs' => [:installed_debs],
292
292
  },
293
293
  :resource_type => 'Katello::Product',
294
294
  :finder_scope => :readable
@@ -10,9 +10,6 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
10
10
  'katello/api/v2/host_packages/upgrade_all',
11
11
  'katello/api/v2/host_packages/remove',
12
12
  'katello/api/v2/host_packages/auto_complete_search',
13
- 'katello/api/v2/host_subscriptions/auto_attach',
14
- 'katello/api/v2/host_subscriptions/add_subscriptions',
15
- 'katello/api/v2/host_subscriptions/remove_subscriptions',
16
13
  'katello/api/v2/host_subscriptions/available_release_versions',
17
14
  'katello/api/v2/host_subscriptions/content_override',
18
15
  'katello/api/v2/hosts_bulk_actions/bulk_add_host_collections',
@@ -20,9 +17,6 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
20
17
  'katello/api/v2/hosts_bulk_actions/install_content',
21
18
  'katello/api/v2/hosts_bulk_actions/update_content',
22
19
  'katello/api/v2/hosts_bulk_actions/remove_content',
23
- 'katello/api/v2/hosts_bulk_actions/add_subscriptions',
24
- 'katello/api/v2/hosts_bulk_actions/remove_subscriptions',
25
- 'katello/api/v2/hosts_bulk_actions/auto_attach',
26
20
  'katello/api/v2/hosts_bulk_actions/content_overrides',
27
21
  'katello/api/v2/hosts_bulk_actions/environment_content_view',
28
22
  'katello/api/v2/hosts_bulk_actions/release_version',
@@ -221,6 +221,15 @@ Foreman::Plugin.register :katello do
221
221
  :after => :content_hosts,
222
222
  :turbolinks => false
223
223
 
224
+ menu :labs_menu,
225
+ :container_images,
226
+ :url => '/labs/container_images',
227
+ :url_hash => {:controller => 'katello/api/v2/container_images_controller',
228
+ :action => 'index'},
229
+ :caption => N_('Container Images'),
230
+ :parent => :lab_features_menu,
231
+ :turbolinks => false
232
+
224
233
  extend_template_helpers Katello::KatelloUrlsHelper
225
234
  extend_template_helpers Katello::Concerns::BaseTemplateScopeExtensions
226
235
 
@@ -242,7 +251,7 @@ Foreman::Plugin.register :katello do
242
251
  parameter_filter ::Host::Managed, :host_collection_ids => [],
243
252
  :content_facet_attributes => [:content_view_id, :lifecycle_environment_id, :content_source_id,
244
253
  :host, :kickstart_repository_id],
245
- :subscription_facet_attributes => [:release_version, :autoheal, :purpose_usage, :purpose_role, :service_level, :host,
254
+ :subscription_facet_attributes => [:release_version, :purpose_usage, :purpose_role, :service_level, :host,
246
255
  {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, {:hypervisor_guest_uuids => []}]
247
256
  parameter_filter ::Hostgroup, :content_view_id, :lifecycle_environment_id, :content_source_id,
248
257
  :kickstart_repository_id
@@ -316,6 +325,7 @@ Foreman::Plugin.register :katello do
316
325
  extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/host_collections'
317
326
  extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/show'
318
327
  extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/os_attributes'
328
+ extend_rabl_template 'api/v2/hosts/index', 'katello/api/v2/hosts/host_collections'
319
329
  extend_rabl_template 'api/v2/hosts/index', 'katello/api/v2/hosts/os_attributes'
320
330
  extend_rabl_template 'api/v2/http_proxies/show', 'katello/api/v2/http_proxies/show'
321
331
 
@@ -596,6 +606,12 @@ Foreman::Plugin.register :katello do
596
606
  full_name: N_('Delete Host upon unregister'),
597
607
  description: N_("When unregistering a host via subscription-manager, also delete the host record. Managed resources linked to host such as virtual machines and DNS records may also be deleted.")
598
608
 
609
+ setting 'retain_build_profile_upon_unregistration',
610
+ type: :boolean,
611
+ default: false,
612
+ full_name: N_('Retain build profile upon unregistration'),
613
+ description: N_("When enabled, provisioning information like content view environments, kickstart repository, and content source will be retained when a host is unregistered. When disabled, this information will be cleared during unregistration.")
614
+
599
615
  setting 'register_hostname_fact',
600
616
  type: :string,
601
617
  default: '',
@@ -705,13 +721,6 @@ Foreman::Plugin.register :katello do
705
721
  full_name: N_('Hide Reclaim Space Warning'),
706
722
  description: N_('If this is enabled, the Smart Proxy page will suppress the warning message about reclaiming space.')
707
723
 
708
- setting 'deb_enable_structured_apt',
709
- type: :boolean,
710
- default: false,
711
- full_name: N_('Enable structured APT for deb content'),
712
- description: N_("If set, newly created APT repos in Katello will use the same repo structure as the remote repos they are synchronized from. " \
713
- "You may migrate existing APT repos to match the setting, by running 'foreman-rake katello:migrate_structure_content_for_deb'.")
714
-
715
724
  setting 'registry_token_expiration_minutes',
716
725
  type: :integer,
717
726
  default: 60,
@@ -17,7 +17,7 @@ begin
17
17
  Rake::Task['rake:test:katello:test'].invoke
18
18
  end
19
19
 
20
- desc "Runs puplcore integration tests"
20
+ desc "Runs pulpcore integration tests"
21
21
  task 'katello:pulpcore' do
22
22
  Rake::Task['jenkins:setup:minitest'].invoke
23
23
  Rake::Task['rake:test:katello:test:pulpcore'].invoke
@@ -0,0 +1,87 @@
1
+ namespace :katello do
2
+ namespace :upgrades do
3
+ namespace '4.19' do
4
+ desc "Migrate all APT repo content using simple mode to use structured APT mode."
5
+ task :enable_structured_apt_for_deb => ['environment', 'dynflow:client', "check_ping"] do
6
+ ::ForemanTasks.dynflow.config.remote = true
7
+ ::ForemanTasks.dynflow.initialize!
8
+
9
+ User.current = User.anonymous_api_admin # Set a user
10
+
11
+ roots = Katello::RootRepository.deb_type
12
+
13
+ if roots.any?
14
+ puts "Enabling structured APT for all deb type repos not already migrated."
15
+ else
16
+ puts "Since there are no deb type repos, enabling structured APT does not require migration. Skipping."
17
+ exit
18
+ end
19
+
20
+ found_repos_to_migrate = false
21
+ roots.includes(:repositories).each do |root|
22
+ next unless root.content_id
23
+ found_repos_to_migrate = true
24
+ puts "Migrating root repo '#{root.name}', id='#{root.id}'."
25
+
26
+ # Ensure ensure_valid_deb_constraints won't prevent us from saving the root repo.
27
+ unless root.ensure_valid_deb_constraints.blank?
28
+ puts "Root repo '#{root.name}' (id='#{root.id}') violates deb constraints, setting url and deb_releases to nil!"
29
+ root.url = nil
30
+ root.deb_releases = nil
31
+ end
32
+
33
+ repos = root.repositories
34
+ library_instance = root.library_instance
35
+ if root.content_id != 'NEEDS_RE_MIGRATION'
36
+ begin
37
+ # Move the content_id from the root to the library instance so that ContentDestroy will destroy it!
38
+ old_content_id = root.content_id
39
+ library_instance.content_id = old_content_id
40
+ library_instance.save!
41
+ root.content_id = nil
42
+ root.save!
43
+ ForemanTasks.sync_task(::Actions::Katello::Product::ContentDestroy, root.library_instance)
44
+ library_instance.content_id = nil
45
+ library_instance.save!
46
+ rescue
47
+ root.content_id = old_content_id
48
+ root.save!
49
+ library_instance.content_id = nil
50
+ library_instance.save!
51
+ raise
52
+ end
53
+ end
54
+ begin
55
+ root.content_id = nil
56
+ root.save!
57
+
58
+ repos.each do |repo|
59
+ if repo[:content_id].nil?
60
+ content_create = ForemanTasks.sync_task(::Actions::Katello::Product::ContentCreate, repo)
61
+ content_id = content_create.input[:content_id]
62
+ else
63
+ content_id = repo.content_id
64
+ end
65
+ content_view_environment = repo.content_view_environment
66
+ if content_view_environment
67
+ ForemanTasks.sync_task(::Actions::Candlepin::Environment::AddContentToEnvironment, :view_env_cp_id => content_view_environment.cp_id, :content_id => content_id)
68
+ end
69
+ end
70
+ rescue
71
+ root.content_id = 'NEEDS_RE_MIGRATION'
72
+ root.save!
73
+ raise
74
+ end
75
+ puts "Successfully migrated root repo '#{root.name}', id='#{root.id}'."
76
+ end
77
+
78
+ if found_repos_to_migrate
79
+ puts "Successfully migrated all remaining repositories to use structured APT!"
80
+ puts "IMPORTANT: Any smart proxies serving deb content that was migrated must be re-synced!"
81
+ else
82
+ puts "Found no repositories that needed migrating. All existing deb type repos are already using structured APT!"
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,32 @@
1
+ namespace :katello do
2
+ namespace :upgrades do
3
+ namespace '4.19' do
4
+ desc "Populate repository version PRNs for all repositories"
5
+ task :populate_repository_version_prns => ["dynflow:client", "check_ping"] do
6
+ User.current = User.anonymous_api_admin
7
+ api = ::Katello::Pulp3::Api::Core.new(SmartProxy.pulp_primary)
8
+ updates = []
9
+ api.core_repository_versions_list_all(fields: 'pulp_href,prn').each do |repo_version|
10
+ next if repo_version.prn.blank?
11
+ updates << { version_href: repo_version.pulp_href, prn: repo_version.prn }
12
+ end
13
+
14
+ return if updates.empty?
15
+
16
+ updates.each_slice(10_000) do |batch|
17
+ when_clauses = batch.map do |update|
18
+ version_href = ::Katello::Repository.connection.quote_string(update[:version_href])
19
+ prn = ::Katello::Repository.connection.quote_string(update[:prn])
20
+ "WHEN '#{version_href}' THEN '#{prn}'"
21
+ end
22
+
23
+ version_hrefs = batch.map { |u| u[:version_href] }
24
+ case_statement = "CASE version_href #{when_clauses.join(' ')} END"
25
+
26
+ ::Katello::Repository.where(version_href: version_hrefs)
27
+ .update_all("version_prn = #{case_statement}")
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.18.1".freeze
2
+ VERSION = "4.19.0.rc2".freeze
3
3
  end
@@ -0,0 +1,38 @@
1
+ require 'pulp_rpm_client'
2
+
3
+ # Monkey patch to allow nil values for deprecated gpgcheck and repo_gpgcheck fields
4
+ # These fields were removed in pulp_rpm 3.30.0 but older Pulp versions return null
5
+ # The new bindings don't allow nil, causing ArgumentError when deserializing responses
6
+ [PulpRpmClient::RpmRpmRepositoryResponse, PulpRpmClient::RpmRpmPublicationResponse].each do |klass|
7
+ klass.class_eval do
8
+ # Custom attribute writer method with validation
9
+ # @param [Object] gpgcheck Value to be assigned
10
+ def gpgcheck=(gpgcheck)
11
+ # Allow nil for deprecated field - monkey patch here
12
+ if !gpgcheck.nil? && gpgcheck > 1
13
+ fail ArgumentError, 'invalid value for "gpgcheck", must be smaller than or equal to 1.'
14
+ end
15
+
16
+ if !gpgcheck.nil? && gpgcheck < 0
17
+ fail ArgumentError, 'invalid value for "gpgcheck", must be greater than or equal to 0.'
18
+ end
19
+
20
+ @gpgcheck = gpgcheck
21
+ end
22
+
23
+ # Custom attribute writer method with validation
24
+ # @param [Object] repo_gpgcheck Value to be assigned
25
+ def repo_gpgcheck=(repo_gpgcheck)
26
+ # Allow nil for deprecated field - monkey patch here
27
+ if !repo_gpgcheck.nil? && repo_gpgcheck > 1
28
+ fail ArgumentError, 'invalid value for "repo_gpgcheck", must be smaller than or equal to 1.'
29
+ end
30
+
31
+ if !repo_gpgcheck.nil? && repo_gpgcheck < 0
32
+ fail ArgumentError, 'invalid value for "repo_gpgcheck", must be greater than or equal to 0.'
33
+ end
34
+
35
+ @repo_gpgcheck = repo_gpgcheck
36
+ end
37
+ end
38
+ end
@@ -1,8 +1,6 @@
1
1
  # Autogenerated!
2
2
  _("Abstract async task")
3
3
  _("Add rolling repo clone")
4
- _("Attach subscriptions")
5
- _("Auto attach subscriptions")
6
4
  _("Bulk generate applicability for hosts")
7
5
  _("Commit upload")
8
6
  _("Copy all units")
@@ -53,10 +51,8 @@ _("Destroy Content Host")
53
51
  _("Destroy exporter")
54
52
  _("Destroy importer")
55
53
  _("Destroy")
56
- _("Disable Simple Content Access")
57
54
  _("Disable")
58
55
  _("Discover")
59
- _("Enable Simple Content Access")
60
56
  _("Enable")
61
57
  _("Environment contents refresh")
62
58
  _("Errata mail")
@@ -125,7 +121,6 @@ _("Remove from Environment")
125
121
  _("Remove orphans")
126
122
  _("Remove orphans")
127
123
  _("Remove rolling repo clone")
128
- _("Remove subscriptions")
129
124
  _("Remove units")
130
125
  _("Remove units")
131
126
  _("Remove unneeded repos")
@@ -148,7 +143,6 @@ _("Sync")
148
143
  _("Syncable export")
149
144
  _("Synchronize smart proxy")
150
145
  _("Synchronize")
151
- _("Toggle")
152
146
  _("Update Alternate Content Source")
153
147
  _("Update CDN Configuration")
154
148
  _("Update Content Counts")
Binary file