katello 4.16.1 → 4.17.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (557) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +5 -3
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +82 -31
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +82 -31
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +82 -31
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +82 -31
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +83 -32
  8. data/app/assets/javascripts/katello/locale/de/katello.js +82 -31
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +82 -31
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +82 -31
  11. data/app/assets/javascripts/katello/locale/el/katello.js +82 -31
  12. data/app/assets/javascripts/katello/locale/en/katello.js +82 -31
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +84 -33
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +82 -31
  15. data/app/assets/javascripts/katello/locale/es/katello.js +82 -31
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +82 -31
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +83 -32
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +82 -31
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +83 -32
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +82 -31
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +82 -31
  22. data/app/assets/javascripts/katello/locale/id/katello.js +82 -31
  23. data/app/assets/javascripts/katello/locale/it/katello.js +84 -33
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +83 -32
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +82 -31
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +82 -31
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +82 -31
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +82 -31
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +82 -31
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +82 -31
  31. data/app/assets/javascripts/katello/locale/or/katello.js +82 -31
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +82 -31
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +83 -32
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +82 -31
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +82 -31
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +82 -31
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +82 -31
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +82 -31
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +84 -33
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +82 -31
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +83 -32
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +82 -31
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +82 -31
  44. data/app/assets/javascripts/katello/locale/te/katello.js +82 -31
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +82 -31
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +82 -31
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +82 -31
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +82 -31
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +83 -32
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +84 -33
  51. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -3
  52. data/app/controllers/katello/api/v2/content_view_components_controller.rb +6 -6
  53. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
  54. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
  55. data/app/controllers/katello/api/v2/content_views_controller.rb +12 -1
  56. data/app/controllers/katello/api/v2/exports_controller.rb +3 -0
  57. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -14
  58. data/app/controllers/katello/api/v2/organizations_controller.rb +10 -10
  59. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +8 -2
  60. data/app/lib/actions/helpers/rolling_cv_repos.rb +25 -0
  61. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +6 -1
  62. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +39 -0
  63. data/app/lib/actions/katello/content_view/create.rb +3 -0
  64. data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +40 -0
  65. data/app/lib/actions/katello/content_view/remove.rb +8 -4
  66. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +28 -0
  67. data/app/lib/actions/katello/content_view/update.rb +8 -0
  68. data/app/lib/actions/katello/repository/check_matching_content.rb +1 -8
  69. data/app/lib/actions/katello/repository/import_upload.rb +5 -0
  70. data/app/lib/actions/katello/repository/sync.rb +8 -4
  71. data/app/lib/actions/katello/repository/upload_files.rb +7 -1
  72. data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +3 -2
  73. data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb +8 -1
  74. data/app/lib/katello/errors.rb +8 -0
  75. data/app/lib/katello/validators/container_image_name_validator.rb +3 -2
  76. data/app/models/katello/authorization/repository.rb +11 -1
  77. data/app/models/katello/concerns/host_managed_extensions.rb +2 -2
  78. data/app/models/katello/concerns/pulp_database_unit.rb +12 -42
  79. data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -0
  80. data/app/models/katello/content_view.rb +14 -1
  81. data/app/models/katello/content_view_component.rb +4 -0
  82. data/app/models/katello/content_view_environment.rb +1 -0
  83. data/app/models/katello/content_view_version.rb +3 -2
  84. data/app/models/katello/host/content_facet.rb +18 -5
  85. data/app/models/katello/product_content.rb +3 -1
  86. data/app/models/katello/repository.rb +3 -3
  87. data/app/services/katello/content_unit_indexer.rb +1 -1
  88. data/app/services/katello/pulp3/api/content_guard.rb +1 -1
  89. data/app/services/katello/pulp3/api/core.rb +6 -0
  90. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +58 -1
  91. data/app/services/katello/pulp3/smart_proxy_repository.rb +67 -3
  92. data/app/services/katello/smart_proxy_helper.rb +6 -1
  93. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +15 -1
  94. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +15 -1
  95. data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +15 -2
  96. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +21 -2
  97. data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +15 -1
  98. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +20 -1
  99. data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +15 -2
  100. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +17 -1
  101. data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -0
  102. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -1
  103. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -0
  104. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -0
  105. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  106. data/app/views/katello/api/v2/environments/show.json.rabl +14 -0
  107. data/app/views/katello/api/v2/hosts/base.json.rabl +1 -0
  108. data/app/views/katello/api/v2/organizations/show.json.rabl +2 -0
  109. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  110. data/db/migrate/20190930192813_add_pulp3_hrefs_to_content_types.rb +1 -1
  111. data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
  112. data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
  113. data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
  114. data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
  115. data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +90 -31
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +90 -31
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +90 -31
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +90 -31
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +93 -60
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +90 -31
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +90 -31
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +90 -31
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +94 -35
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +90 -31
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +93 -40
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +90 -31
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +254 -192
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +90 -31
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +90 -31
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +90 -31
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +90 -31
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +90 -31
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +90 -35
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +113 -52
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +93 -34
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +90 -31
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +101 -40
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +90 -31
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +90 -31
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +90 -31
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +90 -31
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +90 -31
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +90 -31
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +90 -31
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +90 -31
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +93 -40
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +90 -31
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +90 -31
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +91 -34
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +90 -31
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +90 -31
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +90 -31
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +90 -31
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +90 -31
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +90 -31
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +90 -31
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +90 -31
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +90 -31
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +99 -40
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +92 -33
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +14 -14
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
  165. data/lib/katello/engine.rb +9 -1
  166. data/lib/katello/repository_types/python.rb +1 -1
  167. data/lib/katello/tasks/repository.rake +1 -1
  168. data/lib/katello/version.rb +1 -1
  169. data/locale/action_names.rb +186 -0
  170. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  171. data/locale/bn/katello.po +82 -31
  172. data/locale/bn/katello.po.time_stamp +0 -0
  173. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  174. data/locale/bn_IN/katello.po +82 -31
  175. data/locale/bn_IN/katello.po.time_stamp +0 -0
  176. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  177. data/locale/ca/katello.po +82 -31
  178. data/locale/ca/katello.po.time_stamp +0 -0
  179. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/cs/katello.po +82 -31
  181. data/locale/cs/katello.po.time_stamp +0 -0
  182. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  183. data/locale/cs_CZ/katello.po +83 -32
  184. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  185. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/de/katello.po +82 -31
  187. data/locale/de/katello.po.time_stamp +0 -0
  188. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/de_AT/katello.po +82 -31
  190. data/locale/de_AT/katello.po.time_stamp +0 -0
  191. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/de_DE/katello.po +82 -31
  193. data/locale/de_DE/katello.po.time_stamp +0 -0
  194. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  195. data/locale/el/katello.po +82 -31
  196. data/locale/el/katello.po.time_stamp +0 -0
  197. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/en/katello.po +82 -31
  199. data/locale/en/katello.po.time_stamp +0 -0
  200. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  201. data/locale/en_GB/katello.po +84 -33
  202. data/locale/en_GB/katello.po.time_stamp +0 -0
  203. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/en_US/katello.po +82 -31
  205. data/locale/en_US/katello.po.time_stamp +0 -0
  206. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  207. data/locale/es/katello.po +82 -31
  208. data/locale/es/katello.po.time_stamp +0 -0
  209. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/et_EE/katello.po +82 -31
  211. data/locale/et_EE/katello.po.time_stamp +0 -0
  212. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  213. data/locale/fr/katello.po +83 -32
  214. data/locale/fr/katello.po.time_stamp +0 -0
  215. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/gl/katello.po +82 -31
  217. data/locale/gl/katello.po.time_stamp +0 -0
  218. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/gu/katello.po +84 -33
  220. data/locale/gu/katello.po.time_stamp +0 -0
  221. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/he_IL/katello.po +82 -31
  223. data/locale/he_IL/katello.po.time_stamp +0 -0
  224. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/hi/katello.po +82 -31
  226. data/locale/hi/katello.po.time_stamp +0 -0
  227. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/id/katello.po +82 -31
  229. data/locale/id/katello.po.time_stamp +0 -0
  230. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/it/katello.po +85 -34
  232. data/locale/it/katello.po.time_stamp +0 -0
  233. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/ja/katello.po +83 -32
  235. data/locale/ja/katello.po.time_stamp +0 -0
  236. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/ka/katello.po +82 -31
  238. data/locale/ka/katello.po.time_stamp +0 -0
  239. data/locale/katello.pot +1232 -1140
  240. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/kn/katello.po +82 -31
  242. data/locale/kn/katello.po.time_stamp +0 -0
  243. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/ko/katello.po +82 -31
  245. data/locale/ko/katello.po.time_stamp +0 -0
  246. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/ml_IN/katello.po +82 -31
  248. data/locale/ml_IN/katello.po.time_stamp +0 -0
  249. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  250. data/locale/mr/katello.po +82 -31
  251. data/locale/mr/katello.po.time_stamp +0 -0
  252. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/nl_NL/katello.po +82 -31
  254. data/locale/nl_NL/katello.po.time_stamp +0 -0
  255. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  256. data/locale/or/katello.po +82 -31
  257. data/locale/or/katello.po.time_stamp +0 -0
  258. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/pa/katello.po +82 -31
  260. data/locale/pa/katello.po.time_stamp +0 -0
  261. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  262. data/locale/pl/katello.po +84 -33
  263. data/locale/pl/katello.po.time_stamp +0 -0
  264. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/pl_PL/katello.po +82 -31
  266. data/locale/pl_PL/katello.po.time_stamp +0 -0
  267. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  268. data/locale/pt/katello.po +82 -31
  269. data/locale/pt/katello.po.time_stamp +0 -0
  270. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/pt_BR/katello.po +82 -31
  272. data/locale/pt_BR/katello.po.time_stamp +0 -0
  273. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  274. data/locale/ro/katello.po +82 -31
  275. data/locale/ro/katello.po.time_stamp +0 -0
  276. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  277. data/locale/ro_RO/katello.po +82 -31
  278. data/locale/ro_RO/katello.po.time_stamp +0 -0
  279. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  280. data/locale/ru/katello.po +85 -34
  281. data/locale/ru/katello.po.time_stamp +0 -0
  282. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  283. data/locale/sl/katello.po +82 -31
  284. data/locale/sl/katello.po.time_stamp +0 -0
  285. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  286. data/locale/sv_SE/katello.po +84 -33
  287. data/locale/sv_SE/katello.po.time_stamp +0 -0
  288. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  289. data/locale/ta/katello.po +82 -31
  290. data/locale/ta/katello.po.time_stamp +0 -0
  291. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  292. data/locale/ta_IN/katello.po +82 -31
  293. data/locale/ta_IN/katello.po.time_stamp +0 -0
  294. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  295. data/locale/te/katello.po +82 -31
  296. data/locale/te/katello.po.time_stamp +0 -0
  297. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  298. data/locale/tr/katello.po +82 -31
  299. data/locale/tr/katello.po.time_stamp +0 -0
  300. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  301. data/locale/vi/katello.po +82 -31
  302. data/locale/vi/katello.po.time_stamp +0 -0
  303. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  304. data/locale/vi_VN/katello.po +82 -31
  305. data/locale/vi_VN/katello.po.time_stamp +0 -0
  306. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  307. data/locale/zh/katello.po +82 -31
  308. data/locale/zh/katello.po.time_stamp +0 -0
  309. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  310. data/locale/zh_CN/katello.po +83 -32
  311. data/locale/zh_CN/katello.po.time_stamp +0 -0
  312. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  313. data/locale/zh_TW/katello.po +85 -34
  314. data/locale/zh_TW/katello.po.time_stamp +0 -0
  315. data/webpack/ForemanColumnExtensions/index.js +12 -4
  316. data/webpack/components/ActivationKeysSearch/index.js +6 -7
  317. data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
  318. data/webpack/components/Bookmark/Bookmark.scss +3 -3
  319. data/webpack/components/Bookmark/index.js +7 -2
  320. data/webpack/components/EditableSwitch.js +1 -1
  321. data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
  322. data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
  323. data/webpack/components/Errata/index.js +1 -24
  324. data/webpack/components/Loading.js +10 -6
  325. data/webpack/components/Packages/index.js +2 -1
  326. data/webpack/components/SelectAllCheckbox/index.js +7 -3
  327. data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
  328. data/webpack/components/Table/EmptyStateMessage.js +12 -14
  329. data/webpack/components/Table/MainTable.js +8 -7
  330. data/webpack/components/Table/MainTable.scss +4 -4
  331. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
  332. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
  333. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
  334. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
  335. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
  336. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
  337. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
  338. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
  339. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
  340. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  341. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
  342. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
  343. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
  344. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
  345. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
  346. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
  347. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
  348. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
  349. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
  350. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
  351. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
  352. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
  353. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
  354. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
  355. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
  356. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
  357. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
  358. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
  359. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
  360. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
  361. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
  362. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
  363. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
  364. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
  365. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
  366. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
  367. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
  368. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
  369. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
  370. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
  371. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
  372. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
  373. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
  374. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
  375. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
  376. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
  377. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
  378. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
  379. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
  380. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
  381. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
  382. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
  383. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
  384. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
  385. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
  386. data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
  387. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
  388. data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
  389. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
  390. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
  391. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
  392. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
  393. data/webpack/containers/Application/overrides.scss +7 -7
  394. data/webpack/ouia_id_check.js +15 -11
  395. data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
  396. data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
  397. data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
  398. data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
  399. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
  400. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
  401. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
  402. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
  403. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
  404. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
  405. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
  406. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
  407. data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
  408. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
  409. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
  410. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
  411. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
  412. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
  413. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
  414. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
  415. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
  416. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
  417. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
  418. data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
  419. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
  420. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
  421. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
  422. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
  423. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
  424. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  425. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
  426. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
  427. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
  428. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
  429. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
  430. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
  431. data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
  432. data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
  433. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
  434. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
  435. data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
  436. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
  437. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
  438. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
  439. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
  440. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
  441. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
  442. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
  443. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
  444. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
  445. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
  446. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
  447. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
  448. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
  449. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
  450. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
  451. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
  452. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
  453. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
  454. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
  455. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
  456. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
  457. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
  458. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
  459. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
  460. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
  461. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
  462. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
  463. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
  464. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
  465. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
  466. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
  467. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
  468. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
  469. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
  470. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
  471. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
  472. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
  473. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
  474. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
  475. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
  476. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
  477. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
  478. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
  479. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
  480. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
  481. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
  482. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
  483. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  484. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
  485. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
  486. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
  487. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
  488. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
  489. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
  490. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
  491. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
  492. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
  493. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
  494. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
  495. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
  496. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
  497. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
  498. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
  499. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
  500. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
  501. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
  502. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
  503. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
  504. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
  505. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
  506. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
  507. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  508. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
  509. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
  510. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
  511. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
  512. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
  513. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
  514. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
  515. data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
  516. data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
  517. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
  518. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
  519. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
  520. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
  521. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
  522. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
  523. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
  524. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
  525. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
  526. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
  527. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
  528. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
  529. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
  530. data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
  531. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
  532. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
  533. data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
  534. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
  535. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
  536. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
  537. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
  538. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
  539. data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
  540. data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
  541. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
  542. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
  543. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  544. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
  545. data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
  546. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
  547. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
  548. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
  549. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
  550. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
  551. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
  552. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
  553. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
  554. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
  555. metadata +125 -53
  556. data/app/models/katello/yum_metadata_file.rb +0 -22
  557. data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
@@ -776,6 +776,9 @@
776
776
  "Ansible collections": [
777
777
  "Ansible 集合"
778
778
  ],
779
+ "Any updates to image mode host(s) will be lost on the next reboot.": [
780
+ ""
781
+ ],
779
782
  "Applicability Batch Size": [
780
783
  "适用批次数量"
781
784
  ],
@@ -803,9 +806,6 @@
803
806
  "Apply errata": [
804
807
  ""
805
808
  ],
806
- "Apply erratum": [
807
- ""
808
- ],
809
809
  "Apply to all repositories in the CV": [
810
810
  "应用到 CV 中的所有软件仓库"
811
811
  ],
@@ -1220,13 +1220,19 @@
1220
1220
  "Cannot add repositories to a composite content view": [
1221
1221
  "无法将仓库添加到复合内容视图"
1222
1222
  ],
1223
+ "Cannot add rolling content view to composite content view": [
1224
+ ""
1225
+ ],
1226
+ "Cannot assign content view environment %s: The content view has either not been published or has not been promoted to that lifecycle environment.": [
1227
+ ""
1228
+ ],
1223
1229
  "Cannot associate a Red Hat provider with a custom product": [
1224
1230
  ""
1225
1231
  ],
1226
1232
  "Cannot associate a component to a non composite content view": [
1227
1233
  "无法将一个组件和一个非复合内容视图相关联"
1228
1234
  ],
1229
- "Cannot be disabled because it is part of a published content view": [
1235
+ "Cannot be disabled because it is part of a content view": [
1230
1236
  ""
1231
1237
  ],
1232
1238
  "Cannot calculate name for custom repos": [
@@ -1466,9 +1472,6 @@
1466
1472
  "Components": [
1467
1473
  "组件"
1468
1474
  ],
1469
- "Composite": [
1470
- "组成"
1471
- ],
1472
1475
  "Composite Content View": [
1473
1476
  "复合内容视图"
1474
1477
  ],
@@ -1499,15 +1502,6 @@
1499
1502
  "Consider changing the Lifecycle Environment's Registry Name Pattern to something more specific.": [
1500
1503
  "考虑将生命周期环境的注册表名称特征改为更具体。"
1501
1504
  ],
1502
- "Consisting of multiple content views": [
1503
- "由多个组件内容视图组成"
1504
- ],
1505
- "Consists of content views": [
1506
- "由内容视图组成"
1507
- ],
1508
- "Consists of repositories": [
1509
- "由仓库组成"
1510
- ],
1511
1505
  "Consumed": [
1512
1506
  "已消耗"
1513
1507
  ],
@@ -1544,6 +1538,15 @@
1544
1538
  "Container tags": [
1545
1539
  "容器标签"
1546
1540
  ],
1541
+ "Contains content views. You must choose the version to use for each content view.": [
1542
+ ""
1543
+ ],
1544
+ "Contains repositories. Always serves the latest synced content, without the need to publish versions.": [
1545
+ ""
1546
+ ],
1547
+ "Contains repositories. Versions are published and optionally filtered.": [
1548
+ ""
1549
+ ],
1547
1550
  "Content": [
1548
1551
  "内容"
1549
1552
  ],
@@ -2150,8 +2153,8 @@
2150
2153
  "Default System SLA": [
2151
2154
  "默认系统 SLA"
2152
2155
  ],
2153
- "Default content view versions cannot be promoted": [
2154
- "无法提升默认的内容视图版本"
2156
+ "Default and Rolling content view versions cannot be promoted": [
2157
+ ""
2155
2158
  ],
2156
2159
  "Default download policy for Smart Proxy syncs (either 'inherit', immediate', or 'on_demand')": [
2157
2160
  "智能代理同步默认下载策略('inherit'、immediate' 或'on_demand')"
@@ -3695,7 +3698,7 @@
3695
3698
  "Installable bugfix/enhancement errata": [
3696
3699
  ""
3697
3700
  ],
3698
- "Installable errata are applicable errata that are available in the host's content view and lifecycle environment.": [
3701
+ "Installable errata are applicable errata that are available in the host's assigned content view environments.": [
3699
3702
  ""
3700
3703
  ],
3701
3704
  "Installable security errata": [
@@ -3842,6 +3845,27 @@
3842
3845
  "It is only allowed for Non-Redhat Yum repositories.": [
3843
3846
  ""
3844
3847
  ],
3848
+ "It's not possible to bulk remove versions from a rolling content view.": [
3849
+ ""
3850
+ ],
3851
+ "It's not possible to copy a rolling content view.": [
3852
+ ""
3853
+ ],
3854
+ "It's not possible to create a filter for a rolling content view.": [
3855
+ ""
3856
+ ],
3857
+ "It's not possible to destroy a version of a rolling content view.": [
3858
+ ""
3859
+ ],
3860
+ "It's not possible to export a rolling content view.": [
3861
+ ""
3862
+ ],
3863
+ "It's not possible to promote a rolling content view.": [
3864
+ ""
3865
+ ],
3866
+ "It's not possible to publish a rolling content view.": [
3867
+ ""
3868
+ ],
3845
3869
  "Job '${description}' completed": [
3846
3870
  "作为 '${description}' 已完成"
3847
3871
  ],
@@ -4517,6 +4541,9 @@
4517
4541
  "Multi-entitlement": [
4518
4542
  "多权利"
4519
4543
  ],
4544
+ "Must be Ascii alphanumeric, '_' or '-'": [
4545
+ ""
4546
+ ],
4520
4547
  "N/A": [
4521
4548
  "不适用"
4522
4549
  ],
@@ -4874,7 +4901,7 @@
4874
4901
  "No packages available to install": [
4875
4902
  "没有可安装的软件包"
4876
4903
  ],
4877
- "No packages available to install on this host. Please check the host's content view and lifecycle environment.": [
4904
+ "No packages available to install on this host. Please check the host's assigned content view environments.": [
4878
4905
  ""
4879
4906
  ],
4880
4907
  "No packages removed": [
@@ -5138,6 +5165,9 @@
5138
5165
  "Organization required": [
5139
5166
  "需要的机构"
5140
5167
  ],
5168
+ "Orphan cleanup failed to delete some Pulp repository versions. Check the logs for more details.": [
5169
+ ""
5170
+ ],
5141
5171
  "Orphaned Content Protection Time": [
5142
5172
  "孤立的内容保护时间"
5143
5173
  ],
@@ -5291,6 +5321,9 @@
5291
5321
  "Package Update scheduled by %s": [
5292
5322
  "%s调度的软件包更新"
5293
5323
  ],
5324
+ "Package actions will be transient": [
5325
+ ""
5326
+ ],
5294
5327
  "Package group update canceled": [
5295
5328
  "软件包组更新已取消"
5296
5329
  ],
@@ -5849,6 +5882,9 @@
5849
5882
  "Refresh Manifest": [
5850
5883
  "刷新清单"
5851
5884
  ],
5885
+ "Refresh RollingCV Repo": [
5886
+ ""
5887
+ ],
5852
5888
  "Refresh all alternate content sources": [
5853
5889
  ""
5854
5890
  ],
@@ -6350,7 +6386,7 @@
6350
6386
  "Review affected environments": [
6351
6387
  "检查受影响的环境"
6352
6388
  ],
6353
- "Review and optionally exclude hosts from your selection.": [
6389
+ "Review and optionally exclude hosts from your selection. Note that package actions on any image mode hosts will be transient and lost on the next reboot.": [
6354
6390
  ""
6355
6391
  ],
6356
6392
  "Review and then click {submitBtnText}.": [
@@ -6383,6 +6419,12 @@
6383
6419
  "Rollback image digest": [
6384
6420
  ""
6385
6421
  ],
6422
+ "Rolling content view": [
6423
+ ""
6424
+ ],
6425
+ "Rolling content views": [
6426
+ ""
6427
+ ],
6386
6428
  "Rules to be added": [
6387
6429
  "要添加的规则"
6388
6430
  ],
@@ -6815,9 +6857,6 @@
6815
6857
  "Simplified": [
6816
6858
  "简化的"
6817
6859
  ],
6818
- "Single content view consisting of e.g. repositories": [
6819
- "包含例如仓库的单一内容视图"
6820
- ],
6821
6860
  "Size of file to upload": [
6822
6861
  "要上传的文件大小"
6823
6862
  ],
@@ -6860,6 +6899,9 @@
6860
6899
  "Solve dependencies": [
6861
6900
  "解决依赖关系"
6862
6901
  ],
6902
+ "Some environments are disabled because they are not associated with all of the affected hosts' content sources.": [
6903
+ ""
6904
+ ],
6863
6905
  "Some environments are disabled because they are not associated with the host's content source.": [
6864
6906
  ""
6865
6907
  ],
@@ -7454,6 +7496,9 @@
7454
7496
  "The following repositories provided in the import metadata have an incorrect content type or provider type. Make sure the export and import repositories are of the same type before importing\\n %{repos}": [
7455
7497
  "导入元数据中提供的以下存储库的内容类型或供应商类型不正确。在导入 %{repos} 之前,请确保导出和导入存储库的类型相同"
7456
7498
  ],
7499
+ "The generated container repository name is invalid. Please review the lifecycle environment's registry name pattern. It may be caused by special characters in the components that make up the name, like the organization.": [
7500
+ ""
7501
+ ],
7457
7502
  "The id of the content source": [
7458
7503
  "内容源的 id"
7459
7504
  ],
@@ -7673,8 +7718,8 @@
7673
7718
  "This environment is used in one or more multi-environment activation keys. The environment will simply be removed from the multi-environment keys. The content view and lifecycle environment you select here will only apply to single-environment activation keys. See hammer activation-key --help for more details.": [
7674
7719
  ""
7675
7720
  ],
7676
- "This erratum is not installable because it is not in this host's content view and lifecycle environment.": [
7677
- "此勘误不可安装,因为它不在此主机的内容视图和生命周期环境中。"
7721
+ "This erratum is not installable because it is not in this host's assigned content view environments.": [
7722
+ ""
7678
7723
  ],
7679
7724
  "This host does not have any Module streams.": [
7680
7725
  "此主机没有任何模块流。"
@@ -7718,9 +7763,6 @@
7718
7763
  "This page shows the subscriptions available from this organization's subscription manifest. {br} Learn more about your overall subscription usage with the {subscriptionsService}.": [
7719
7764
  ""
7720
7765
  ],
7721
- "This repository has pending tasks in associated content views. Please wait for the tasks: ": [
7722
- ""
7723
- ],
7724
7766
  "This repository is not suggested. Please see additional %(anchorBegin)sdocumentation%(anchorEnd)s prior to use.": [
7725
7767
  "不建议使用此仓库。使用前,请参阅 %(anchorBegin)s文档%(anchorEnd)s"
7726
7768
  ],
@@ -7931,6 +7973,12 @@
7931
7973
  "Unable to detect puppet path": [
7932
7974
  "无法检测到 puppet 路径"
7933
7975
  ],
7976
+ "Unable to find a content view with ID %s": [
7977
+ ""
7978
+ ],
7979
+ "Unable to find a lifecycle environment with ID %s": [
7980
+ ""
7981
+ ],
7934
7982
  "Unable to find product '%s' in organization '%s'": [
7935
7983
  "在机构 '%s' 中找不到产品 '%s'"
7936
7984
  ],
@@ -8417,6 +8465,9 @@
8417
8465
  "View content views": [
8418
8466
  ""
8419
8467
  ],
8468
+ "View details": [
8469
+ ""
8470
+ ],
8420
8471
  "View documentation": [
8421
8472
  ""
8422
8473
  ],
@@ -8690,6 +8741,9 @@
8690
8741
  "are only allowed for Yum repositories.": [
8691
8742
  "仅允许用于Yum存储库。"
8692
8743
  ],
8744
+ "assign a new content source to the hosts": [
8745
+ ""
8746
+ ],
8693
8747
  "attempted to sync a non-library repository.": [
8694
8748
  ""
8695
8749
  ],
@@ -9047,9 +9101,6 @@
9047
9101
  "interpret specified object to return only Repositories that can be associated with specified object. Only 'content_view' & 'content_view_version' are supported.": [
9048
9102
  "解析指定的对象只返回与特定对象关联的仓库。只支持 'content_view' 和 'content_view_version'。"
9049
9103
  ],
9050
- "invalid container image name": [
9051
- "无效的容器镜像名称"
9052
- ],
9053
9104
  "invalid: Repositories can only require one OS version.": [
9054
9105
  "无效:存储库只能要求一个操作系统版本。"
9055
9106
  ],
@@ -3,10 +3,10 @@
3
3
  "locale_data": {
4
4
  "katello": {
5
5
  "": {
6
- "Project-Id-Version": "katello 4.16.0.pre.master",
6
+ "Project-Id-Version": "katello 4.17.0.pre.master",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2017-12-19 20:14+0000",
9
- "Last-Translator": "0868a4d1af5275b3f70b0a6dac4c99a4, 2024",
9
+ "Last-Translator": "Bryan Kearney <bryan.kearney@gmail.com>, 2024",
10
10
  "Language-Team": "Chinese (Taiwan) (https://app.transifex.com/foreman/teams/114/zh_TW/)",
11
11
  "MIME-Version": "1.0",
12
12
  "Content-Type": "text/plain; charset=UTF-8",
@@ -777,6 +777,9 @@
777
777
  "Ansible collections": [
778
778
  ""
779
779
  ],
780
+ "Any updates to image mode host(s) will be lost on the next reboot.": [
781
+ ""
782
+ ],
780
783
  "Applicability Batch Size": [
781
784
  ""
782
785
  ],
@@ -804,9 +807,6 @@
804
807
  "Apply errata": [
805
808
  ""
806
809
  ],
807
- "Apply erratum": [
808
- ""
809
- ],
810
810
  "Apply to all repositories in the CV": [
811
811
  ""
812
812
  ],
@@ -1221,13 +1221,19 @@
1221
1221
  "Cannot add repositories to a composite content view": [
1222
1222
  "無法新增軟體庫至複合式內容視域中"
1223
1223
  ],
1224
+ "Cannot add rolling content view to composite content view": [
1225
+ ""
1226
+ ],
1227
+ "Cannot assign content view environment %s: The content view has either not been published or has not been promoted to that lifecycle environment.": [
1228
+ ""
1229
+ ],
1224
1230
  "Cannot associate a Red Hat provider with a custom product": [
1225
1231
  ""
1226
1232
  ],
1227
1233
  "Cannot associate a component to a non composite content view": [
1228
1234
  ""
1229
1235
  ],
1230
- "Cannot be disabled because it is part of a published content view": [
1236
+ "Cannot be disabled because it is part of a content view": [
1231
1237
  ""
1232
1238
  ],
1233
1239
  "Cannot calculate name for custom repos": [
@@ -1467,9 +1473,6 @@
1467
1473
  "Components": [
1468
1474
  "元件"
1469
1475
  ],
1470
- "Composite": [
1471
- "複合式"
1472
- ],
1473
1476
  "Composite Content View": [
1474
1477
  ""
1475
1478
  ],
@@ -1500,15 +1503,6 @@
1500
1503
  "Consider changing the Lifecycle Environment's Registry Name Pattern to something more specific.": [
1501
1504
  ""
1502
1505
  ],
1503
- "Consisting of multiple content views": [
1504
- ""
1505
- ],
1506
- "Consists of content views": [
1507
- ""
1508
- ],
1509
- "Consists of repositories": [
1510
- ""
1511
- ],
1512
1506
  "Consumed": [
1513
1507
  "已消耗"
1514
1508
  ],
@@ -1545,6 +1539,15 @@
1545
1539
  "Container tags": [
1546
1540
  ""
1547
1541
  ],
1542
+ "Contains content views. You must choose the version to use for each content view.": [
1543
+ ""
1544
+ ],
1545
+ "Contains repositories. Always serves the latest synced content, without the need to publish versions.": [
1546
+ ""
1547
+ ],
1548
+ "Contains repositories. Versions are published and optionally filtered.": [
1549
+ ""
1550
+ ],
1548
1551
  "Content": [
1549
1552
  "內容"
1550
1553
  ],
@@ -2151,8 +2154,8 @@
2151
2154
  "Default System SLA": [
2152
2155
  "預設系統 SLA"
2153
2156
  ],
2154
- "Default content view versions cannot be promoted": [
2155
- "預設內容視域版本無法推送"
2157
+ "Default and Rolling content view versions cannot be promoted": [
2158
+ ""
2156
2159
  ],
2157
2160
  "Default download policy for Smart Proxy syncs (either 'inherit', immediate', or 'on_demand')": [
2158
2161
  ""
@@ -3696,7 +3699,7 @@
3696
3699
  "Installable bugfix/enhancement errata": [
3697
3700
  ""
3698
3701
  ],
3699
- "Installable errata are applicable errata that are available in the host's content view and lifecycle environment.": [
3702
+ "Installable errata are applicable errata that are available in the host's assigned content view environments.": [
3700
3703
  ""
3701
3704
  ],
3702
3705
  "Installable security errata": [
@@ -3843,6 +3846,27 @@
3843
3846
  "It is only allowed for Non-Redhat Yum repositories.": [
3844
3847
  ""
3845
3848
  ],
3849
+ "It's not possible to bulk remove versions from a rolling content view.": [
3850
+ ""
3851
+ ],
3852
+ "It's not possible to copy a rolling content view.": [
3853
+ ""
3854
+ ],
3855
+ "It's not possible to create a filter for a rolling content view.": [
3856
+ ""
3857
+ ],
3858
+ "It's not possible to destroy a version of a rolling content view.": [
3859
+ ""
3860
+ ],
3861
+ "It's not possible to export a rolling content view.": [
3862
+ ""
3863
+ ],
3864
+ "It's not possible to promote a rolling content view.": [
3865
+ ""
3866
+ ],
3867
+ "It's not possible to publish a rolling content view.": [
3868
+ ""
3869
+ ],
3846
3870
  "Job '${description}' completed": [
3847
3871
  ""
3848
3872
  ],
@@ -4518,6 +4542,9 @@
4518
4542
  "Multi-entitlement": [
4519
4543
  "多重權利"
4520
4544
  ],
4545
+ "Must be Ascii alphanumeric, '_' or '-'": [
4546
+ ""
4547
+ ],
4521
4548
  "N/A": [
4522
4549
  "N/A"
4523
4550
  ],
@@ -4875,7 +4902,7 @@
4875
4902
  "No packages available to install": [
4876
4903
  ""
4877
4904
  ],
4878
- "No packages available to install on this host. Please check the host's content view and lifecycle environment.": [
4905
+ "No packages available to install on this host. Please check the host's assigned content view environments.": [
4879
4906
  ""
4880
4907
  ],
4881
4908
  "No packages removed": [
@@ -5139,6 +5166,9 @@
5139
5166
  "Organization required": [
5140
5167
  "需要的組織"
5141
5168
  ],
5169
+ "Orphan cleanup failed to delete some Pulp repository versions. Check the logs for more details.": [
5170
+ ""
5171
+ ],
5142
5172
  "Orphaned Content Protection Time": [
5143
5173
  ""
5144
5174
  ],
@@ -5292,6 +5322,9 @@
5292
5322
  "Package Update scheduled by %s": [
5293
5323
  "套件更新,由 %s 排程"
5294
5324
  ],
5325
+ "Package actions will be transient": [
5326
+ ""
5327
+ ],
5295
5328
  "Package group update canceled": [
5296
5329
  "已取消套件群組更新"
5297
5330
  ],
@@ -5850,6 +5883,9 @@
5850
5883
  "Refresh Manifest": [
5851
5884
  "更新清單"
5852
5885
  ],
5886
+ "Refresh RollingCV Repo": [
5887
+ ""
5888
+ ],
5853
5889
  "Refresh all alternate content sources": [
5854
5890
  ""
5855
5891
  ],
@@ -6351,7 +6387,7 @@
6351
6387
  "Review affected environments": [
6352
6388
  ""
6353
6389
  ],
6354
- "Review and optionally exclude hosts from your selection.": [
6390
+ "Review and optionally exclude hosts from your selection. Note that package actions on any image mode hosts will be transient and lost on the next reboot.": [
6355
6391
  ""
6356
6392
  ],
6357
6393
  "Review and then click {submitBtnText}.": [
@@ -6384,6 +6420,12 @@
6384
6420
  "Rollback image digest": [
6385
6421
  ""
6386
6422
  ],
6423
+ "Rolling content view": [
6424
+ ""
6425
+ ],
6426
+ "Rolling content views": [
6427
+ ""
6428
+ ],
6387
6429
  "Rules to be added": [
6388
6430
  ""
6389
6431
  ],
@@ -6816,9 +6858,6 @@
6816
6858
  "Simplified": [
6817
6859
  ""
6818
6860
  ],
6819
- "Single content view consisting of e.g. repositories": [
6820
- ""
6821
- ],
6822
6861
  "Size of file to upload": [
6823
6862
  ""
6824
6863
  ],
@@ -6861,6 +6900,9 @@
6861
6900
  "Solve dependencies": [
6862
6901
  ""
6863
6902
  ],
6903
+ "Some environments are disabled because they are not associated with all of the affected hosts' content sources.": [
6904
+ ""
6905
+ ],
6864
6906
  "Some environments are disabled because they are not associated with the host's content source.": [
6865
6907
  ""
6866
6908
  ],
@@ -7455,6 +7497,9 @@
7455
7497
  "The following repositories provided in the import metadata have an incorrect content type or provider type. Make sure the export and import repositories are of the same type before importing\\n %{repos}": [
7456
7498
  ""
7457
7499
  ],
7500
+ "The generated container repository name is invalid. Please review the lifecycle environment's registry name pattern. It may be caused by special characters in the components that make up the name, like the organization.": [
7501
+ ""
7502
+ ],
7458
7503
  "The id of the content source": [
7459
7504
  ""
7460
7505
  ],
@@ -7674,7 +7719,7 @@
7674
7719
  "This environment is used in one or more multi-environment activation keys. The environment will simply be removed from the multi-environment keys. The content view and lifecycle environment you select here will only apply to single-environment activation keys. See hammer activation-key --help for more details.": [
7675
7720
  ""
7676
7721
  ],
7677
- "This erratum is not installable because it is not in this host's content view and lifecycle environment.": [
7722
+ "This erratum is not installable because it is not in this host's assigned content view environments.": [
7678
7723
  ""
7679
7724
  ],
7680
7725
  "This host does not have any Module streams.": [
@@ -7719,9 +7764,6 @@
7719
7764
  "This page shows the subscriptions available from this organization's subscription manifest. {br} Learn more about your overall subscription usage with the {subscriptionsService}.": [
7720
7765
  ""
7721
7766
  ],
7722
- "This repository has pending tasks in associated content views. Please wait for the tasks: ": [
7723
- ""
7724
- ],
7725
7767
  "This repository is not suggested. Please see additional %(anchorBegin)sdocumentation%(anchorEnd)s prior to use.": [
7726
7768
  ""
7727
7769
  ],
@@ -7932,6 +7974,12 @@
7932
7974
  "Unable to detect puppet path": [
7933
7975
  ""
7934
7976
  ],
7977
+ "Unable to find a content view with ID %s": [
7978
+ ""
7979
+ ],
7980
+ "Unable to find a lifecycle environment with ID %s": [
7981
+ ""
7982
+ ],
7935
7983
  "Unable to find product '%s' in organization '%s'": [
7936
7984
  ""
7937
7985
  ],
@@ -8418,6 +8466,9 @@
8418
8466
  "View content views": [
8419
8467
  ""
8420
8468
  ],
8469
+ "View details": [
8470
+ ""
8471
+ ],
8421
8472
  "View documentation": [
8422
8473
  ""
8423
8474
  ],
@@ -8691,6 +8742,9 @@
8691
8742
  "are only allowed for Yum repositories.": [
8692
8743
  ""
8693
8744
  ],
8745
+ "assign a new content source to the hosts": [
8746
+ ""
8747
+ ],
8694
8748
  "attempted to sync a non-library repository.": [
8695
8749
  ""
8696
8750
  ],
@@ -9048,9 +9102,6 @@
9048
9102
  "interpret specified object to return only Repositories that can be associated with specified object. Only 'content_view' & 'content_view_version' are supported.": [
9049
9103
  ""
9050
9104
  ],
9051
- "invalid container image name": [
9052
- ""
9053
- ],
9054
9105
  "invalid: Repositories can only require one OS version.": [
9055
9106
  ""
9056
9107
  ],
@@ -1,6 +1,7 @@
1
1
  module Katello
2
2
  # rubocop:disable Metrics/ClassLength
3
3
  class Api::Registry::RegistryProxiesController < Api::V2::ApiController
4
+ include Katello::Authentication::ClientAuthentication
4
5
  before_action :disable_strong_params
5
6
  before_action :confirm_settings
6
7
  skip_before_action :authorize
@@ -43,6 +44,18 @@ module Katello
43
44
  end
44
45
  end
45
46
 
47
+ def authenticate_cert_request
48
+ if cert_present?
49
+ client_cert = ::Cert::RhsmClient.new(cert_from_request)
50
+ uuid = client_cert.uuid
51
+ auth = authenticate_client
52
+ if auth
53
+ ::User.current = ::User.anonymous_admin
54
+ @host = Katello::Host::ContentFacet.find_by(uuid: uuid)&.host
55
+ end
56
+ end
57
+ end
58
+
46
59
  def redirect_authorization_headers
47
60
  response.headers['Docker-Distribution-API-Version'] = 'registry/2.0'
48
61
  response.headers['Www-Authenticate'] = "Bearer realm=\"#{request_url}/v2/token\"," \
@@ -64,6 +77,9 @@ module Katello
64
77
  redirect_authorization_headers if redirect_on_failure
65
78
  return false
66
79
  end
80
+ else
81
+ authenticate_cert_request
82
+ return true if @host
67
83
  end
68
84
  false
69
85
  end
@@ -454,7 +470,7 @@ module Katello
454
470
  return nil unless params[:repository]
455
471
  repository = Repository.docker_type.find_by(container_repository_name: params[:repository])
456
472
  if require_user_authorization?(repository)
457
- repository = Repository.readable_docker_catalog.find_by(container_repository_name: params[:repository])
473
+ repository = Repository.readable_docker_catalog(@host).find_by(container_repository_name: params[:repository])
458
474
  end
459
475
  repository
460
476
  end
@@ -660,7 +676,7 @@ module Katello
660
676
  params[:per_page] = params[:n] || 25
661
677
  params[:search] = params[:q]
662
678
 
663
- search_results = scoped_search(Repository.readable_docker_catalog.distinct,
679
+ search_results = scoped_search(Repository.readable_docker_catalog(@host).distinct,
664
680
  :container_repository_name, :asc, options)
665
681
 
666
682
  results = {
@@ -674,7 +690,7 @@ module Katello
674
690
  end
675
691
 
676
692
  def catalog
677
- repositories = Repository.readable_docker_catalog.collect do |repository|
693
+ repositories = Repository.readable_docker_catalog(@host).collect do |repository|
678
694
  repository.container_repository_name
679
695
  end
680
696
  render json: { repositories: repositories }
@@ -47,7 +47,7 @@ module Katello
47
47
  CAST (#{kcc}.composite_content_view_id as BOOLEAN) ASC, #{kc}.name
48
48
  SQL
49
49
  query = Katello::ContentView.readable.in_organization(@organization)
50
- query = query&.non_composite&.non_default&.generated_for_none
50
+ query = query&.non_composite&.non_default&.non_rolling&.generated_for_none
51
51
  component_cv_ids = Katello::ContentViewComponent.where(composite_content_view_id: @view.id).select(:content_view_id)
52
52
  query = case params[:status]
53
53
  when "Not added"
@@ -145,23 +145,23 @@ module Katello
145
145
  def get_total(status)
146
146
  case status
147
147
  when 'All'
148
- return Katello::ContentView.non_default.non_composite.in_organization(@organization).count
148
+ return Katello::ContentView.non_default.non_composite.non_rolling.in_organization(@organization).count
149
149
  when 'Added'
150
150
  return Katello::ContentViewComponent.where(composite_content_view_id: @view.id).count
151
151
  when 'Not added'
152
- return Katello::ContentView.non_default.non_composite.in_organization(@organization).count - Katello::ContentViewComponent.where(composite_content_view_id: @view.id).count
152
+ return Katello::ContentView.non_default.non_composite.non_rolling.in_organization(@organization).count - Katello::ContentViewComponent.where(composite_content_view_id: @view.id).count
153
153
  else
154
- return Katello::ContentView.non_default.non_composite.in_organization(@organization).count
154
+ return Katello::ContentView.non_default.non_composite.non_rolling.in_organization(@organization).count
155
155
  end
156
156
  end
157
157
 
158
158
  def find_composite_content_view
159
- @view = ContentView.composite.non_default.readable.find_by(id: params[:composite_content_view_id])
159
+ @view = ContentView.composite.non_default.non_rolling.readable.find_by(id: params[:composite_content_view_id])
160
160
  throw_resource_not_found(name: 'composite content view', id: params[:composite_content_view_id]) if @view.nil?
161
161
  end
162
162
 
163
163
  def find_composite_content_view_for_edit
164
- @view = ContentView.composite.non_default.editable.find_by(id: params[:composite_content_view_id])
164
+ @view = ContentView.composite.non_default.non_rolling.editable.find_by(id: params[:composite_content_view_id])
165
165
  throw_resource_not_found(name: 'composite content view', id: params[:composite_content_view_id]) if @view.nil?
166
166
  end
167
167