katello 4.17.1 → 4.18.0.rc2

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

Potentially problematic release.


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

Files changed (348) 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 +12 -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/import_upload.rb +2 -3
  68. data/app/lib/actions/katello/repository/sync.rb +2 -1
  69. data/app/lib/actions/katello/repository/upload_files.rb +2 -1
  70. data/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb +1 -1
  71. data/app/lib/katello/resources/cdn.rb +1 -1
  72. data/app/models/katello/concerns/host_managed_extensions.rb +5 -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/katello/api/v2/flatpak_remote_repositories/base.json.rabl +3 -1
  87. data/app/views/katello/api/v2/flatpak_remotes/base.json.rabl +5 -0
  88. data/app/views/katello/api/v2/flatpak_remotes/permissions.json.rabl +1 -0
  89. data/config/routes/api/v2.rb +1 -1
  90. data/config/routes.rb +3 -0
  91. data/db/migrate/20250613210050_use_big_int_for_erratum_packages_id.rb +11 -0
  92. data/db/seeds.d/108-subcription-bookmarks.rb +2 -0
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +5 -1
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -5
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +6 -0
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +6 -0
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +6 -0
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +6 -0
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +6 -0
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +6 -0
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +6 -0
  103. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +6 -0
  104. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +6 -0
  105. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +6 -0
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +6 -0
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +6 -0
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -0
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +6 -0
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +6 -0
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +6 -0
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +6 -0
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +6 -0
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +6 -0
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +6 -0
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +6 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +6 -0
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +6 -0
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +6 -0
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +6 -0
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +6 -0
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +6 -0
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +6 -0
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +6 -0
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +6 -0
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +6 -0
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +6 -0
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +6 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +6 -0
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +6 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +6 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +6 -0
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +6 -0
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +6 -0
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +6 -0
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +6 -0
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +6 -0
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +6 -0
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +6 -0
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +6 -0
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +6 -0
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +13 -3
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +3 -0
  144. data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -0
  145. data/lib/katello/engine.rb +0 -1
  146. data/lib/katello/permission_creator.rb +1 -1
  147. data/lib/katello/plugin.rb +26 -2
  148. data/lib/katello/version.rb +1 -1
  149. data/lib/katello.rb +0 -1
  150. data/lib/proxy_api/container_gateway.rb +24 -0
  151. data/locale/action_names.rb +186 -0
  152. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  153. data/locale/bn/katello.po +148 -4
  154. data/locale/bn/katello.po.time_stamp +0 -0
  155. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  156. data/locale/bn_IN/katello.po +148 -4
  157. data/locale/bn_IN/katello.po.time_stamp +0 -0
  158. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  159. data/locale/ca/katello.po +148 -4
  160. data/locale/ca/katello.po.time_stamp +0 -0
  161. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  162. data/locale/cs/katello.po +148 -4
  163. data/locale/cs/katello.po.time_stamp +0 -0
  164. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  165. data/locale/cs_CZ/katello.po +148 -4
  166. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  167. data/locale/de/katello.po +147 -3
  168. data/locale/de/katello.po.time_stamp +0 -0
  169. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  170. data/locale/de_AT/katello.po +148 -4
  171. data/locale/de_AT/katello.po.time_stamp +0 -0
  172. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  173. data/locale/de_DE/katello.po +148 -4
  174. data/locale/de_DE/katello.po.time_stamp +0 -0
  175. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  176. data/locale/el/katello.po +148 -4
  177. data/locale/el/katello.po.time_stamp +0 -0
  178. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  179. data/locale/en/katello.po +148 -4
  180. data/locale/en/katello.po.time_stamp +0 -0
  181. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  182. data/locale/en_GB/katello.po +148 -4
  183. data/locale/en_GB/katello.po.time_stamp +0 -0
  184. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  185. data/locale/en_US/katello.po +148 -4
  186. data/locale/en_US/katello.po.time_stamp +0 -0
  187. data/locale/es/katello.po +147 -3
  188. data/locale/es/katello.po.time_stamp +0 -0
  189. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  190. data/locale/et_EE/katello.po +148 -4
  191. data/locale/et_EE/katello.po.time_stamp +0 -0
  192. data/locale/fr/katello.po +147 -3
  193. data/locale/fr/katello.po.time_stamp +0 -0
  194. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  195. data/locale/gl/katello.po +148 -4
  196. data/locale/gl/katello.po.time_stamp +0 -0
  197. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/gu/katello.po +148 -4
  199. data/locale/gu/katello.po.time_stamp +0 -0
  200. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  201. data/locale/he_IL/katello.po +148 -4
  202. data/locale/he_IL/katello.po.time_stamp +0 -0
  203. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/hi/katello.po +148 -4
  205. data/locale/hi/katello.po.time_stamp +0 -0
  206. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  207. data/locale/id/katello.po +148 -4
  208. data/locale/id/katello.po.time_stamp +0 -0
  209. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/it/katello.po +148 -4
  211. data/locale/it/katello.po.time_stamp +0 -0
  212. data/locale/ja/katello.po +147 -3
  213. data/locale/ja/katello.po.time_stamp +0 -0
  214. data/locale/ka/katello.po +147 -3
  215. data/locale/ka/katello.po.time_stamp +0 -0
  216. data/locale/katello.pot +703 -428
  217. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  218. data/locale/kn/katello.po +148 -4
  219. data/locale/kn/katello.po.time_stamp +0 -0
  220. data/locale/ko/katello.po +147 -3
  221. data/locale/ko/katello.po.time_stamp +0 -0
  222. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  223. data/locale/ml_IN/katello.po +148 -4
  224. data/locale/ml_IN/katello.po.time_stamp +0 -0
  225. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  226. data/locale/mr/katello.po +148 -4
  227. data/locale/mr/katello.po.time_stamp +0 -0
  228. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/nl_NL/katello.po +148 -4
  230. data/locale/nl_NL/katello.po.time_stamp +0 -0
  231. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  232. data/locale/or/katello.po +148 -4
  233. data/locale/or/katello.po.time_stamp +0 -0
  234. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  235. data/locale/pa/katello.po +148 -4
  236. data/locale/pa/katello.po.time_stamp +0 -0
  237. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  238. data/locale/pl/katello.po +148 -4
  239. data/locale/pl/katello.po.time_stamp +0 -0
  240. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/pl_PL/katello.po +148 -4
  242. data/locale/pl_PL/katello.po.time_stamp +0 -0
  243. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/pt/katello.po +148 -4
  245. data/locale/pt/katello.po.time_stamp +0 -0
  246. data/locale/pt_BR/katello.po +147 -3
  247. data/locale/pt_BR/katello.po.time_stamp +0 -0
  248. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/ro/katello.po +148 -4
  250. data/locale/ro/katello.po.time_stamp +0 -0
  251. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  252. data/locale/ro_RO/katello.po +148 -4
  253. data/locale/ro_RO/katello.po.time_stamp +0 -0
  254. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  255. data/locale/ru/katello.po +148 -4
  256. data/locale/ru/katello.po.time_stamp +0 -0
  257. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  258. data/locale/sl/katello.po +148 -4
  259. data/locale/sl/katello.po.time_stamp +0 -0
  260. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/sv_SE/katello.po +148 -4
  262. data/locale/sv_SE/katello.po.time_stamp +0 -0
  263. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  264. data/locale/ta/katello.po +148 -4
  265. data/locale/ta/katello.po.time_stamp +0 -0
  266. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  267. data/locale/ta_IN/katello.po +148 -4
  268. data/locale/ta_IN/katello.po.time_stamp +0 -0
  269. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  270. data/locale/te/katello.po +148 -4
  271. data/locale/te/katello.po.time_stamp +0 -0
  272. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  273. data/locale/tr/katello.po +148 -4
  274. data/locale/tr/katello.po.time_stamp +0 -0
  275. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  276. data/locale/vi/katello.po +148 -4
  277. data/locale/vi/katello.po.time_stamp +0 -0
  278. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  279. data/locale/vi_VN/katello.po +148 -4
  280. data/locale/vi_VN/katello.po.time_stamp +0 -0
  281. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  282. data/locale/zh/katello.po +148 -4
  283. data/locale/zh/katello.po.time_stamp +0 -0
  284. data/locale/zh_CN/katello.po +147 -3
  285. data/locale/zh_CN/katello.po.time_stamp +0 -0
  286. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  287. data/locale/zh_TW/katello.po +148 -4
  288. data/locale/zh_TW/katello.po.time_stamp +0 -0
  289. data/package.json +0 -1
  290. data/webpack/components/Content/Details/__tests__/__snapshots__/ContentDetails.test.js.snap +2 -2
  291. data/webpack/components/OptionTooltip/OptionTooltip.scss +1 -1
  292. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +5 -5
  293. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +6 -1
  294. data/webpack/components/extensions/Hosts/ActionsBar/index.js +11 -0
  295. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/BulkChangeHostCVModal.js +1 -1
  296. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/actions.js +1 -2
  297. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +1 -1
  298. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +1 -1
  299. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/01_BulkRepositorySetsTable.js +371 -0
  300. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_Review.js +79 -0
  301. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_ReviewFooter.js +73 -0
  302. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/BulkRepositorySetsWizard.js +170 -0
  303. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/actions.js +23 -0
  304. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/helpers.js +28 -0
  305. data/webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/index.js +23 -0
  306. data/webpack/components/extensions/RegistrationCommands/fields/SetupContainerRegistryCerts.js +39 -0
  307. data/webpack/components/extensions/RegistrationCommands/index.js +7 -0
  308. data/webpack/components/pf3Table/formatters/ellipsisCellFormatter.js +3 -2
  309. data/webpack/containers/Application/config.js +11 -0
  310. data/webpack/global_index.js +3 -1
  311. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +2 -0
  312. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +9 -6
  313. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +4 -0
  314. data/webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js +30 -0
  315. data/webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js +38 -0
  316. data/webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js +218 -0
  317. data/webpack/scenes/FlatpakRemotes/CreateEdit/__tests__/flatpakRemoteform.test.js +117 -0
  318. data/webpack/scenes/FlatpakRemotes/Delete/DeleteFlatpakModal.js +59 -0
  319. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailActions.js +87 -0
  320. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailReducers.js +23 -0
  321. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailSelectors.js +16 -0
  322. data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js +167 -0
  323. data/webpack/scenes/FlatpakRemotes/Details/Mirror/MirrorRepositoryModal.js +135 -0
  324. data/webpack/scenes/FlatpakRemotes/Details/Mirror/__tests__/mirrorRepositoryModal.test.js +167 -0
  325. data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js +171 -0
  326. data/webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.fixtures.json +58 -0
  327. data/webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.test.js +90 -0
  328. data/webpack/scenes/FlatpakRemotes/Details/index.js +4 -0
  329. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesActions.js +26 -0
  330. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesConstants.js +15 -0
  331. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js +202 -0
  332. data/webpack/scenes/FlatpakRemotes/FlatpakRemotesSelectors.js +24 -0
  333. data/webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesList.fixtures.json +55 -0
  334. data/webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesPage.test.js +74 -0
  335. data/webpack/scenes/FlatpakRemotes/index.js +4 -0
  336. data/webpack/scenes/Hosts/ChangeContentSource/components/Hosts.js +2 -2
  337. data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.scss +1 -1
  338. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  339. data/webpack/scenes/Settings/SettingsSelectors.js +3 -3
  340. data/webpack/scenes/Settings/index.js +1 -3
  341. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +2 -2
  342. data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +1 -1
  343. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +0 -21
  344. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +0 -44
  345. data/webpack/scenes/Subscriptions/index.js +1 -3
  346. metadata +87 -21
  347. data/webpack/scenes/Settings/SettingsConstants.js +0 -2
  348. data/webpack/scenes/Settings/SettingsReducer.js +0 -19
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katello
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.17.1
4
+ version: 4.18.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-31 00:00:00.000000000 Z
11
+ date: 2025-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -164,20 +164,6 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 4.1.9
167
- - !ruby/object:Gem::Dependency
168
- name: gettext_i18n_rails
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: apipie-rails
183
169
  requirement: !ruby/object:Gem::Requirement
@@ -800,6 +786,7 @@ files:
800
786
  - app/lib/actions/helpers/output_propagator.rb
801
787
  - app/lib/actions/helpers/presenter.rb
802
788
  - app/lib/actions/helpers/rolling_cv_repos.rb
789
+ - app/lib/actions/helpers/smart_proxy_sync_helper.rb
803
790
  - app/lib/actions/helpers/smart_proxy_sync_history_helper.rb
804
791
  - app/lib/actions/katello/activation_key/create.rb
805
792
  - app/lib/actions/katello/activation_key/destroy.rb
@@ -1349,6 +1336,7 @@ files:
1349
1336
  - app/overrides/override_taxonomy_actions.rb
1350
1337
  - app/presenters/katello/activation_key_subscriptions_presenter.rb
1351
1338
  - app/presenters/katello/content_view_version_compare_presenter.rb
1339
+ - app/presenters/katello/flatpak_remote_mirror_status_presenter.rb
1352
1340
  - app/presenters/katello/host_deb_presenter.rb
1353
1341
  - app/presenters/katello/host_package_presenter.rb
1354
1342
  - app/presenters/katello/host_subscription_presenter.rb
@@ -2160,6 +2148,7 @@ files:
2160
2148
  - db/migrate/20250215143303_drop_katello_yum_metadata_file.rb
2161
2149
  - db/migrate/20250409120843_fix_file_download_policy.rb
2162
2150
  - db/migrate/20250410155300_change_ansible_templates_category.rb
2151
+ - db/migrate/20250613210050_use_big_int_for_erratum_packages_id.rb
2163
2152
  - db/migrate/20250714190050_add_missing_rpms_evr_index.rb
2164
2153
  - db/seeds.d/101-locations.rb
2165
2154
  - db/seeds.d/102-organizations.rb
@@ -4465,104 +4454,153 @@ files:
4465
4454
  - lib/proxy_api/pulp_node.rb
4466
4455
  - locale/Makefile
4467
4456
  - locale/README
4457
+ - locale/action_names.rb
4468
4458
  - locale/bn/LC_MESSAGES/katello.mo
4469
4459
  - locale/bn/katello.po
4460
+ - locale/bn/katello.po.time_stamp
4470
4461
  - locale/bn_IN/LC_MESSAGES/katello.mo
4471
4462
  - locale/bn_IN/katello.po
4463
+ - locale/bn_IN/katello.po.time_stamp
4472
4464
  - locale/ca/LC_MESSAGES/katello.mo
4473
4465
  - locale/ca/katello.po
4466
+ - locale/ca/katello.po.time_stamp
4474
4467
  - locale/cs/LC_MESSAGES/katello.mo
4475
4468
  - locale/cs/katello.po
4469
+ - locale/cs/katello.po.time_stamp
4476
4470
  - locale/cs_CZ/LC_MESSAGES/katello.mo
4477
4471
  - locale/cs_CZ/katello.po
4472
+ - locale/cs_CZ/katello.po.time_stamp
4478
4473
  - locale/de/LC_MESSAGES/katello.mo
4479
4474
  - locale/de/katello.po
4475
+ - locale/de/katello.po.time_stamp
4480
4476
  - locale/de_AT/LC_MESSAGES/katello.mo
4481
4477
  - locale/de_AT/katello.po
4478
+ - locale/de_AT/katello.po.time_stamp
4482
4479
  - locale/de_DE/LC_MESSAGES/katello.mo
4483
4480
  - locale/de_DE/katello.po
4481
+ - locale/de_DE/katello.po.time_stamp
4484
4482
  - locale/el/LC_MESSAGES/katello.mo
4485
4483
  - locale/el/katello.po
4484
+ - locale/el/katello.po.time_stamp
4486
4485
  - locale/en/LC_MESSAGES/katello.mo
4487
4486
  - locale/en/katello.po
4487
+ - locale/en/katello.po.time_stamp
4488
4488
  - locale/en_GB/LC_MESSAGES/katello.mo
4489
4489
  - locale/en_GB/katello.po
4490
+ - locale/en_GB/katello.po.time_stamp
4490
4491
  - locale/en_US/LC_MESSAGES/katello.mo
4491
4492
  - locale/en_US/katello.po
4493
+ - locale/en_US/katello.po.time_stamp
4492
4494
  - locale/es/LC_MESSAGES/katello.mo
4493
4495
  - locale/es/katello.po
4496
+ - locale/es/katello.po.time_stamp
4494
4497
  - locale/et_EE/LC_MESSAGES/katello.mo
4495
4498
  - locale/et_EE/katello.po
4499
+ - locale/et_EE/katello.po.time_stamp
4496
4500
  - locale/fr/LC_MESSAGES/katello.mo
4497
4501
  - locale/fr/katello.po
4502
+ - locale/fr/katello.po.time_stamp
4498
4503
  - locale/gl/LC_MESSAGES/katello.mo
4499
4504
  - locale/gl/katello.po
4505
+ - locale/gl/katello.po.time_stamp
4500
4506
  - locale/gu/LC_MESSAGES/katello.mo
4501
4507
  - locale/gu/katello.po
4508
+ - locale/gu/katello.po.time_stamp
4502
4509
  - locale/he_IL/LC_MESSAGES/katello.mo
4503
4510
  - locale/he_IL/katello.po
4511
+ - locale/he_IL/katello.po.time_stamp
4504
4512
  - locale/hi/LC_MESSAGES/katello.mo
4505
4513
  - locale/hi/katello.po
4514
+ - locale/hi/katello.po.time_stamp
4506
4515
  - locale/id/LC_MESSAGES/katello.mo
4507
4516
  - locale/id/katello.po
4517
+ - locale/id/katello.po.time_stamp
4508
4518
  - locale/it/LC_MESSAGES/katello.mo
4509
4519
  - locale/it/katello.po
4520
+ - locale/it/katello.po.time_stamp
4510
4521
  - locale/ja/LC_MESSAGES/katello.mo
4511
4522
  - locale/ja/katello.po
4523
+ - locale/ja/katello.po.time_stamp
4512
4524
  - locale/ka/LC_MESSAGES/katello.mo
4513
4525
  - locale/ka/katello.po
4526
+ - locale/ka/katello.po.time_stamp
4514
4527
  - locale/katello.pot
4515
4528
  - locale/kn/LC_MESSAGES/katello.mo
4516
4529
  - locale/kn/katello.po
4530
+ - locale/kn/katello.po.time_stamp
4517
4531
  - locale/ko/LC_MESSAGES/katello.mo
4518
4532
  - locale/ko/katello.po
4533
+ - locale/ko/katello.po.time_stamp
4519
4534
  - locale/ml_IN/LC_MESSAGES/katello.mo
4520
4535
  - locale/ml_IN/katello.po
4536
+ - locale/ml_IN/katello.po.time_stamp
4521
4537
  - locale/mr/LC_MESSAGES/katello.mo
4522
4538
  - locale/mr/katello.po
4539
+ - locale/mr/katello.po.time_stamp
4523
4540
  - locale/nl_NL/LC_MESSAGES/katello.mo
4524
4541
  - locale/nl_NL/katello.po
4542
+ - locale/nl_NL/katello.po.time_stamp
4525
4543
  - locale/or/LC_MESSAGES/katello.mo
4526
4544
  - locale/or/katello.po
4545
+ - locale/or/katello.po.time_stamp
4527
4546
  - locale/pa/LC_MESSAGES/katello.mo
4528
4547
  - locale/pa/katello.po
4548
+ - locale/pa/katello.po.time_stamp
4529
4549
  - locale/pl/LC_MESSAGES/katello.mo
4530
4550
  - locale/pl/katello.po
4551
+ - locale/pl/katello.po.time_stamp
4531
4552
  - locale/pl_PL/LC_MESSAGES/katello.mo
4532
4553
  - locale/pl_PL/katello.po
4554
+ - locale/pl_PL/katello.po.time_stamp
4533
4555
  - locale/pt/LC_MESSAGES/katello.mo
4534
4556
  - locale/pt/katello.po
4557
+ - locale/pt/katello.po.time_stamp
4535
4558
  - locale/pt_BR/LC_MESSAGES/katello.mo
4536
4559
  - locale/pt_BR/katello.po
4560
+ - locale/pt_BR/katello.po.time_stamp
4537
4561
  - locale/ro/LC_MESSAGES/katello.mo
4538
4562
  - locale/ro/katello.po
4563
+ - locale/ro/katello.po.time_stamp
4539
4564
  - locale/ro_RO/LC_MESSAGES/katello.mo
4540
4565
  - locale/ro_RO/katello.po
4566
+ - locale/ro_RO/katello.po.time_stamp
4541
4567
  - locale/ru/LC_MESSAGES/katello.mo
4542
4568
  - locale/ru/katello.po
4569
+ - locale/ru/katello.po.time_stamp
4543
4570
  - locale/sl/LC_MESSAGES/katello.mo
4544
4571
  - locale/sl/katello.po
4572
+ - locale/sl/katello.po.time_stamp
4545
4573
  - locale/sv_SE/LC_MESSAGES/katello.mo
4546
4574
  - locale/sv_SE/katello.po
4575
+ - locale/sv_SE/katello.po.time_stamp
4547
4576
  - locale/ta/LC_MESSAGES/katello.mo
4548
4577
  - locale/ta/katello.po
4578
+ - locale/ta/katello.po.time_stamp
4549
4579
  - locale/ta_IN/LC_MESSAGES/katello.mo
4550
4580
  - locale/ta_IN/katello.po
4581
+ - locale/ta_IN/katello.po.time_stamp
4551
4582
  - locale/te/LC_MESSAGES/katello.mo
4552
4583
  - locale/te/katello.po
4584
+ - locale/te/katello.po.time_stamp
4553
4585
  - locale/tr/LC_MESSAGES/katello.mo
4554
4586
  - locale/tr/katello.po
4587
+ - locale/tr/katello.po.time_stamp
4555
4588
  - locale/update-i18n
4556
4589
  - locale/vi/LC_MESSAGES/katello.mo
4557
4590
  - locale/vi/katello.po
4591
+ - locale/vi/katello.po.time_stamp
4558
4592
  - locale/vi_VN/LC_MESSAGES/katello.mo
4559
4593
  - locale/vi_VN/katello.po
4594
+ - locale/vi_VN/katello.po.time_stamp
4560
4595
  - locale/zh/LC_MESSAGES/katello.mo
4561
4596
  - locale/zh/katello.po
4597
+ - locale/zh/katello.po.time_stamp
4562
4598
  - locale/zh_CN/LC_MESSAGES/katello.mo
4563
4599
  - locale/zh_CN/katello.po
4600
+ - locale/zh_CN/katello.po.time_stamp
4564
4601
  - locale/zh_TW/LC_MESSAGES/katello.mo
4565
4602
  - locale/zh_TW/katello.po
4603
+ - locale/zh_TW/katello.po.time_stamp
4566
4604
  - package.json
4567
4605
  - vendor/assets/images/katello/add2.png
4568
4606
  - vendor/assets/images/katello/addhost.png
@@ -4842,6 +4880,13 @@ files:
4842
4880
  - webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js
4843
4881
  - webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js
4844
4882
  - webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/index.js
4883
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/01_BulkRepositorySetsTable.js
4884
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_Review.js
4885
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/03_ReviewFooter.js
4886
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/BulkRepositorySetsWizard.js
4887
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/actions.js
4888
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/helpers.js
4889
+ - webpack/components/extensions/Hosts/BulkActions/BulkRepositorySetsWizard/index.js
4845
4890
  - webpack/components/extensions/Hosts/BulkActions/HostReview.js
4846
4891
  - webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js
4847
4892
  - webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js
@@ -4860,6 +4905,7 @@ files:
4860
4905
  - webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js
4861
4906
  - webpack/components/extensions/RegistrationCommands/fields/Force.js
4862
4907
  - webpack/components/extensions/RegistrationCommands/fields/IgnoreSubmanErrors.js
4908
+ - webpack/components/extensions/RegistrationCommands/fields/SetupContainerRegistryCerts.js
4863
4909
  - webpack/components/extensions/RegistrationCommands/helpers.js
4864
4910
  - webpack/components/extensions/RegistrationCommands/index.js
4865
4911
  - webpack/components/extensions/SearchBar/SearchBarConstants.js
@@ -5288,6 +5334,28 @@ files:
5288
5334
  - webpack/scenes/ContentViews/expansions/__tests__/relatedCompositeCvs.fixtures.json
5289
5335
  - webpack/scenes/ContentViews/helpers.js
5290
5336
  - webpack/scenes/ContentViews/index.js
5337
+ - webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js
5338
+ - webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js
5339
+ - webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js
5340
+ - webpack/scenes/FlatpakRemotes/CreateEdit/__tests__/flatpakRemoteform.test.js
5341
+ - webpack/scenes/FlatpakRemotes/Delete/DeleteFlatpakModal.js
5342
+ - webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailActions.js
5343
+ - webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailReducers.js
5344
+ - webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetailSelectors.js
5345
+ - webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js
5346
+ - webpack/scenes/FlatpakRemotes/Details/Mirror/MirrorRepositoryModal.js
5347
+ - webpack/scenes/FlatpakRemotes/Details/Mirror/__tests__/mirrorRepositoryModal.test.js
5348
+ - webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js
5349
+ - webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.fixtures.json
5350
+ - webpack/scenes/FlatpakRemotes/Details/__tests__/flatpakRemoteDetails.test.js
5351
+ - webpack/scenes/FlatpakRemotes/Details/index.js
5352
+ - webpack/scenes/FlatpakRemotes/FlatpakRemotesActions.js
5353
+ - webpack/scenes/FlatpakRemotes/FlatpakRemotesConstants.js
5354
+ - webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js
5355
+ - webpack/scenes/FlatpakRemotes/FlatpakRemotesSelectors.js
5356
+ - webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesList.fixtures.json
5357
+ - webpack/scenes/FlatpakRemotes/__tests__/flatpakRemotesPage.test.js
5358
+ - webpack/scenes/FlatpakRemotes/index.js
5291
5359
  - webpack/scenes/Hosts/ChangeContentSource/actions.js
5292
5360
  - webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js
5293
5361
  - webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js
@@ -5381,8 +5449,6 @@ files:
5381
5449
  - webpack/scenes/RedHatRepositories/helpers.js
5382
5450
  - webpack/scenes/RedHatRepositories/index.js
5383
5451
  - webpack/scenes/RedHatRepositories/index.scss
5384
- - webpack/scenes/Settings/SettingsConstants.js
5385
- - webpack/scenes/Settings/SettingsReducer.js
5386
5452
  - webpack/scenes/Settings/SettingsSelectors.js
5387
5453
  - webpack/scenes/Settings/Tables/TableActions.js
5388
5454
  - webpack/scenes/Settings/Tables/TableConstants.js
@@ -5545,11 +5611,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
5545
5611
  version: '4'
5546
5612
  required_rubygems_version: !ruby/object:Gem::Requirement
5547
5613
  requirements:
5548
- - - ">="
5614
+ - - ">"
5549
5615
  - !ruby/object:Gem::Version
5550
- version: '0'
5616
+ version: 1.3.1
5551
5617
  requirements: []
5552
- rubygems_version: 3.5.22
5618
+ rubygems_version: 3.2.33
5553
5619
  signing_key:
5554
5620
  specification_version: 4
5555
5621
  summary: Content and Subscription Management plugin for Foreman
@@ -1,2 +0,0 @@
1
- const CONTENT_DISCONNECTED = 'content_disconnected';
2
- export default CONTENT_DISCONNECTED;
@@ -1,19 +0,0 @@
1
- import { GET_SETTING_SUCCESS } from 'foremanReact/components/Settings/SettingsConstants';
2
- import { CONTENT_DISCONNECTED } from './SettingsConstants';
3
-
4
- export default (state, action) => {
5
- switch (action.type) {
6
- case GET_SETTING_SUCCESS: {
7
- const { name, value } = action.response;
8
- switch (name) {
9
- case CONTENT_DISCONNECTED:
10
- return state.set('disconnected', value);
11
- default:
12
- return state;
13
- }
14
- }
15
-
16
- default:
17
- return state;
18
- }
19
- };