katello 4.17.0 → 4.18.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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/locale/bn/katello.js +148 -4
  3. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +148 -4
  4. data/app/assets/javascripts/katello/locale/ca/katello.js +148 -4
  5. data/app/assets/javascripts/katello/locale/cs/katello.js +148 -4
  6. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +148 -4
  7. data/app/assets/javascripts/katello/locale/de/katello.js +147 -3
  8. data/app/assets/javascripts/katello/locale/de_AT/katello.js +148 -4
  9. data/app/assets/javascripts/katello/locale/de_DE/katello.js +148 -4
  10. data/app/assets/javascripts/katello/locale/el/katello.js +148 -4
  11. data/app/assets/javascripts/katello/locale/en/katello.js +148 -4
  12. data/app/assets/javascripts/katello/locale/en_GB/katello.js +148 -4
  13. data/app/assets/javascripts/katello/locale/en_US/katello.js +148 -4
  14. data/app/assets/javascripts/katello/locale/es/katello.js +147 -3
  15. data/app/assets/javascripts/katello/locale/et_EE/katello.js +148 -4
  16. data/app/assets/javascripts/katello/locale/fr/katello.js +147 -3
  17. data/app/assets/javascripts/katello/locale/gl/katello.js +148 -4
  18. data/app/assets/javascripts/katello/locale/gu/katello.js +148 -4
  19. data/app/assets/javascripts/katello/locale/he_IL/katello.js +148 -4
  20. data/app/assets/javascripts/katello/locale/hi/katello.js +148 -4
  21. data/app/assets/javascripts/katello/locale/id/katello.js +148 -4
  22. data/app/assets/javascripts/katello/locale/it/katello.js +148 -4
  23. data/app/assets/javascripts/katello/locale/ja/katello.js +147 -3
  24. data/app/assets/javascripts/katello/locale/ka/katello.js +147 -3
  25. data/app/assets/javascripts/katello/locale/kn/katello.js +148 -4
  26. data/app/assets/javascripts/katello/locale/ko/katello.js +147 -3
  27. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +148 -4
  28. data/app/assets/javascripts/katello/locale/mr/katello.js +148 -4
  29. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +148 -4
  30. data/app/assets/javascripts/katello/locale/or/katello.js +148 -4
  31. data/app/assets/javascripts/katello/locale/pa/katello.js +148 -4
  32. data/app/assets/javascripts/katello/locale/pl/katello.js +148 -4
  33. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +148 -4
  34. data/app/assets/javascripts/katello/locale/pt/katello.js +148 -4
  35. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +147 -3
  36. data/app/assets/javascripts/katello/locale/ro/katello.js +148 -4
  37. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +148 -4
  38. data/app/assets/javascripts/katello/locale/ru/katello.js +148 -4
  39. data/app/assets/javascripts/katello/locale/sl/katello.js +148 -4
  40. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +148 -4
  41. data/app/assets/javascripts/katello/locale/ta/katello.js +148 -4
  42. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +148 -4
  43. data/app/assets/javascripts/katello/locale/te/katello.js +148 -4
  44. data/app/assets/javascripts/katello/locale/tr/katello.js +148 -4
  45. data/app/assets/javascripts/katello/locale/vi/katello.js +148 -4
  46. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +148 -4
  47. data/app/assets/javascripts/katello/locale/zh/katello.js +148 -4
  48. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +147 -3
  49. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +148 -4
  50. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +14 -14
  51. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -1
  52. data/app/controllers/katello/api/v2/errata_controller.rb +16 -0
  53. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +20 -3
  54. data/app/controllers/katello/api/v2/flatpak_remotes_controller.rb +7 -3
  55. data/app/controllers/katello/api/v2/generic_content_units_controller.rb +1 -2
  56. data/app/controllers/katello/api/v2/products_controller.rb +18 -0
  57. data/app/controllers/katello/api/v2/repositories_controller.rb +5 -3
  58. data/app/controllers/katello/concerns/api/v2/hosts_bulk_actions_controller_extensions.rb +10 -0
  59. data/app/controllers/katello/concerns/api/v2/registration_commands_controller_extensions.rb +1 -0
  60. data/app/controllers/katello/concerns/filtered_auto_complete_search.rb +17 -0
  61. data/app/lib/actions/helpers/smart_proxy_sync_helper.rb +12 -0
  62. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +4 -4
  63. data/app/lib/actions/katello/content_view/capsule_sync.rb +8 -3
  64. data/app/lib/actions/katello/content_view/publish.rb +39 -12
  65. data/app/lib/actions/katello/flatpak/mirror_remote_repository.rb +2 -1
  66. data/app/lib/actions/katello/repository/capsule_sync.rb +11 -1
  67. data/app/lib/actions/katello/repository/destroy.rb +3 -0
  68. data/app/lib/actions/katello/repository/import_upload.rb +2 -3
  69. data/app/lib/actions/katello/repository/sync.rb +2 -1
  70. data/app/lib/actions/katello/repository/upload_files.rb +2 -1
  71. data/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb +1 -1
  72. data/app/lib/katello/resources/cdn.rb +1 -1
  73. data/app/models/katello/concerns/smart_proxy_extensions.rb +46 -8
  74. data/app/models/katello/content_view_environment.rb +1 -1
  75. data/app/models/katello/erratum.rb +26 -1
  76. data/app/models/katello/flatpak_remote.rb +0 -1
  77. data/app/models/katello/flatpak_remote_repository.rb +24 -0
  78. data/app/models/katello/glue/pulp/repos.rb +1 -1
  79. data/app/models/katello/root_repository.rb +1 -0
  80. data/app/presenters/katello/flatpak_remote_mirror_status_presenter.rb +41 -0
  81. data/app/services/katello/repository_type_manager.rb +2 -0
  82. data/app/views/foreman/job_templates/flatpak_install.erb +17 -2
  83. data/app/views/foreman/job_templates/flatpak_login_action.erb +17 -3
  84. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +1 -1
  85. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +1 -1
  86. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +6 -14
  87. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +2 -15
  88. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +5 -13
  89. data/app/views/katello/api/v2/flatpak_remote_repositories/base.json.rabl +3 -1
  90. data/app/views/katello/api/v2/flatpak_remotes/base.json.rabl +5 -0
  91. data/app/views/katello/api/v2/flatpak_remotes/permissions.json.rabl +1 -0
  92. data/config/routes/api/v2.rb +1 -1
  93. data/config/routes.rb +3 -0
  94. data/db/migrate/20240924161240_katello_recreate_evr_constructs.rb +20 -0
  95. data/db/migrate/20250613210050_use_big_int_for_erratum_packages_id.rb +11 -0
  96. data/db/migrate/20250714190050_add_missing_rpms_evr_index.rb +14 -0
  97. data/db/seeds.d/108-subcription-bookmarks.rb +2 -0
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +5 -1
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -5
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +6 -0
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +6 -0
  103. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +6 -0
  104. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +6 -0
  105. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +6 -0
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +6 -0
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +6 -0
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +6 -0
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +6 -0
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +6 -0
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +6 -0
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +6 -0
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -0
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +6 -0
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +6 -0
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +6 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +6 -0
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +6 -0
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +6 -0
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +6 -0
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +6 -0
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +6 -0
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +6 -0
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +6 -0
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +6 -0
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +6 -0
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +6 -0
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +6 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +6 -0
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +6 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +6 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +6 -0
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +6 -0
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +6 -0
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +6 -0
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +6 -0
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +6 -0
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +6 -0
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +6 -0
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +6 -0
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +6 -0
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +6 -0
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +6 -0
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +6 -0
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +6 -0
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +6 -0
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +13 -3
  148. data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -0
  149. data/lib/katello/engine.rb +0 -1
  150. data/lib/katello/permission_creator.rb +1 -1
  151. data/lib/katello/plugin.rb +26 -2
  152. data/lib/katello/version.rb +1 -1
  153. data/lib/katello.rb +0 -1
  154. data/lib/proxy_api/container_gateway.rb +24 -0
  155. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  156. data/locale/bn/katello.po +148 -4
  157. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  158. data/locale/bn_IN/katello.po +148 -4
  159. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  160. data/locale/ca/katello.po +148 -4
  161. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  162. data/locale/cs/katello.po +148 -4
  163. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  164. data/locale/cs_CZ/katello.po +148 -4
  165. data/locale/de/katello.po +147 -3
  166. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  167. data/locale/de_AT/katello.po +148 -4
  168. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  169. data/locale/de_DE/katello.po +148 -4
  170. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  171. data/locale/el/katello.po +148 -4
  172. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  173. data/locale/en/katello.po +148 -4
  174. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  175. data/locale/en_GB/katello.po +148 -4
  176. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  177. data/locale/en_US/katello.po +148 -4
  178. data/locale/es/katello.po +147 -3
  179. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/et_EE/katello.po +148 -4
  181. data/locale/fr/katello.po +147 -3
  182. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  183. data/locale/gl/katello.po +148 -4
  184. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  185. data/locale/gu/katello.po +148 -4
  186. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  187. data/locale/he_IL/katello.po +148 -4
  188. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/hi/katello.po +148 -4
  190. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  191. data/locale/id/katello.po +148 -4
  192. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  193. data/locale/it/katello.po +148 -4
  194. data/locale/ja/katello.po +147 -3
  195. data/locale/ka/katello.po +147 -3
  196. data/locale/katello.pot +703 -428
  197. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/kn/katello.po +148 -4
  199. data/locale/ko/katello.po +147 -3
  200. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  201. data/locale/ml_IN/katello.po +148 -4
  202. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  203. data/locale/mr/katello.po +148 -4
  204. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  205. data/locale/nl_NL/katello.po +148 -4
  206. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  207. data/locale/or/katello.po +148 -4
  208. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  209. data/locale/pa/katello.po +148 -4
  210. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  211. data/locale/pl/katello.po +148 -4
  212. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  213. data/locale/pl_PL/katello.po +148 -4
  214. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  215. data/locale/pt/katello.po +148 -4
  216. data/locale/pt_BR/katello.po +147 -3
  217. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  218. data/locale/ro/katello.po +148 -4
  219. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  220. data/locale/ro_RO/katello.po +148 -4
  221. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/ru/katello.po +148 -4
  223. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  224. data/locale/sl/katello.po +148 -4
  225. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  226. data/locale/sv_SE/katello.po +148 -4
  227. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/ta/katello.po +148 -4
  229. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  230. data/locale/ta_IN/katello.po +148 -4
  231. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  232. data/locale/te/katello.po +148 -4
  233. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/tr/katello.po +148 -4
  235. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  236. data/locale/vi/katello.po +148 -4
  237. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  238. data/locale/vi_VN/katello.po +148 -4
  239. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/zh/katello.po +148 -4
  241. data/locale/zh_CN/katello.po +147 -3
  242. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  243. data/locale/zh_TW/katello.po +148 -4
  244. data/package.json +0 -1
  245. data/webpack/components/Content/Details/__tests__/__snapshots__/ContentDetails.test.js.snap +2 -2
  246. data/webpack/components/OptionTooltip/OptionTooltip.scss +1 -1
  247. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +6 -1
  248. data/webpack/components/extensions/Hosts/ActionsBar/index.js +11 -0
  249. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/BulkChangeHostCVModal.js +1 -1
  250. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/actions.js +1 -2
  251. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +1 -1
  252. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +1 -1
  253. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/01_BulkRepositorySetsTable.js +371 -0
  254. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_Review.js +79 -0
  255. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_ReviewFooter.js +73 -0
  256. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/BulkRepositorySetsWizard.js +170 -0
  257. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/actions.js +23 -0
  258. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/helpers.js +28 -0
  259. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/index.js +23 -0
  260. data/webpack/components/extensions/RegistrationCommands/fields/SetupContainerRegistryCerts.js +39 -0
  261. data/webpack/components/extensions/RegistrationCommands/index.js +7 -0
  262. data/webpack/components/pf3Table/formatters/ellipsisCellFormatter.js +3 -2
  263. data/webpack/containers/Application/config.js +11 -0
  264. data/webpack/global_index.js +3 -1
  265. data/webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js +30 -0
  266. data/webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js +38 -0
  267. data/webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js +218 -0
  268. data/webpack/scenes/FlatpakRemotes/CreateEdit/__tests__/flatpakRemoteform.test.js +117 -0
  269. data/webpack/scenes/FlatpakRemotes/Delete/DeleteFlatpakModal.js +59 -0
  270. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailActions.js +87 -0
  271. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailReducers.js +23 -0
  272. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailSelectors.js +16 -0
  273. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js +167 -0
  274. data/webpack/scenes/FlatpakRemotes/Details/Mirror/MirrorRepositoryModal.js +135 -0
  275. data/webpack/scenes/FlatpakRemotes/Details/Mirror/__tests__/mirrorRepositoryModal.test.js +167 -0
  276. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js +171 -0
  277. data/webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.fixtures.json +58 -0
  278. data/webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.test.js +90 -0
  279. data/webpack/scenes/FlatpakRemotes/Details/index.js +4 -0
  280. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesActions.js +26 -0
  281. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesConstants.js +15 -0
  282. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js +202 -0
  283. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesSelectors.js +24 -0
  284. data/webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesList.fixtures.json +55 -0
  285. data/webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesPage.test.js +74 -0
  286. data/webpack/scenes/FlatpakRemotes/index.js +4 -0
  287. data/webpack/scenes/Hosts/ChangeContentSource/components/Hosts.js +2 -2
  288. data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.scss +1 -1
  289. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  290. data/webpack/scenes/Settings/SettingsSelectors.js +3 -3
  291. data/webpack/scenes/Settings/index.js +1 -3
  292. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +2 -2
  293. data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +1 -1
  294. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +0 -21
  295. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +0 -44
  296. data/webpack/scenes/Subscriptions/index.js +1 -3
  297. metadata +39 -21
  298. data/webpack/scenes/Settings/SettingsConstants.js +0 -2
  299. data/webpack/scenes/Settings/SettingsReducer.js +0 -19
@@ -9,21 +9,35 @@ template_inputs:
9
9
  description: URL of container registry
10
10
  input_type: user
11
11
  required: true
12
+ - name: Set up certificate authentication
13
+ description: Set up certificate authentication for the registry. You can ignore username/password if using certificate authentication.
14
+ input_type: user
15
+ required: false
16
+ options: "true\r\nfalse"
17
+ advanced: false
18
+ value_type: plain
19
+ default: 'false'
12
20
  - name: Username
13
21
  description: Username for container registry login
14
22
  input_type: user
15
- required: true
23
+ required: false
16
24
  - name: Password
17
25
  description: Password/Access token for container registry login
18
26
  input_type: user
19
- required: true
27
+ required: false
20
28
  hidden_value: true
21
29
  %>
22
30
 
23
31
  <%
24
32
  server_url = input('Flatpak registry URL')
33
+ setup_cert_auth = input('Set up certificate authentication')
25
34
  username = input('Username')
26
35
  password = input('Password')
27
36
  %>
28
37
 
29
- echo <%= shell_escape(password) %> | sudo podman login <%= server_url %> --username <%= username %> --password-stdin --authfile /etc/flatpak/oci-auth.json
38
+ <% if truthy?(setup_cert_auth) -%>
39
+ <% server_hostname = server_url.gsub(/https?:\/\//, '').split('/').first %>
40
+ <%= snippet('container_certs_setup', variables: { registration_host: server_hostname }) -%>
41
+ <% else -%>
42
+ echo <%= shell_escape(password) %> | sudo podman login <%= server_url %> --username <%= username %> --password-stdin --authfile /etc/flatpak/oci-auth.json
43
+ <% end -%>
@@ -7,7 +7,7 @@ feature: katello_errata_install_by_search
7
7
  provider_type: script
8
8
  template_inputs:
9
9
  - name: Errata search query
10
- description: Filter criteria for errata to be installed.
10
+ description: Filter criteria for errata to be installed. IMPORTANT- If left blank, the job will attempt to install all applicable errata.
11
11
  input_type: user
12
12
  required: false
13
13
  foreign_input_sets:
@@ -7,7 +7,7 @@ feature: katello_errata_install_by_search
7
7
  provider_type: Ansible
8
8
  template_inputs:
9
9
  - name: Errata search query
10
- description: Filter criteria for errata to be installed.
10
+ description: Filter criteria for errata to be installed. IMPORTANT- If left blank, the job will attempt to install all applicable errata.
11
11
  input_type: user
12
12
  required: false
13
13
  %>
@@ -19,23 +19,15 @@ template_inputs:
19
19
  - hosts: all
20
20
  tasks:
21
21
  <%= indent(4) { snippet('check_bootc_status') } %>
22
- - name: Enable bootc overlay
23
- shell:
24
- cmd: 'bootc usr-overlay'
25
- register: out
26
- ignore_errors: true
27
- when: is_bootc_host
28
- - debug: var=out
29
- - name: Install packages via dnf for image mode machines
30
- package:
31
- use: 'dnf'
32
22
  <% if package_names.empty? -%>
33
- name: []
23
+ - name: Install all packages transiently for image mode machines
24
+ shell: "dnf --transient install -y '*'"
25
+ when: is_bootc_host
34
26
  <% else -%>
35
- name: <%= indent(10) { to_yaml(package_names).gsub(/---/, "") } -%>
36
- state: present
37
- <% end -%>
27
+ - name: Install packages transiently for image mode machines
28
+ shell: "dnf --transient install -y <%= package_names.join(' ') %>"
38
29
  when: is_bootc_host
30
+ <% end -%>
39
31
  - name: Install packages normally
40
32
  package:
41
33
  <% if package_names.empty? -%>
@@ -19,21 +19,8 @@ template_inputs:
19
19
  - hosts: all
20
20
  tasks:
21
21
  <%= indent(4) { snippet('check_bootc_status') } %>
22
- - name: Enable bootc overlay
23
- shell:
24
- cmd: 'bootc usr-overlay'
25
- register: out
26
- ignore_errors: true
27
- when: is_bootc_host
28
- - debug: var=out
29
- - name: Remove packages via dnf for image mode machines
30
- package:
31
- name:
32
- <% package_names.each do |package_name| -%>
33
- - <%= package_name %>
34
- <% end -%>
35
- state: absent
36
- use: 'dnf'
22
+ - name: Remove packages transiently for image mode machines
23
+ shell: "dnf --transient remove -y <%= package_names.join(' ') %>"
37
24
  when: is_bootc_host
38
25
  - name: Remove packages normally
39
26
  package:
@@ -28,20 +28,12 @@ template_inputs:
28
28
  - hosts: all
29
29
  tasks:
30
30
  <%= indent(4) { snippet('check_bootc_status') } %>
31
- - name: Enable bootc overlay
32
- shell:
33
- cmd: 'bootc usr-overlay'
34
- register: out
35
- ignore_errors: true
31
+ - name: Update packages transiently for image mode machines
32
+ shell: |
33
+ dnf --transient install -y <%= package_names.join(' ') %>
34
+ dnf --transient upgrade -y --best <%= package_names.join(' ') %>
36
35
  when: is_bootc_host
37
- - debug: var=out
38
- - name: Install packages via dnf for image mode machines
39
- package:
40
- name: <%= indent(10) { to_yaml(package_names).gsub(/---/, "") } -%>
41
- state: latest
42
- use: 'dnf'
43
- when: is_bootc_host
44
- - name: Install packages normally
36
+ - name: Update packages normally
45
37
  package:
46
38
  name: <%= indent(10) { to_yaml(package_names).gsub(/---/, "") } -%>
47
39
  state: latest
@@ -1,4 +1,6 @@
1
1
  extends 'katello/api/v2/common/identifier'
2
2
 
3
- attributes :name
3
+ attributes :name, :application_name
4
4
  attributes :label, :flatpak_remote_id
5
+
6
+ node(:last_mirrored) { |repo| repo.last_mirrored_status }
@@ -1,5 +1,10 @@
1
1
  extends 'katello/api/v2/common/identifier'
2
2
  extends 'katello/api/v2/common/org_reference'
3
+ extends 'katello/api/v2/flatpak_remotes/permissions'
3
4
 
4
5
  attributes :name
5
6
  attributes :url, :description, :username, :seeded, :registry_url
7
+
8
+ node :upstream_password_exists do |fr|
9
+ fr.token.present?
10
+ end
@@ -7,5 +7,6 @@ if ::Foreman::Cast.to_bool(params.fetch(:include_permissions, false))
7
7
  node(:can_edit) { user.can?("edit_flatpak_remotes") }
8
8
  node(:can_delete) { user.can?("destroy_flatpak_remotes") }
9
9
  node(:can_view) { user.can?("view_flatpak_remotes") }
10
+ node(:can_mirror) { user.can?("edit_products") && user.can?("view_products") }
10
11
  end
11
12
  end
@@ -311,7 +311,6 @@ Katello::Engine.routes.draw do
311
311
  end
312
312
  end
313
313
 
314
- load 'katello/repository_types.rb' if Katello::RepositoryTypeManager.defined_repository_types.empty?
315
314
  Katello::RepositoryTypeManager.generic_content_types(false).each do |type|
316
315
  api_resources type.pluralize.to_sym, :only => [:index, :show], :controller => 'generic_content_units', :content_type => type do
317
316
  collection do
@@ -331,6 +330,7 @@ Katello::Engine.routes.draw do
331
330
  end
332
331
  collection do
333
332
  get :auto_complete_search
333
+ get :auto_complete_name
334
334
  end
335
335
  api_resources :repository_sets, :only => [:index, :show] do
336
336
  get :auto_complete_search, :on => :collection
data/config/routes.rb CHANGED
@@ -35,6 +35,9 @@ Katello::Engine.routes.draw do
35
35
 
36
36
  match '/booted_container_images' => 'react#index', :via => [:get]
37
37
 
38
+ match '/flatpak_remotes' => 'react#index', :via => [:get]
39
+ match '/flatpak_remotes/*page' => 'react#index', :via => [:get]
40
+
38
41
  Katello::RepositoryTypeManager.generic_ui_content_types(false).each do |type|
39
42
  get "/#{type.pluralize}", to: redirect("/content/#{type.pluralize}")
40
43
  get "/#{type.pluralize}/:page", to: redirect("/content/#{type.pluralize}/%{page}")
@@ -1,5 +1,23 @@
1
1
  class KatelloRecreateEvrConstructs < ActiveRecord::Migration[6.1]
2
+ def fix_installed_package_dupes
3
+ # Remove duplicate installed packages and host installed packages.
4
+ duplicated_nvreas = ::Katello::InstalledPackage.group(:nvrea).having('count(*) > 1').pluck(:nvrea)
5
+ duplicated_nvreas.each do |nvrea|
6
+ packages_relation = ::Katello::InstalledPackage.where(nvrea: nvrea).order(:id)
7
+ original_package = packages_relation.first
8
+ duplicate_package_ids = packages_relation.offset(1).pluck(:id)
9
+ hosts_with_original_package = ::Katello::HostInstalledPackage.where(installed_package_id: original_package.id).pluck(:host_id)
10
+ if hosts_with_original_package.any?
11
+ ::Katello::HostInstalledPackage.where(host_id: hosts_with_original_package, installed_package_id: duplicate_package_ids).delete_all
12
+ end
13
+ ::Katello::HostInstalledPackage.where(installed_package_id: duplicate_package_ids).update_all(installed_package_id: original_package.id)
14
+ ::Katello::InstalledPackage.where(id: duplicate_package_ids).delete_all
15
+ end
16
+ end
17
+
2
18
  def up
19
+ fix_installed_package_dupes
20
+
3
21
  if !extension_enabled?('evr')
4
22
  return
5
23
  else
@@ -147,6 +165,8 @@ class KatelloRecreateEvrConstructs < ActiveRecord::Migration[6.1]
147
165
  rpmver_array(coalesce(release,'empty'))::evr_array_item[])::evr_t);
148
166
  SQL
149
167
 
168
+ add_index :katello_rpms, [:name, :arch, :evr]
169
+
150
170
  create_trigger :evr_insert_trigger_katello_rpms, on: :katello_rpms
151
171
  create_trigger :evr_update_trigger_katello_rpms, on: :katello_rpms
152
172
  create_trigger :evr_insert_trigger_katello_installed_packages, on: :katello_installed_packages
@@ -0,0 +1,11 @@
1
+ class UseBigIntForErratumPackagesId < ActiveRecord::Migration[7.0]
2
+ def up
3
+ execute 'ALTER SEQUENCE katello_erratum_packages_id_seq AS bigint;'
4
+ change_column :katello_erratum_packages, :id, :bigint
5
+ end
6
+
7
+ def down
8
+ change_column :katello_erratum_packages, :id, :integer
9
+ execute 'ALTER SEQUENCE katello_erratum_packages_id_seq AS integer;'
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ class AddMissingRpmsEvrIndex < ActiveRecord::Migration[7.0]
2
+ def up
3
+ # Re-add the katello_rpms EVR index dropped erroneously by 20240924161240.
4
+ unless index_exists?(:katello_rpms, [:name, :arch, :evr])
5
+ add_index :katello_rpms, [:name, :arch, :evr]
6
+ end
7
+ end
8
+
9
+ def down
10
+ if index_exists?(:katello_rpms, [:name, :arch, :evr])
11
+ remove_index :katello_rpms, [:name, :arch, :evr]
12
+ end
13
+ end
14
+ end
@@ -8,6 +8,8 @@ User.as_anonymous_admin do
8
8
  Bookmark.without_auditing do
9
9
  bookmarks = [
10
10
  {:name => "list hypervisors", :query => 'hypervisor = true', :controller => "hosts"},
11
+ {:name => "Registered hosts", :query => 'set? subscription_uuid', :controller => "hosts"},
12
+ {:name => "Unregistered hosts", :query => 'null? subscription_uuid', :controller => "hosts"},
11
13
  {:name => "future", :query => 'starts > Today', :controller => "katello_subscriptions"},
12
14
  {:name => "expiring soon", :query => 'expires 30 days from now', :controller => "katello_subscriptions"},
13
15
  ]
@@ -11,7 +11,7 @@
11
11
  <span translate>Export</span>
12
12
  </a>
13
13
  <a class="btn btn-default" href="/hosts/register" ng-show="permitted('create_hosts')" translate>
14
- Register Content Host
14
+ <span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content Host' | translate}} </span>
15
15
  </a>
16
16
 
17
17
  <span select-action-dropdown>
@@ -10,7 +10,11 @@
10
10
  ng-click="goToNextStep()"
11
11
  ng-hide="denied('edit_hosts')"
12
12
  ng-disabled="table.numSelected == 0 || incrementalUpdates.length > 0">
13
- <span translate>Apply Errata</span>
13
+
14
+
15
+ <span>{{table.numSelected &gt 1? 'Apply Errata' : 'Apply Erratum' | translate }}</span>
16
+
17
+
14
18
  </button>
15
19
  </div>
16
20
 
@@ -267,6 +267,10 @@ msgid ""
267
267
  " This Host is not currently registered with subscription-manager. Use the <a href=\"/hosts/register\">Register Host</a> workflow to complete registration."
268
268
  msgstr ""
269
269
 
270
+ #: app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html
271
+ msgid "<span> {{table.numSelected &gt 1? 'Register Content Hosts':'Register Content Host' | translate}} </span>"
272
+ msgstr ""
273
+
270
274
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
271
275
  msgid "1 Content Host"
272
276
  msgid_plural "{{ host.subscription_facet_attributes.virtual_guests.length }} Content Hosts"
@@ -627,7 +631,6 @@ msgstr ""
627
631
 
628
632
  #: app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html
629
633
  #: app/assets/javascripts/bastion_katello/errata/views/apply-errata.html
630
- #: app/assets/javascripts/bastion_katello/errata/views/errata.html
631
634
  msgid "Apply Errata"
632
635
  msgstr ""
633
636
 
@@ -3320,10 +3323,6 @@ msgstr ""
3320
3323
  msgid "Register a Content Host"
3321
3324
  msgstr ""
3322
3325
 
3323
- #: app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html
3324
- msgid "Register Content Host"
3325
- msgstr ""
3326
-
3327
3326
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
3328
3327
  #: app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html
3329
3328
  msgid "Registered"
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""
@@ -1263,6 +1263,7 @@ msgstr ""
1263
1263
  msgid "Complete Sync"
1264
1264
  msgstr "Kompletní synchronizace"
1265
1265
 
1266
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1266
1267
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1267
1268
  msgid "Completed {{ repository.last_sync_words }} ago"
1268
1269
  msgstr ""
@@ -3320,6 +3321,11 @@ msgid "Please make sure a Content View is selected."
3320
3321
  msgstr "Zajistěte, aby byl vybrán pohled na obsah."
3321
3322
 
3322
3323
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3324
+ msgid ""
3325
+ "Please select a lifecycle environment. Lifecycle environment and content "
3326
+ "view must be provided together."
3327
+ msgstr ""
3328
+
3323
3329
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3324
3330
  msgid "Please select an environment."
3325
3331
  msgstr "Vyberte prostředí."
@@ -1323,6 +1323,7 @@ msgstr ""
1323
1323
  msgid "Complete Sync"
1324
1324
  msgstr "Vollständige Synchronisierung"
1325
1325
 
1326
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1326
1327
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1327
1328
  msgid "Completed {{ repository.last_sync_words }} ago"
1328
1329
  msgstr "Vor {{ repository.last_sync_words }} abgeschlossen"
@@ -3441,6 +3442,11 @@ msgid "Please make sure a Content View is selected."
3441
3442
  msgstr "Bitte stellen Sie sicher, dass eine Inhaltsansicht ausgewählt ist."
3442
3443
 
3443
3444
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3445
+ msgid ""
3446
+ "Please select a lifecycle environment. Lifecycle environment and content "
3447
+ "view must be provided together."
3448
+ msgstr ""
3449
+
3444
3450
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3445
3451
  msgid "Please select an environment."
3446
3452
  msgstr "Bitte wählen Sie eine Umgebung."
@@ -1232,6 +1232,7 @@ msgstr ""
1232
1232
  msgid "Complete Sync"
1233
1233
  msgstr ""
1234
1234
 
1235
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1235
1236
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1236
1237
  msgid "Completed {{ repository.last_sync_words }} ago"
1237
1238
  msgstr ""
@@ -3286,6 +3287,11 @@ msgid "Please make sure a Content View is selected."
3286
3287
  msgstr ""
3287
3288
 
3288
3289
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3290
+ msgid ""
3291
+ "Please select a lifecycle environment. Lifecycle environment and content "
3292
+ "view must be provided together."
3293
+ msgstr ""
3294
+
3289
3295
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3290
3296
  msgid "Please select an environment."
3291
3297
  msgstr ""
@@ -1238,6 +1238,7 @@ msgstr ""
1238
1238
  msgid "Complete Sync"
1239
1239
  msgstr ""
1240
1240
 
1241
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1241
1242
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1242
1243
  msgid "Completed {{ repository.last_sync_words }} ago"
1243
1244
  msgstr ""
@@ -3292,6 +3293,11 @@ msgid "Please make sure a Content View is selected."
3292
3293
  msgstr ""
3293
3294
 
3294
3295
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3296
+ msgid ""
3297
+ "Please select a lifecycle environment. Lifecycle environment and content "
3298
+ "view must be provided together."
3299
+ msgstr ""
3300
+
3295
3301
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3296
3302
  msgid "Please select an environment."
3297
3303
  msgstr ""
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""
@@ -1237,6 +1237,7 @@ msgstr ""
1237
1237
  msgid "Complete Sync"
1238
1238
  msgstr ""
1239
1239
 
1240
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1240
1241
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1241
1242
  msgid "Completed {{ repository.last_sync_words }} ago"
1242
1243
  msgstr ""
@@ -3291,6 +3292,11 @@ msgid "Please make sure a Content View is selected."
3291
3292
  msgstr ""
3292
3293
 
3293
3294
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3295
+ msgid ""
3296
+ "Please select a lifecycle environment. Lifecycle environment and content "
3297
+ "view must be provided together."
3298
+ msgstr ""
3299
+
3294
3300
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3295
3301
  msgid "Please select an environment."
3296
3302
  msgstr ""
@@ -1232,6 +1232,7 @@ msgstr ""
1232
1232
  msgid "Complete Sync"
1233
1233
  msgstr ""
1234
1234
 
1235
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1235
1236
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1236
1237
  msgid "Completed {{ repository.last_sync_words }} ago"
1237
1238
  msgstr ""
@@ -3286,6 +3287,11 @@ msgid "Please make sure a Content View is selected."
3286
3287
  msgstr ""
3287
3288
 
3288
3289
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3290
+ msgid ""
3291
+ "Please select a lifecycle environment. Lifecycle environment and content "
3292
+ "view must be provided together."
3293
+ msgstr ""
3294
+
3289
3295
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3290
3296
  msgid "Please select an environment."
3291
3297
  msgstr ""
@@ -1329,6 +1329,7 @@ msgstr ""
1329
1329
  msgid "Complete Sync"
1330
1330
  msgstr "Sincronización completa"
1331
1331
 
1332
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1332
1333
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1333
1334
  msgid "Completed {{ repository.last_sync_words }} ago"
1334
1335
  msgstr ""
@@ -3427,6 +3428,11 @@ msgid "Please make sure a Content View is selected."
3427
3428
  msgstr ""
3428
3429
 
3429
3430
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3431
+ msgid ""
3432
+ "Please select a lifecycle environment. Lifecycle environment and content "
3433
+ "view must be provided together."
3434
+ msgstr ""
3435
+
3430
3436
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3431
3437
  msgid "Please select an environment."
3432
3438
  msgstr "Seleccione un entorno."
@@ -1232,6 +1232,7 @@ msgstr ""
1232
1232
  msgid "Complete Sync"
1233
1233
  msgstr ""
1234
1234
 
1235
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1235
1236
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1236
1237
  msgid "Completed {{ repository.last_sync_words }} ago"
1237
1238
  msgstr ""
@@ -3286,6 +3287,11 @@ msgid "Please make sure a Content View is selected."
3286
3287
  msgstr ""
3287
3288
 
3288
3289
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3290
+ msgid ""
3291
+ "Please select a lifecycle environment. Lifecycle environment and content "
3292
+ "view must be provided together."
3293
+ msgstr ""
3294
+
3289
3295
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3290
3296
  msgid "Please select an environment."
3291
3297
  msgstr ""
@@ -1454,6 +1454,7 @@ msgstr "Terminer Mirrorisation"
1454
1454
  msgid "Complete Sync"
1455
1455
  msgstr "Terminer Sync"
1456
1456
 
1457
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1457
1458
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1458
1459
  msgid "Completed {{ repository.last_sync_words }} ago"
1459
1460
  msgstr "Terminé il y a {{ repository.last_sync_words }}"
@@ -3594,6 +3595,11 @@ msgid "Please make sure a Content View is selected."
3594
3595
  msgstr "Veuillez vous assurer qu'une vue de contenu est sélectionnée."
3595
3596
 
3596
3597
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3598
+ msgid ""
3599
+ "Please select a lifecycle environment. Lifecycle environment and content "
3600
+ "view must be provided together."
3601
+ msgstr ""
3602
+
3597
3603
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3598
3604
  msgid "Please select an environment."
3599
3605
  msgstr "Tout d'abord, sélectionner un environnement"
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""
@@ -1236,6 +1236,7 @@ msgstr ""
1236
1236
  msgid "Complete Sync"
1237
1237
  msgstr ""
1238
1238
 
1239
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
1239
1240
  #: app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html
1240
1241
  msgid "Completed {{ repository.last_sync_words }} ago"
1241
1242
  msgstr ""
@@ -3290,6 +3291,11 @@ msgid "Please make sure a Content View is selected."
3290
3291
  msgstr ""
3291
3292
 
3292
3293
  #: app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html
3294
+ msgid ""
3295
+ "Please select a lifecycle environment. Lifecycle environment and content "
3296
+ "view must be provided together."
3297
+ msgstr ""
3298
+
3293
3299
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
3294
3300
  msgid "Please select an environment."
3295
3301
  msgstr ""