katello 4.18.0.rc1 → 4.18.0

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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/locale/bn/katello.js +279 -15
  3. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +279 -15
  4. data/app/assets/javascripts/katello/locale/ca/katello.js +281 -17
  5. data/app/assets/javascripts/katello/locale/cs/katello.js +280 -16
  6. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +282 -18
  7. data/app/assets/javascripts/katello/locale/de/katello.js +290 -26
  8. data/app/assets/javascripts/katello/locale/de_AT/katello.js +279 -15
  9. data/app/assets/javascripts/katello/locale/de_DE/katello.js +281 -17
  10. data/app/assets/javascripts/katello/locale/el/katello.js +281 -17
  11. data/app/assets/javascripts/katello/locale/en/katello.js +280 -16
  12. data/app/assets/javascripts/katello/locale/en_GB/katello.js +280 -16
  13. data/app/assets/javascripts/katello/locale/en_US/katello.js +279 -15
  14. data/app/assets/javascripts/katello/locale/es/katello.js +445 -181
  15. data/app/assets/javascripts/katello/locale/et_EE/katello.js +279 -15
  16. data/app/assets/javascripts/katello/locale/fr/katello.js +1097 -833
  17. data/app/assets/javascripts/katello/locale/gl/katello.js +279 -15
  18. data/app/assets/javascripts/katello/locale/gu/katello.js +279 -15
  19. data/app/assets/javascripts/katello/locale/he_IL/katello.js +279 -15
  20. data/app/assets/javascripts/katello/locale/hi/katello.js +279 -15
  21. data/app/assets/javascripts/katello/locale/id/katello.js +279 -15
  22. data/app/assets/javascripts/katello/locale/it/katello.js +281 -17
  23. data/app/assets/javascripts/katello/locale/ja/katello.js +826 -562
  24. data/app/assets/javascripts/katello/locale/ka/katello.js +677 -413
  25. data/app/assets/javascripts/katello/locale/kn/katello.js +279 -15
  26. data/app/assets/javascripts/katello/locale/ko/katello.js +2325 -2062
  27. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +279 -15
  28. data/app/assets/javascripts/katello/locale/mr/katello.js +279 -15
  29. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +279 -15
  30. data/app/assets/javascripts/katello/locale/or/katello.js +279 -15
  31. data/app/assets/javascripts/katello/locale/pa/katello.js +279 -15
  32. data/app/assets/javascripts/katello/locale/pl/katello.js +281 -17
  33. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +279 -15
  34. data/app/assets/javascripts/katello/locale/pt/katello.js +279 -15
  35. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +458 -194
  36. data/app/assets/javascripts/katello/locale/ro/katello.js +279 -15
  37. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +279 -15
  38. data/app/assets/javascripts/katello/locale/ru/katello.js +281 -17
  39. data/app/assets/javascripts/katello/locale/sl/katello.js +281 -17
  40. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +279 -15
  41. data/app/assets/javascripts/katello/locale/ta/katello.js +279 -15
  42. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +279 -15
  43. data/app/assets/javascripts/katello/locale/te/katello.js +279 -15
  44. data/app/assets/javascripts/katello/locale/tr/katello.js +279 -15
  45. data/app/assets/javascripts/katello/locale/vi/katello.js +279 -15
  46. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +279 -15
  47. data/app/assets/javascripts/katello/locale/zh/katello.js +279 -15
  48. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +831 -567
  49. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +281 -17
  50. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +2 -2
  51. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +69 -19
  52. data/app/controllers/katello/api/v2/exports_controller.rb +14 -7
  53. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +9 -0
  54. data/app/controllers/katello/api/v2/host_errata_controller.rb +24 -2
  55. data/app/controllers/katello/api/v2/organizations_controller.rb +10 -4
  56. data/app/controllers/katello/api/v2/repositories_controller.rb +12 -3
  57. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +36 -8
  58. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +9 -1
  59. data/app/lib/actions/katello/repository/destroy.rb +3 -2
  60. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +1 -2
  61. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +1 -2
  62. data/app/lib/katello/errors.rb +2 -0
  63. data/app/models/katello/concerns/host_managed_extensions.rb +5 -1
  64. data/app/models/katello/content_view_environment.rb +3 -0
  65. data/app/models/katello/rhel_lifecycle_status.rb +3 -1
  66. data/app/services/katello/pulp3/content_view_version/export.rb +32 -25
  67. data/app/services/katello/pulp3/content_view_version/export_validator.rb +1 -1
  68. data/app/views/katello/api/v2/content_facet/base.json.rabl +3 -0
  69. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata-type.filter.js +1 -1
  70. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +8 -0
  71. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +6 -5
  72. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +6 -5
  73. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +6 -5
  74. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +6 -5
  75. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +6 -5
  76. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +6 -5
  77. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +6 -5
  78. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +6 -5
  79. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +6 -5
  80. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +6 -5
  81. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +6 -5
  82. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +6 -5
  83. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -5
  84. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +6 -5
  85. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +6 -5
  86. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +6 -5
  87. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +6 -5
  88. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +6 -5
  89. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +6 -5
  90. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +6 -5
  91. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +6 -5
  92. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +6 -5
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +6 -5
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +6 -5
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +6 -5
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +6 -5
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +6 -5
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +6 -5
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +6 -5
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +6 -5
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +6 -5
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +6 -5
  103. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +6 -5
  104. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +6 -5
  105. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +6 -5
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +6 -5
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +6 -5
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +6 -5
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +6 -5
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +6 -5
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +6 -5
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +6 -5
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +6 -5
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +6 -5
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +6 -5
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +6 -5
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +11 -11
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +3 -0
  119. data/lib/katello/plugin.rb +6 -0
  120. data/lib/katello/tasks/repository.rake +67 -0
  121. data/lib/katello/version.rb +1 -1
  122. data/locale/action_names.rb +186 -0
  123. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  124. data/locale/bn/katello.po +279 -15
  125. data/locale/bn/katello.po.time_stamp +0 -0
  126. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  127. data/locale/bn_IN/katello.po +279 -15
  128. data/locale/bn_IN/katello.po.time_stamp +0 -0
  129. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  130. data/locale/ca/katello.po +282 -18
  131. data/locale/ca/katello.po.time_stamp +0 -0
  132. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  133. data/locale/cs/katello.po +280 -17
  134. data/locale/cs/katello.po.time_stamp +0 -0
  135. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  136. data/locale/cs_CZ/katello.po +283 -19
  137. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  138. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  139. data/locale/de/katello.po +295 -31
  140. data/locale/de/katello.po.time_stamp +0 -0
  141. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  142. data/locale/de_AT/katello.po +279 -15
  143. data/locale/de_AT/katello.po.time_stamp +0 -0
  144. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  145. data/locale/de_DE/katello.po +282 -18
  146. data/locale/de_DE/katello.po.time_stamp +0 -0
  147. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  148. data/locale/el/katello.po +282 -18
  149. data/locale/el/katello.po.time_stamp +0 -0
  150. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  151. data/locale/en/katello.po +280 -17
  152. data/locale/en/katello.po.time_stamp +0 -0
  153. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  154. data/locale/en_GB/katello.po +280 -16
  155. data/locale/en_GB/katello.po.time_stamp +0 -0
  156. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  157. data/locale/en_US/katello.po +279 -15
  158. data/locale/en_US/katello.po.time_stamp +0 -0
  159. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  160. data/locale/es/katello.po +449 -184
  161. data/locale/es/katello.po.time_stamp +0 -0
  162. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  163. data/locale/et_EE/katello.po +279 -15
  164. data/locale/et_EE/katello.po.time_stamp +0 -0
  165. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  166. data/locale/fr/katello.po +1103 -840
  167. data/locale/fr/katello.po.time_stamp +0 -0
  168. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  169. data/locale/gl/katello.po +279 -15
  170. data/locale/gl/katello.po.time_stamp +0 -0
  171. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  172. data/locale/gu/katello.po +279 -15
  173. data/locale/gu/katello.po.time_stamp +0 -0
  174. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  175. data/locale/he_IL/katello.po +279 -15
  176. data/locale/he_IL/katello.po.time_stamp +0 -0
  177. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  178. data/locale/hi/katello.po +279 -15
  179. data/locale/hi/katello.po.time_stamp +0 -0
  180. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  181. data/locale/id/katello.po +279 -15
  182. data/locale/id/katello.po.time_stamp +0 -0
  183. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  184. data/locale/it/katello.po +282 -18
  185. data/locale/it/katello.po.time_stamp +0 -0
  186. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  187. data/locale/ja/katello.po +833 -568
  188. data/locale/ja/katello.po.time_stamp +0 -0
  189. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  190. data/locale/ka/katello.po +679 -413
  191. data/locale/ka/katello.po.time_stamp +0 -0
  192. data/locale/katello.pot +775 -359
  193. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  194. data/locale/kn/katello.po +279 -15
  195. data/locale/kn/katello.po.time_stamp +0 -0
  196. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  197. data/locale/ko/katello.po +2334 -2058
  198. data/locale/ko/katello.po.time_stamp +0 -0
  199. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/ml_IN/katello.po +279 -15
  201. data/locale/ml_IN/katello.po.time_stamp +0 -0
  202. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  203. data/locale/mr/katello.po +279 -15
  204. data/locale/mr/katello.po.time_stamp +0 -0
  205. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/nl_NL/katello.po +279 -15
  207. data/locale/nl_NL/katello.po.time_stamp +0 -0
  208. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  209. data/locale/or/katello.po +279 -15
  210. data/locale/or/katello.po.time_stamp +0 -0
  211. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/pa/katello.po +279 -15
  213. data/locale/pa/katello.po.time_stamp +0 -0
  214. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  215. data/locale/pl/katello.po +282 -18
  216. data/locale/pl/katello.po.time_stamp +0 -0
  217. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  218. data/locale/pl_PL/katello.po +279 -15
  219. data/locale/pl_PL/katello.po.time_stamp +0 -0
  220. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  221. data/locale/pt/katello.po +279 -15
  222. data/locale/pt/katello.po.time_stamp +0 -0
  223. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  224. data/locale/pt_BR/katello.po +462 -197
  225. data/locale/pt_BR/katello.po.time_stamp +0 -0
  226. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  227. data/locale/ro/katello.po +279 -15
  228. data/locale/ro/katello.po.time_stamp +0 -0
  229. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  230. data/locale/ro_RO/katello.po +279 -15
  231. data/locale/ro_RO/katello.po.time_stamp +0 -0
  232. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  233. data/locale/ru/katello.po +282 -18
  234. data/locale/ru/katello.po.time_stamp +0 -0
  235. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  236. data/locale/sl/katello.po +282 -18
  237. data/locale/sl/katello.po.time_stamp +0 -0
  238. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/sv_SE/katello.po +279 -15
  240. data/locale/sv_SE/katello.po.time_stamp +0 -0
  241. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  242. data/locale/ta/katello.po +279 -15
  243. data/locale/ta/katello.po.time_stamp +0 -0
  244. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  245. data/locale/ta_IN/katello.po +279 -15
  246. data/locale/ta_IN/katello.po.time_stamp +0 -0
  247. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  248. data/locale/te/katello.po +279 -15
  249. data/locale/te/katello.po.time_stamp +0 -0
  250. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  251. data/locale/tr/katello.po +279 -15
  252. data/locale/tr/katello.po.time_stamp +0 -0
  253. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  254. data/locale/vi/katello.po +279 -15
  255. data/locale/vi/katello.po.time_stamp +0 -0
  256. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/vi_VN/katello.po +279 -15
  258. data/locale/vi_VN/katello.po.time_stamp +0 -0
  259. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  260. data/locale/zh/katello.po +279 -15
  261. data/locale/zh/katello.po.time_stamp +0 -0
  262. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  263. data/locale/zh_CN/katello.po +836 -567
  264. data/locale/zh_CN/katello.po.time_stamp +0 -0
  265. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  266. data/locale/zh_TW/katello.po +282 -18
  267. data/locale/zh_TW/katello.po.time_stamp +0 -0
  268. data/webpack/components/Errata/index.js +18 -0
  269. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +5 -5
  270. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataConstants.js +3 -0
  271. data/webpack/global_index.js +0 -4
  272. data/webpack/redux/actions/RedHatRepositories/helpers.js +3 -3
  273. data/webpack/redux/reducers/index.js +0 -2
  274. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +2 -0
  275. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +9 -6
  276. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +4 -0
  277. metadata +53 -16
  278. data/webpack/components/extensions/about/SystemStatuses.js +0 -55
  279. data/webpack/components/extensions/about/SystemStatusesActions.js +0 -16
  280. data/webpack/components/extensions/about/SystemStatusesConsts.js +0 -3
  281. data/webpack/components/extensions/about/SystemStatusesReducer.js +0 -26
  282. data/webpack/components/extensions/about/SystemStatusesSelectors.js +0 -3
  283. data/webpack/components/extensions/about/__tests__/SystemStatuses.fixtures.js +0 -20
  284. data/webpack/components/extensions/about/__tests__/SystemStatuses.test.js +0 -14
  285. data/webpack/components/extensions/about/__tests__/SystemStatusesReducer.test.js +0 -32
  286. data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatuses.test.js.snap +0 -156
  287. data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatusesReducer.test.js.snap +0 -47
  288. data/webpack/components/extensions/about/index.js +0 -19
  289. data/webpack/components/extensions/reducers.js +0 -6
@@ -67,6 +67,9 @@
67
67
  ng-disabled="discovery.working"
68
68
  placeholder="Default: * (search all)"
69
69
  name="discoverySearch"/>
70
+ <h6 translate>
71
+ Using a search parameter will improve repository discovery. A blank search might return an incomplete list due to registry's API limits.
72
+ </h6>
70
73
  </div>
71
74
 
72
75
  <span class="input-group-btn">
@@ -711,6 +711,12 @@ Foreman::Plugin.register :katello do
711
711
  full_name: N_('Enable structured APT for deb content'),
712
712
  description: N_("If set, newly created APT repos in Katello will use the same repo structure as the remote repos they are synchronized from. " \
713
713
  "You may migrate existing APT repos to match the setting, by running 'foreman-rake katello:migrate_structure_content_for_deb'.")
714
+
715
+ setting 'registry_token_expiration_minutes',
716
+ type: :integer,
717
+ default: 60,
718
+ full_name: N_('Registry token expiration time'),
719
+ description: N_('Time in minutes before registry access tokens expire.')
714
720
  end
715
721
  end
716
722
 
@@ -78,6 +78,73 @@ namespace :katello do
78
78
  handle_manifest_list_label_updates
79
79
  end
80
80
 
81
+ desc "Clean up duplicate erratum_packages"
82
+ task :cleanup_duplicate_erratum_packages => ["dynflow:client", "check_ping"] do
83
+ User.current = User.anonymous_api_admin
84
+ handle_duplicate_erratum_packages
85
+ end
86
+
87
+ def handle_duplicate_erratum_packages
88
+ # Get all duplicate groups
89
+ duplicate_groups = Katello::ErratumPackage
90
+ .select(:nvrea, :erratum_id, :name, :filename)
91
+ .group(:nvrea, :erratum_id, :name, :filename)
92
+ .having('COUNT(*) > 1')
93
+
94
+ return if duplicate_groups.empty?
95
+ # Alert users that they need to reindex their database to ensure the indexes are re-run and active.
96
+ puts "Please reindex your database to ensure indexes are rebuilt and active."
97
+ puts "This can be achieved by running `runuser -u postgres -- reindexdb -a`"
98
+ puts "Seek technical support for any errors with database reindexing."
99
+ # Build mapping of duplicates to keep/delete in memory
100
+ ids_to_delete = []
101
+ update_mappings = {}
102
+
103
+ duplicate_groups.each do |group|
104
+ # Get all IDs for this duplicate group in one query
105
+ duplicate_ids = Katello::ErratumPackage
106
+ .where(
107
+ nvrea: group.nvrea,
108
+ erratum_id: group.erratum_id,
109
+ name: group.name,
110
+ filename: group.filename
111
+ )
112
+ .order(:id)
113
+ .pluck(:id)
114
+
115
+ id_to_keep = duplicate_ids.first
116
+ ids_to_remove = duplicate_ids[1..]
117
+
118
+ ids_to_delete.concat(ids_to_remove)
119
+ ids_to_remove.each { |id| update_mappings[id] = id_to_keep }
120
+ end
121
+
122
+ return if ids_to_delete.empty?
123
+
124
+ # Handle references - delete conflicting ones first, then update remaining
125
+ update_mappings.each_slice(1000) do |batch|
126
+ batch.each do |old_id, new_id|
127
+ # Delete records where module_stream already has the target erratum_package
128
+ Katello::ModuleStreamErratumPackage
129
+ .where(erratum_package_id: old_id)
130
+ .where(
131
+ module_stream_id: Katello::ModuleStreamErratumPackage
132
+ .where(erratum_package_id: new_id)
133
+ .select(:module_stream_id)
134
+ )
135
+ .delete_all
136
+
137
+ # Update remaining records
138
+ Katello::ModuleStreamErratumPackage
139
+ .where(erratum_package_id: old_id)
140
+ .update_all(erratum_package_id: new_id)
141
+ end
142
+ end
143
+
144
+ Katello::ErratumPackage.where(id: ids_to_delete).delete_all
145
+ puts "Deleted #{ids_to_delete.size} duplicate erratum_packages"
146
+ end
147
+
81
148
  def lookup_repositories
82
149
  lifecycle_envs = Katello::KTEnvironment.where(:name => ENV['LIFECYCLE_ENVIRONMENT']) if ENV['LIFECYCLE_ENVIRONMENT']
83
150
  content_views = Katello::ContentView.where(:name => ENV['CONTENT_VIEW']) if ENV['CONTENT_VIEW']
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.18.0.rc1".freeze
2
+ VERSION = "4.18.0".freeze
3
3
  end
@@ -0,0 +1,186 @@
1
+ # Autogenerated!
2
+ _("Abstract async task")
3
+ _("Add rolling repo clone")
4
+ _("Attach subscriptions")
5
+ _("Auto attach subscriptions")
6
+ _("Bulk generate applicability for hosts")
7
+ _("Commit upload")
8
+ _("Copy all units")
9
+ _("Copy content")
10
+ _("Copy version units to library")
11
+ _("Copy version")
12
+ _("Create Alternate Content Source")
13
+ _("Create Container Push Repository Root")
14
+ _("Create Export History")
15
+ _("Create Import History")
16
+ _("Create Syncable Export History")
17
+ _("Create exporter")
18
+ _("Create import")
19
+ _("Create importer")
20
+ _("Create publication")
21
+ _("Create remote")
22
+ _("Create remote")
23
+ _("Create")
24
+ _("Create")
25
+ _("Create")
26
+ _("Create")
27
+ _("Create")
28
+ _("Create")
29
+ _("Create")
30
+ _("Delete Activation Key")
31
+ _("Delete Lifecycle Environment")
32
+ _("Delete Manifest")
33
+ _("Delete Product")
34
+ _("Delete distributions")
35
+ _("Delete orphan alternate content sources")
36
+ _("Delete orphan distributions")
37
+ _("Delete orphan remotes")
38
+ _("Delete orphan repository versions")
39
+ _("Delete orphaned migrated repositories")
40
+ _("Delete remote")
41
+ _("Delete remote")
42
+ _("Delete repository references")
43
+ _("Delete version")
44
+ _("Delete")
45
+ _("Delete")
46
+ _("Delete")
47
+ _("Delete")
48
+ _("Delete")
49
+ _("Delete")
50
+ _("Delete")
51
+ _("Destroy Alternate Content Source")
52
+ _("Destroy Content Host")
53
+ _("Destroy exporter")
54
+ _("Destroy importer")
55
+ _("Destroy")
56
+ _("Disable Simple Content Access")
57
+ _("Disable")
58
+ _("Discover")
59
+ _("Enable Simple Content Access")
60
+ _("Enable")
61
+ _("Environment contents refresh")
62
+ _("Errata mail")
63
+ _("Errata mail")
64
+ _("Export Library")
65
+ _("Export Repository")
66
+ _("Export")
67
+ _("Export")
68
+ _("Export")
69
+ _("Fetch pxe files")
70
+ _("Filtered index content")
71
+ _("Generate host applicability")
72
+ _("Generate metadata")
73
+ _("Generate metadata")
74
+ _("Generate repository applicability")
75
+ _("Hypervisors update")
76
+ _("Hypervisors")
77
+ _("Import Content View Version")
78
+ _("Import Default Content View")
79
+ _("Import Manifest")
80
+ _("Import Repository")
81
+ _("Import migration")
82
+ _("Import repository upload")
83
+ _("Import upload")
84
+ _("Import upload")
85
+ _("Import")
86
+ _("Incremental Update of Content View Version(s) ")
87
+ _("Incremental Update")
88
+ _("Index content")
89
+ _("Index errata")
90
+ _("Index module streams")
91
+ _("Index package groups")
92
+ _("Initialize")
93
+ _("Instance update")
94
+ _("Metadata generate")
95
+ _("Mirror Remote Repository")
96
+ _("Multi copy all units")
97
+ _("Multi copy content")
98
+ _("Multi copy units")
99
+ _("Product Create")
100
+ _("Promote")
101
+ _("Promotion to Environment")
102
+ _("Publish Lifecycle Environment Container Repositories")
103
+ _("Publish")
104
+ _("Purge completed tasks")
105
+ _("Reclaim space")
106
+ _("Reclaim space")
107
+ _("Refresh Alternate Content Source")
108
+ _("Refresh Manifest")
109
+ _("Refresh RollingCV Repo")
110
+ _("Refresh all distributions")
111
+ _("Refresh distribution")
112
+ _("Refresh distribution")
113
+ _("Refresh if needed")
114
+ _("Refresh remote")
115
+ _("Refresh remote")
116
+ _("Refresh repos")
117
+ _("Refresh")
118
+ _("Refresh")
119
+ _("Refresh")
120
+ _("Reindex subscriptions")
121
+ _("Remove Content")
122
+ _("Remove Version")
123
+ _("Remove Versions and Associations")
124
+ _("Remove from Environment")
125
+ _("Remove orphans")
126
+ _("Remove orphans")
127
+ _("Remove rolling repo clone")
128
+ _("Remove subscriptions")
129
+ _("Remove units")
130
+ _("Remove units")
131
+ _("Remove unneeded repos")
132
+ _("Repair")
133
+ _("Repositories certs reset")
134
+ _("Repositories gpg reset")
135
+ _("Republish Version Repositories")
136
+ _("Run Sync Plan:")
137
+ _("Save artifact")
138
+ _("Save distribution references")
139
+ _("Save publication")
140
+ _("Save version")
141
+ _("Save versions")
142
+ _("Scan cdn")
143
+ _("Scan remote")
144
+ _("Sync capsule")
145
+ _("Sync")
146
+ _("Sync")
147
+ _("Sync")
148
+ _("Syncable export")
149
+ _("Synchronize smart proxy")
150
+ _("Synchronize")
151
+ _("Toggle")
152
+ _("Update Alternate Content Source")
153
+ _("Update CDN Configuration")
154
+ _("Update Content Counts")
155
+ _("Update Content Overrides")
156
+ _("Update content urls")
157
+ _("Update content view environments for host")
158
+ _("Update distributions")
159
+ _("Update http proxy details")
160
+ _("Update http proxy")
161
+ _("Update redhat repository")
162
+ _("Update release version for host")
163
+ _("Update remote")
164
+ _("Update remote")
165
+ _("Update repository")
166
+ _("Update")
167
+ _("Update")
168
+ _("Update")
169
+ _("Update")
170
+ _("Update")
171
+ _("Update")
172
+ _("Update")
173
+ _("Update")
174
+ _("Update")
175
+ _("Updating System Purpose for host")
176
+ _("Updating repository authentication configuration")
177
+ _("Updating repository authentication configuration")
178
+ _("Upload content")
179
+ _("Upload file")
180
+ _("Upload into")
181
+ _("Upload into")
182
+ _("Upload tag")
183
+ _("Verify checksum for content on smart proxy")
184
+ _("Verify checksum of version repositories")
185
+ _("Verify checksum")
186
+ _("Verify checksum")
Binary file