katello 4.16.1 → 4.17.0.rc1

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

Potentially problematic release.


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

Files changed (557) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +5 -3
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +82 -31
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +82 -31
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +82 -31
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +82 -31
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +83 -32
  8. data/app/assets/javascripts/katello/locale/de/katello.js +82 -31
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +82 -31
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +82 -31
  11. data/app/assets/javascripts/katello/locale/el/katello.js +82 -31
  12. data/app/assets/javascripts/katello/locale/en/katello.js +82 -31
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +84 -33
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +82 -31
  15. data/app/assets/javascripts/katello/locale/es/katello.js +82 -31
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +82 -31
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +83 -32
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +82 -31
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +83 -32
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +82 -31
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +82 -31
  22. data/app/assets/javascripts/katello/locale/id/katello.js +82 -31
  23. data/app/assets/javascripts/katello/locale/it/katello.js +84 -33
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +83 -32
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +82 -31
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +82 -31
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +82 -31
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +82 -31
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +82 -31
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +82 -31
  31. data/app/assets/javascripts/katello/locale/or/katello.js +82 -31
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +82 -31
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +83 -32
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +82 -31
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +82 -31
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +82 -31
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +82 -31
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +82 -31
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +84 -33
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +82 -31
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +83 -32
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +82 -31
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +82 -31
  44. data/app/assets/javascripts/katello/locale/te/katello.js +82 -31
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +82 -31
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +82 -31
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +82 -31
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +82 -31
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +83 -32
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +84 -33
  51. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -3
  52. data/app/controllers/katello/api/v2/content_view_components_controller.rb +6 -6
  53. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
  54. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
  55. data/app/controllers/katello/api/v2/content_views_controller.rb +12 -1
  56. data/app/controllers/katello/api/v2/exports_controller.rb +3 -0
  57. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -14
  58. data/app/controllers/katello/api/v2/organizations_controller.rb +10 -10
  59. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +8 -2
  60. data/app/lib/actions/helpers/rolling_cv_repos.rb +25 -0
  61. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +6 -1
  62. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +39 -0
  63. data/app/lib/actions/katello/content_view/create.rb +3 -0
  64. data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +40 -0
  65. data/app/lib/actions/katello/content_view/remove.rb +8 -4
  66. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +28 -0
  67. data/app/lib/actions/katello/content_view/update.rb +8 -0
  68. data/app/lib/actions/katello/repository/check_matching_content.rb +1 -8
  69. data/app/lib/actions/katello/repository/import_upload.rb +5 -0
  70. data/app/lib/actions/katello/repository/sync.rb +8 -4
  71. data/app/lib/actions/katello/repository/upload_files.rb +7 -1
  72. data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +3 -2
  73. data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb +8 -1
  74. data/app/lib/katello/errors.rb +8 -0
  75. data/app/lib/katello/validators/container_image_name_validator.rb +3 -2
  76. data/app/models/katello/authorization/repository.rb +11 -1
  77. data/app/models/katello/concerns/host_managed_extensions.rb +2 -2
  78. data/app/models/katello/concerns/pulp_database_unit.rb +12 -42
  79. data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -0
  80. data/app/models/katello/content_view.rb +14 -1
  81. data/app/models/katello/content_view_component.rb +4 -0
  82. data/app/models/katello/content_view_environment.rb +1 -0
  83. data/app/models/katello/content_view_version.rb +3 -2
  84. data/app/models/katello/host/content_facet.rb +18 -5
  85. data/app/models/katello/product_content.rb +3 -1
  86. data/app/models/katello/repository.rb +3 -3
  87. data/app/services/katello/content_unit_indexer.rb +1 -1
  88. data/app/services/katello/pulp3/api/content_guard.rb +1 -1
  89. data/app/services/katello/pulp3/api/core.rb +6 -0
  90. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +58 -1
  91. data/app/services/katello/pulp3/smart_proxy_repository.rb +67 -3
  92. data/app/services/katello/smart_proxy_helper.rb +6 -1
  93. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +15 -1
  94. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +15 -1
  95. data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +15 -2
  96. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +21 -2
  97. data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +15 -1
  98. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +20 -1
  99. data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +15 -2
  100. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +17 -1
  101. data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -0
  102. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -1
  103. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -0
  104. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -0
  105. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  106. data/app/views/katello/api/v2/environments/show.json.rabl +14 -0
  107. data/app/views/katello/api/v2/hosts/base.json.rabl +1 -0
  108. data/app/views/katello/api/v2/organizations/show.json.rabl +2 -0
  109. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  110. data/db/migrate/20190930192813_add_pulp3_hrefs_to_content_types.rb +1 -1
  111. data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
  112. data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
  113. data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
  114. data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
  115. data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +90 -31
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +90 -31
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +90 -31
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +90 -31
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +93 -60
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +90 -31
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +90 -31
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +90 -31
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +94 -35
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +90 -31
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +93 -40
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +90 -31
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +254 -192
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +90 -31
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +90 -31
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +90 -31
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +90 -31
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +90 -31
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +90 -35
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +113 -52
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +93 -34
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +90 -31
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +101 -40
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +90 -31
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +90 -31
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +90 -31
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +90 -31
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +90 -31
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +90 -31
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +90 -31
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +90 -31
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +93 -40
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +90 -31
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +90 -31
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +91 -34
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +90 -31
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +90 -31
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +90 -31
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +90 -31
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +90 -31
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +90 -31
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +90 -31
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +90 -31
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +90 -31
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +99 -40
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +92 -33
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +14 -14
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
  165. data/lib/katello/engine.rb +9 -1
  166. data/lib/katello/repository_types/python.rb +1 -1
  167. data/lib/katello/tasks/repository.rake +1 -1
  168. data/lib/katello/version.rb +1 -1
  169. data/locale/action_names.rb +186 -0
  170. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  171. data/locale/bn/katello.po +82 -31
  172. data/locale/bn/katello.po.time_stamp +0 -0
  173. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  174. data/locale/bn_IN/katello.po +82 -31
  175. data/locale/bn_IN/katello.po.time_stamp +0 -0
  176. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  177. data/locale/ca/katello.po +82 -31
  178. data/locale/ca/katello.po.time_stamp +0 -0
  179. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/cs/katello.po +82 -31
  181. data/locale/cs/katello.po.time_stamp +0 -0
  182. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  183. data/locale/cs_CZ/katello.po +83 -32
  184. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  185. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/de/katello.po +82 -31
  187. data/locale/de/katello.po.time_stamp +0 -0
  188. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/de_AT/katello.po +82 -31
  190. data/locale/de_AT/katello.po.time_stamp +0 -0
  191. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/de_DE/katello.po +82 -31
  193. data/locale/de_DE/katello.po.time_stamp +0 -0
  194. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  195. data/locale/el/katello.po +82 -31
  196. data/locale/el/katello.po.time_stamp +0 -0
  197. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/en/katello.po +82 -31
  199. data/locale/en/katello.po.time_stamp +0 -0
  200. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  201. data/locale/en_GB/katello.po +84 -33
  202. data/locale/en_GB/katello.po.time_stamp +0 -0
  203. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/en_US/katello.po +82 -31
  205. data/locale/en_US/katello.po.time_stamp +0 -0
  206. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  207. data/locale/es/katello.po +82 -31
  208. data/locale/es/katello.po.time_stamp +0 -0
  209. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/et_EE/katello.po +82 -31
  211. data/locale/et_EE/katello.po.time_stamp +0 -0
  212. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  213. data/locale/fr/katello.po +83 -32
  214. data/locale/fr/katello.po.time_stamp +0 -0
  215. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/gl/katello.po +82 -31
  217. data/locale/gl/katello.po.time_stamp +0 -0
  218. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/gu/katello.po +84 -33
  220. data/locale/gu/katello.po.time_stamp +0 -0
  221. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/he_IL/katello.po +82 -31
  223. data/locale/he_IL/katello.po.time_stamp +0 -0
  224. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/hi/katello.po +82 -31
  226. data/locale/hi/katello.po.time_stamp +0 -0
  227. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/id/katello.po +82 -31
  229. data/locale/id/katello.po.time_stamp +0 -0
  230. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/it/katello.po +85 -34
  232. data/locale/it/katello.po.time_stamp +0 -0
  233. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/ja/katello.po +83 -32
  235. data/locale/ja/katello.po.time_stamp +0 -0
  236. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/ka/katello.po +82 -31
  238. data/locale/ka/katello.po.time_stamp +0 -0
  239. data/locale/katello.pot +1232 -1140
  240. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/kn/katello.po +82 -31
  242. data/locale/kn/katello.po.time_stamp +0 -0
  243. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/ko/katello.po +82 -31
  245. data/locale/ko/katello.po.time_stamp +0 -0
  246. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/ml_IN/katello.po +82 -31
  248. data/locale/ml_IN/katello.po.time_stamp +0 -0
  249. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  250. data/locale/mr/katello.po +82 -31
  251. data/locale/mr/katello.po.time_stamp +0 -0
  252. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/nl_NL/katello.po +82 -31
  254. data/locale/nl_NL/katello.po.time_stamp +0 -0
  255. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  256. data/locale/or/katello.po +82 -31
  257. data/locale/or/katello.po.time_stamp +0 -0
  258. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/pa/katello.po +82 -31
  260. data/locale/pa/katello.po.time_stamp +0 -0
  261. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  262. data/locale/pl/katello.po +84 -33
  263. data/locale/pl/katello.po.time_stamp +0 -0
  264. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/pl_PL/katello.po +82 -31
  266. data/locale/pl_PL/katello.po.time_stamp +0 -0
  267. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  268. data/locale/pt/katello.po +82 -31
  269. data/locale/pt/katello.po.time_stamp +0 -0
  270. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/pt_BR/katello.po +82 -31
  272. data/locale/pt_BR/katello.po.time_stamp +0 -0
  273. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  274. data/locale/ro/katello.po +82 -31
  275. data/locale/ro/katello.po.time_stamp +0 -0
  276. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  277. data/locale/ro_RO/katello.po +82 -31
  278. data/locale/ro_RO/katello.po.time_stamp +0 -0
  279. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  280. data/locale/ru/katello.po +85 -34
  281. data/locale/ru/katello.po.time_stamp +0 -0
  282. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  283. data/locale/sl/katello.po +82 -31
  284. data/locale/sl/katello.po.time_stamp +0 -0
  285. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  286. data/locale/sv_SE/katello.po +84 -33
  287. data/locale/sv_SE/katello.po.time_stamp +0 -0
  288. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  289. data/locale/ta/katello.po +82 -31
  290. data/locale/ta/katello.po.time_stamp +0 -0
  291. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  292. data/locale/ta_IN/katello.po +82 -31
  293. data/locale/ta_IN/katello.po.time_stamp +0 -0
  294. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  295. data/locale/te/katello.po +82 -31
  296. data/locale/te/katello.po.time_stamp +0 -0
  297. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  298. data/locale/tr/katello.po +82 -31
  299. data/locale/tr/katello.po.time_stamp +0 -0
  300. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  301. data/locale/vi/katello.po +82 -31
  302. data/locale/vi/katello.po.time_stamp +0 -0
  303. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  304. data/locale/vi_VN/katello.po +82 -31
  305. data/locale/vi_VN/katello.po.time_stamp +0 -0
  306. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  307. data/locale/zh/katello.po +82 -31
  308. data/locale/zh/katello.po.time_stamp +0 -0
  309. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  310. data/locale/zh_CN/katello.po +83 -32
  311. data/locale/zh_CN/katello.po.time_stamp +0 -0
  312. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  313. data/locale/zh_TW/katello.po +85 -34
  314. data/locale/zh_TW/katello.po.time_stamp +0 -0
  315. data/webpack/ForemanColumnExtensions/index.js +12 -4
  316. data/webpack/components/ActivationKeysSearch/index.js +6 -7
  317. data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
  318. data/webpack/components/Bookmark/Bookmark.scss +3 -3
  319. data/webpack/components/Bookmark/index.js +7 -2
  320. data/webpack/components/EditableSwitch.js +1 -1
  321. data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
  322. data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
  323. data/webpack/components/Errata/index.js +1 -24
  324. data/webpack/components/Loading.js +10 -6
  325. data/webpack/components/Packages/index.js +2 -1
  326. data/webpack/components/SelectAllCheckbox/index.js +7 -3
  327. data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
  328. data/webpack/components/Table/EmptyStateMessage.js +12 -14
  329. data/webpack/components/Table/MainTable.js +8 -7
  330. data/webpack/components/Table/MainTable.scss +4 -4
  331. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
  332. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
  333. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
  334. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
  335. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
  336. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
  337. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
  338. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
  339. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
  340. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  341. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
  342. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
  343. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
  344. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
  345. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
  346. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
  347. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
  348. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
  349. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
  350. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
  351. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
  352. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
  353. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
  354. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
  355. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
  356. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
  357. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
  358. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
  359. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
  360. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
  361. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
  362. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
  363. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
  364. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
  365. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
  366. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
  367. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
  368. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
  369. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
  370. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
  371. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
  372. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
  373. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
  374. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
  375. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
  376. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
  377. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
  378. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
  379. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
  380. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
  381. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
  382. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
  383. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
  384. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
  385. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
  386. data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
  387. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
  388. data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
  389. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
  390. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
  391. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
  392. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
  393. data/webpack/containers/Application/overrides.scss +7 -7
  394. data/webpack/ouia_id_check.js +15 -11
  395. data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
  396. data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
  397. data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
  398. data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
  399. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
  400. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
  401. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
  402. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
  403. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
  404. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
  405. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
  406. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
  407. data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
  408. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
  409. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
  410. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
  411. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
  412. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
  413. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
  414. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
  415. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
  416. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
  417. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
  418. data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
  419. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
  420. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
  421. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
  422. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
  423. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
  424. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  425. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
  426. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
  427. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
  428. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
  429. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
  430. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
  431. data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
  432. data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
  433. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
  434. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
  435. data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
  436. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
  437. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
  438. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
  439. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
  440. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
  441. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
  442. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
  443. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
  444. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
  445. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
  446. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
  447. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
  448. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
  449. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
  450. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
  451. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
  452. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
  453. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
  454. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
  455. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
  456. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
  457. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
  458. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
  459. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
  460. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
  461. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
  462. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
  463. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
  464. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
  465. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
  466. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
  467. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
  468. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
  469. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
  470. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
  471. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
  472. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
  473. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
  474. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
  475. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
  476. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
  477. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
  478. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
  479. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
  480. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
  481. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
  482. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
  483. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  484. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
  485. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
  486. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
  487. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
  488. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
  489. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
  490. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
  491. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
  492. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
  493. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
  494. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
  495. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
  496. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
  497. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
  498. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
  499. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
  500. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
  501. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
  502. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
  503. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
  504. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
  505. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
  506. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
  507. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  508. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
  509. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
  510. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
  511. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
  512. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
  513. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
  514. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
  515. data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
  516. data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
  517. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
  518. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
  519. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
  520. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
  521. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
  522. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
  523. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
  524. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
  525. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
  526. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
  527. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
  528. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
  529. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
  530. data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
  531. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
  532. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
  533. data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
  534. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
  535. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
  536. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
  537. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
  538. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
  539. data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
  540. data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
  541. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
  542. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
  543. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  544. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
  545. data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
  546. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
  547. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
  548. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
  549. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
  550. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
  551. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
  552. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
  553. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
  554. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
  555. metadata +125 -53
  556. data/app/models/katello/yum_metadata_file.rb +0 -22
  557. data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
@@ -1,3 +1,3 @@
1
- #package-install-modal .pf-c-input-group input {
1
+ #package-install-modal .pf-v5-c-input-group input {
2
2
  min-width: 15em;
3
3
  }
@@ -3,6 +3,11 @@ import { useSelector, useDispatch } from 'react-redux';
3
3
  import {
4
4
  ActionList,
5
5
  ActionListItem,
6
+ Skeleton,
7
+ Split,
8
+ SplitItem,
9
+ } from '@patternfly/react-core';
10
+ import {
6
11
  Dropdown,
7
12
  DropdownItem,
8
13
  DropdownSeparator,
@@ -12,11 +17,8 @@ import {
12
17
  Select,
13
18
  SelectOption,
14
19
  SelectVariant,
15
- Skeleton,
16
- Split,
17
- SplitItem,
18
- } from '@patternfly/react-core';
19
- import { TableVariant, Thead, Tbody, Tr, Th, Td, TableText } from '@patternfly/react-table';
20
+ } from '@patternfly/react-core/deprecated';
21
+ import { TableVariant, Thead, Tbody, Tr, Th, Td, TableText, ActionsColumn } from '@patternfly/react-table';
20
22
  import PropTypes from 'prop-types';
21
23
  import { translate as __ } from 'foremanReact/common/I18n';
22
24
  import { HOST_DETAILS_KEY } from 'foremanReact/components/HostDetails/consts';
@@ -40,12 +42,16 @@ import { katelloPackageUpdateUrl, packagesUpdateUrl } from '../customizedRexUrlH
40
42
  import './PackagesTab.scss';
41
43
  import hostIdNotReady, { getHostDetails } from '../../HostDetailsActions';
42
44
  import PackageInstallModal from './PackageInstallModal';
43
- import { hasRequiredPermissions as can,
45
+ import {
46
+ hasRequiredPermissions as can,
44
47
  missingRequiredPermissions as cannot,
45
- userPermissionsFromHostDetails } from '../../hostDetailsHelpers';
48
+ userPermissionsFromHostDetails,
49
+ hostIsImageMode,
50
+ } from '../../hostDetailsHelpers';
46
51
  import SortableColumnHeaders from '../../../../Table/components/SortableColumnHeaders';
47
52
  import { useRexJobPolling } from '../RemoteExecutionHooks';
48
53
  import { runSubmanRepos } from '../../Cards/ContentViewDetailsCard/HostContentViewActions';
54
+ import ImageModeHostAlert from '../../../Hosts/ImageModeHostAlert';
49
55
 
50
56
  const invokeRexJobs = ['create_job_invocations'];
51
57
  const createBookmarks = ['create_bookmarks'];
@@ -74,7 +80,7 @@ const UpdateVersionsSelect = ({
74
80
  variant={SelectVariant.single}
75
81
  aria-label="upgradable-version-select"
76
82
  ouiaId="upgradable-version-select"
77
- onToggle={isOpen => toggleUpgradableVersionSelect(isOpen, rowIndex)}
83
+ onToggle={(_event, isOpen) => toggleUpgradableVersionSelect(isOpen, rowIndex)}
78
84
  onSelect={(event, selected) => {
79
85
  onUpgradableVersionSelect(event, selected, rowIndex, packageName);
80
86
  }}
@@ -475,6 +481,7 @@ export const PackagesTab = () => {
475
481
  return (
476
482
  <div>
477
483
  <div id="packages-tab">
484
+ {hostIsImageMode({ hostDetails }) && <ImageModeHostAlert />}
478
485
  <TableWrapper
479
486
  {...{
480
487
  metadata,
@@ -515,13 +522,13 @@ export const PackagesTab = () => {
515
522
  >
516
523
  <Thead>
517
524
  <Tr ouiaId="row-header">
518
- <Th key="select-all" />
525
+ <Th key="select-all" aria-label="Select all table header" />
519
526
  <SortableColumnHeaders
520
527
  columnHeaders={columnHeaders}
521
528
  pfSortParams={pfSortParams}
522
529
  columnsToSortParams={COLUMNS_TO_SORT_PARAMS}
523
530
  />
524
- <Th />
531
+ <Th aria-label="action menu header" />
525
532
  </Tr>
526
533
  </Thead>
527
534
  <Tbody>
@@ -550,15 +557,19 @@ export const PackagesTab = () => {
550
557
  isDisabled: actionInProgress,
551
558
  },
552
559
  {
553
- title: __('Upgrade via customized remote execution'),
554
- component: 'a',
555
- href: katelloPackageUpdateUrl({
556
- hostname,
557
- packageName: selectedPackageUpgradeVersion({
558
- packageName,
559
- upgradableVersions,
560
- }),
561
- }),
560
+ title: (
561
+ <a
562
+ href={katelloPackageUpdateUrl({
563
+ hostname,
564
+ packageName: selectedPackageUpgradeVersion({
565
+ packageName,
566
+ upgradableVersions,
567
+ }),
568
+ })}
569
+ >
570
+ {__('Upgrade via customized remote execution')}
571
+ </a>
572
+ ),
562
573
  },
563
574
  );
564
575
  }
@@ -568,7 +579,7 @@ export const PackagesTab = () => {
568
579
  {showActions ? (
569
580
  <Td
570
581
  select={{
571
- disable: actionInProgress,
582
+ isDisabled: actionInProgress,
572
583
  isSelected: isSelected(id),
573
584
  onSelect: (event, selected) => selectOne(selected, id, pkg),
574
585
  rowIndex,
@@ -602,7 +613,10 @@ export const PackagesTab = () => {
602
613
  actions={{
603
614
  items: rowActions,
604
615
  }}
616
+ ><ActionsColumn
617
+ actions={rowActions}
605
618
  />
619
+ </Td>
606
620
  ) : null}
607
621
  </Tr>
608
622
  );
@@ -6,7 +6,7 @@
6
6
  margin: 16px 24px;
7
7
  }
8
8
 
9
- #style-select-id .pf-c-select button.pf-c-select__toggle {
9
+ #style-select-id .pf-v5-c-select button.pf-v5-c-select__toggle {
10
10
  font-size: 1em;
11
11
  margin-left: -0.5rem;
12
12
  }
@@ -22,9 +22,6 @@ import {
22
22
  ActionListItem,
23
23
  Alert,
24
24
  AlertActionCloseButton,
25
- Dropdown,
26
- DropdownItem,
27
- KebabToggle,
28
25
  Label,
29
26
  Skeleton,
30
27
  Split,
@@ -33,6 +30,11 @@ import {
33
30
  ToggleGroupItem,
34
31
  Tooltip,
35
32
  } from '@patternfly/react-core';
33
+ import {
34
+ Dropdown,
35
+ DropdownItem,
36
+ KebabToggle,
37
+ } from '@patternfly/react-core/deprecated';
36
38
  import { FlagIcon } from '@patternfly/react-icons';
37
39
  import {
38
40
  TableVariant,
@@ -593,13 +595,13 @@ const RepositorySetsTab = () => {
593
595
  >
594
596
  <Thead>
595
597
  <Tr ouiaId="header-tr">
596
- <Th key="select-all" />
598
+ <Th key="select-all" aria-label="Select all table header" />
597
599
  <SortableColumnHeaders
598
600
  columnHeaders={columnHeaders}
599
601
  pfSortParams={pfSortParams}
600
602
  columnsToSortParams={COLUMNS_TO_SORT_PARAMS}
601
603
  />
602
- <Th key="action-menu" />
604
+ <Th key="action-menu" aria-label="action menu table header" />
603
605
  </Tr>
604
606
  </Thead>
605
607
  <Tbody>
@@ -622,7 +624,7 @@ const RepositorySetsTab = () => {
622
624
  <Tr key={id} ouiaId={`tr-${rowIndex}`}>
623
625
  {canDoContentOverrides ? (
624
626
  <Td select={{
625
- disable: !isSelectable(id),
627
+ isDisabled: !isSelectable(id),
626
628
  isSelected: isSelected(id),
627
629
  onSelect: (event, selected) => selectOne(selected, id),
628
630
  rowIndex,
@@ -6,15 +6,17 @@ import {
6
6
  FlexItem,
7
7
  Modal,
8
8
  ModalVariant,
9
- Dropdown,
10
- DropdownItem,
11
- DropdownToggle,
12
9
  Text,
13
10
  TextContent,
14
11
  TextList,
15
12
  TextListItem,
16
13
  Alert,
17
14
  } from '@patternfly/react-core';
15
+ import {
16
+ Dropdown,
17
+ DropdownItem,
18
+ DropdownToggle,
19
+ } from '@patternfly/react-core/deprecated';
18
20
  import { CaretDownIcon, ArrowRightIcon } from '@patternfly/react-icons';
19
21
  import { translate as __ } from 'foremanReact/common/I18n';
20
22
  import { useSelector } from 'react-redux';
@@ -1,4 +1,4 @@
1
- .pf-c-content {
1
+ .pf-v5-c-content {
2
2
  ul {
3
3
  margin-top: 1rem;
4
4
  li svg {
@@ -4,12 +4,11 @@ import {
4
4
  EmptyState,
5
5
  EmptyStateIcon,
6
6
  EmptyStateBody,
7
- Title,
8
7
  EmptyStateVariant,
9
8
  Button,
10
9
  Flex,
11
10
  FlexItem,
12
- Spinner,
11
+ Spinner, EmptyStateHeader, EmptyStateFooter,
13
12
  } from '@patternfly/react-core';
14
13
  import { WrenchIcon } from '@patternfly/react-icons';
15
14
  import { translate as __ } from 'foremanReact/common/I18n';
@@ -67,14 +66,12 @@ const TracesEnabler = ({ hostname, tracerRpmAvailable }) => {
67
66
  } = useRexJobPolling(initialAction, successAction);
68
67
 
69
68
  return (
70
- <EmptyState variant={EmptyStateVariant.small}>
69
+ <EmptyState variant={EmptyStateVariant.sm}>
71
70
  {pollingStarted ?
72
71
  <Spinner /> :
73
72
  <EmptyStateIcon icon={WrenchIcon} />
74
73
  }
75
- <Title ouiaId="enable-tracer-title" headingLevel="h2" size="lg">
76
- {pollingStarted ? enablingTitle : title}
77
- </Title>
74
+ <EmptyStateHeader titleText={<>{pollingStarted ? enablingTitle : title}</>} headingLevel="h2" />
78
75
  <EmptyStateBody>
79
76
  <Flex direction={{ default: 'column' }}>
80
77
  <FlexItem>{body}</FlexItem>
@@ -90,13 +87,15 @@ const TracesEnabler = ({ hostname, tracerRpmAvailable }) => {
90
87
  </FlexItem>
91
88
  </Flex>
92
89
  </EmptyStateBody>
93
- <EnableTracerModal
94
- key={hostname}
95
- isOpen={enableTracerModalOpen}
96
- setIsOpen={setEnableTracerModalOpen}
97
- triggerJobStart={triggerJobStart}
98
- tracerRpmAvailable={tracerRpmAvailable}
99
- />
90
+ <EmptyStateFooter>
91
+ <EnableTracerModal
92
+ key={hostname}
93
+ isOpen={enableTracerModalOpen}
94
+ setIsOpen={setEnableTracerModalOpen}
95
+ triggerJobStart={triggerJobStart}
96
+ tracerRpmAvailable={tracerRpmAvailable}
97
+ />
98
+ </EmptyStateFooter>
100
99
  </EmptyState>
101
100
  );
102
101
  };
@@ -1,9 +1,19 @@
1
1
  import React, { useState, useCallback } from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
3
  import {
4
- Skeleton, Split, SplitItem, ActionList, ActionListItem, Dropdown,
5
- DropdownItem, DropdownToggle, DropdownToggleAction, Alert,
4
+ Skeleton,
5
+ Split,
6
+ SplitItem,
7
+ ActionList,
8
+ ActionListItem,
9
+ Alert,
6
10
  } from '@patternfly/react-core';
11
+ import {
12
+ Dropdown,
13
+ DropdownItem,
14
+ DropdownToggle,
15
+ DropdownToggleAction,
16
+ } from '@patternfly/react-core/deprecated';
7
17
  import { translate as __ } from 'foremanReact/common/I18n';
8
18
  import { TableVariant, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
9
19
  import { ExclamationTriangleIcon } from '@patternfly/react-icons';
@@ -233,13 +243,13 @@ const TracesTab = () => {
233
243
  >
234
244
  <Thead>
235
245
  <Tr ouiaId="row-header">
236
- <Th key="select_checkbox" />
246
+ <Th key="select_checkbox" aria-label="select table header" />
237
247
  <SortableColumnHeaders
238
248
  columnHeaders={columnHeaders}
239
249
  pfSortParams={pfSortParams}
240
250
  columnsToSortParams={COLUMNS_TO_SORT_PARAMS}
241
251
  />
242
- <Th key="action_menu" />
252
+ <Th key="action_menu" aria-label="action menu table header" />
243
253
  </Tr>
244
254
  </Thead>
245
255
  <Tbody>
@@ -257,7 +267,7 @@ const TracesTab = () => {
257
267
  let rowDropdownItems = [
258
268
  { title: 'Restart via remote execution', onClick: () => onRestartApp(id), isDisabled: actionInProgress },
259
269
  {
260
- component: 'a', href: resolveTraceUrl({ hostname, search: tracesSearchQuery(id) }), title: 'Restart via customized remote execution',
270
+ title: <a href={resolveTraceUrl({ hostname, search: tracesSearchQuery(id) })}>{__('Restart via customized remote execution')}</a>,
261
271
  },
262
272
  ];
263
273
  if (resolveDisabled) {
@@ -270,7 +280,7 @@ const TracesTab = () => {
270
280
  {showActions ? (
271
281
  <Td
272
282
  select={{
273
- disable: actionInProgress || resolveDisabled,
283
+ isDisabled: actionInProgress || resolveDisabled,
274
284
  props: {
275
285
  'aria-label': `check-${application}`,
276
286
  },
@@ -77,7 +77,8 @@ test('Can call API for installable deb packages and show on screen on page load'
77
77
  await patientlyWaitFor(() => expect(getAllByText(firstPackages.name)[0]).toBeInTheDocument());
78
78
  // Assert request was made and completed, see helper function
79
79
  assertNockRequest(autocompleteScope);
80
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
80
+ assertNockRequest(scope);
81
+ done(); // Pass jest callback to confirm test is done
81
82
  });
82
83
 
83
84
  test('Can handle no installable deb packages being present', async (done) => {
@@ -109,7 +110,8 @@ test('Can handle no installable deb packages being present', async (done) => {
109
110
  await patientlyWaitFor(() => expect(queryByText('No packages available to install')).toBeInTheDocument());
110
111
  // Assert request was made and completed, see helper function
111
112
  assertNockRequest(autocompleteScope);
112
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
113
+ assertNockRequest(scope);
114
+ done(); // Pass jest callback to confirm test is done
113
115
  });
114
116
 
115
117
 
@@ -146,7 +148,8 @@ test('Can install a deb package via remote execution', async (done) => {
146
148
 
147
149
  expect(triggerPackageInstall).toHaveBeenCalled();
148
150
  assertNockRequest(autocompleteScope);
149
- assertNockRequest(scope, done);
151
+ assertNockRequest(scope);
152
+ done();
150
153
  });
151
154
 
152
155
  test('Can install a deb package via customized remote execution', async (done) => {
@@ -183,7 +186,8 @@ test('Can install a deb package via customized remote execution', async (done) =
183
186
  `/job_invocations/new?feature=${REX_FEATURES.KATELLO_PACKAGE_INSTALL}&search=name%20%5E%20(test-host)&inputs%5Bpackage%5D=duck,cheetah`,
184
187
  );
185
188
  assertNockRequest(autocompleteScope);
186
- assertNockRequest(scope, done);
189
+ assertNockRequest(scope);
190
+ done();
187
191
  });
188
192
 
189
193
  test('Uses packages_install_by_search_query template when in select all mode', async (done) => {
@@ -221,6 +225,7 @@ test('Uses packages_install_by_search_query template when in select all mode', a
221
225
  `/job_invocations/new?feature=${REX_FEATURES.KATELLO_PACKAGE_INSTALL_BY_SEARCH}&search=name%20%5E%20(test-host)&inputs%5BPackage%20search%20query%5D=id%20!%5E%20(32376)`,
222
226
  );
223
227
  assertNockRequest(autocompleteScope);
224
- assertNockRequest(scope, done);
228
+ assertNockRequest(scope);
229
+ done();
225
230
  });
226
231
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { renderWithRedux, patientlyWaitFor, fireEvent } from 'react-testing-lib-wrapper';
2
+ import { renderWithRedux, patientlyWaitFor, fireEvent, act } from 'react-testing-lib-wrapper';
3
3
  import * as hooks from 'foremanReact/components/PF4/TableIndexPage/Table/TableHooks';
4
4
  import { nockInstance, assertNockRequest, mockForemanAutocomplete } from '../../../../../test-utils/nockWrapper';
5
5
  import { foremanApi } from '../../../../../services/api';
@@ -75,7 +75,8 @@ test('Can call API for packages and show on screen on page load', async (done) =
75
75
  await patientlyWaitFor(() => expect(getAllByText(firstDeb.name)[0]).toBeInTheDocument());
76
76
  // Assert request was made and completed, see helper function
77
77
  assertNockRequest(autocompleteScope);
78
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
78
+ assertNockRequest(scope);
79
+ done(); // Pass jest callback to confirm test is done
79
80
  });
80
81
 
81
82
  test('Can handle no packages being present', async (done) => {
@@ -101,7 +102,8 @@ test('Can handle no packages being present', async (done) => {
101
102
  await patientlyWaitFor(() => expect(queryByText('This host does not have any packages.')).toBeInTheDocument());
102
103
  // Assert request was made and completed, see helper function
103
104
  assertNockRequest(autocompleteScope);
104
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
105
+ assertNockRequest(scope);
106
+ done(); // Pass jest callback to confirm test is done
105
107
  });
106
108
 
107
109
  test('Can filter by package status', async (done) => {
@@ -132,7 +134,9 @@ test('Can filter by package status', async (done) => {
132
134
 
133
135
  const statusDropdown = queryByText('Status', { ignore: 'th' });
134
136
  expect(statusDropdown).toBeInTheDocument();
135
- fireEvent.click(statusDropdown);
137
+ await act(async () => {
138
+ fireEvent.click(statusDropdown);
139
+ });
136
140
  const upgradable = getByRole('option', { name: 'select Upgradable' });
137
141
  fireEvent.click(upgradable);
138
142
  await patientlyWaitFor(() => {
@@ -143,7 +147,8 @@ test('Can filter by package status', async (done) => {
143
147
 
144
148
  assertNockRequest(autocompleteScope);
145
149
  assertNockRequest(scope);
146
- assertNockRequest(scope2, done); // Pass jest callback to confirm test is done
150
+ assertNockRequest(scope2);
151
+ done(); // Pass jest callback to confirm test is done
147
152
  });
148
153
 
149
154
  test('Can upgrade a package via remote execution', async (done) => {
@@ -182,25 +187,32 @@ test('Can upgrade a package via remote execution', async (done) => {
182
187
 
183
188
  const statusDropdown = getByText('Status', { ignore: 'th' });
184
189
  expect(statusDropdown).toBeInTheDocument();
185
- fireEvent.click(statusDropdown);
190
+ await act(async () => {
191
+ fireEvent.click(statusDropdown);
192
+ });
186
193
  const upgradable = getByRole('option', { name: 'select Upgradable' });
187
194
  fireEvent.click(upgradable);
188
195
  await patientlyWaitFor(() => {
189
196
  expect(getByText('libmagic1')).toBeInTheDocument();
190
197
  expect(getByText('libapt-pkg6.0')).toBeInTheDocument();
191
198
  });
192
-
193
- const kebabDropdown = getAllByLabelText('Actions');
194
- kebabDropdown[0].click();
199
+ const kebabDropdown = getAllByLabelText('Kebab toggle');
200
+ await act(async () => {
201
+ kebabDropdown[0].click();
202
+ });
195
203
 
196
204
  const rexAction = getByText('Upgrade via remote execution');
197
205
  await patientlyWaitFor(() => expect(rexAction).toBeInTheDocument());
198
- fireEvent.click(rexAction);
206
+
207
+ await act(async () => {
208
+ fireEvent.click(rexAction);
209
+ });
199
210
 
200
211
  assertNockRequest(autocompleteScope);
201
212
  assertNockRequest(scope);
202
213
  assertNockRequest(statusScope);
203
- assertNockRequest(upgradeScope, done);
214
+ assertNockRequest(upgradeScope);
215
+ done();
204
216
  });
205
217
 
206
218
  test('Can upgrade a package via customized remote execution', async (done) => {
@@ -227,7 +239,9 @@ test('Can upgrade a package via customized remote execution', async (done) => {
227
239
 
228
240
  const statusDropdown = getByText('Status', { ignore: 'th' });
229
241
  expect(statusDropdown).toBeInTheDocument();
230
- fireEvent.click(statusDropdown);
242
+ await act(async () => {
243
+ fireEvent.click(statusDropdown);
244
+ });
231
245
  const upgradable = getByRole('option', { name: 'select Upgradable' });
232
246
  fireEvent.click(upgradable);
233
247
  await patientlyWaitFor(() => {
@@ -235,8 +249,10 @@ test('Can upgrade a package via customized remote execution', async (done) => {
235
249
  expect(getByText('libmagic1')).toBeInTheDocument();
236
250
  });
237
251
 
238
- const kebabDropdown = getAllByLabelText('Actions');
239
- kebabDropdown[0].click();
252
+ const kebabDropdown = getAllByLabelText('Kebab toggle');
253
+ await act(async () => {
254
+ kebabDropdown[0].click();
255
+ });
240
256
 
241
257
  const rexAction = getByText('Upgrade via customized remote execution');
242
258
  const feature = REX_FEATURES.KATELLO_PACKAGE_UPDATE;
@@ -248,11 +264,14 @@ test('Can upgrade a package via customized remote execution', async (done) => {
248
264
  `/job_invocations/new?feature=${feature}&search=name%20%5E%20(${hostname})&inputs%5Bpackage%5D=${packageName}`,
249
265
  );
250
266
 
251
- fireEvent.click(rexAction);
267
+ await act(async () => {
268
+ fireEvent.click(rexAction);
269
+ });
252
270
 
253
271
  assertNockRequest(autocompleteScope);
254
272
  assertNockRequest(scope);
255
- assertNockRequest(statusScope, done);
273
+ assertNockRequest(statusScope);
274
+ done();
256
275
  });
257
276
 
258
277
  test('Can bulk upgrade via remote execution', async (done) => {
@@ -295,11 +314,14 @@ test('Can bulk upgrade via remote execution', async (done) => {
295
314
 
296
315
  const rexAction = getByLabelText('bulk_upgrade_rex');
297
316
  expect(rexAction).toBeInTheDocument();
298
- fireEvent.click(rexAction);
317
+ await act(async () => {
318
+ fireEvent.click(rexAction);
319
+ });
299
320
 
300
321
  assertNockRequest(autocompleteScope);
301
322
  assertNockRequest(scope);
302
- assertNockRequest(upgradeScope, done);
323
+ assertNockRequest(upgradeScope);
324
+ done();
303
325
  });
304
326
 
305
327
  test('Can bulk upgrade via customized remote execution', async (done) => {
@@ -338,7 +360,8 @@ test('Can bulk upgrade via customized remote execution', async (done) => {
338
360
  expect(rexAction).toHaveAttribute('href', job);
339
361
 
340
362
  assertNockRequest(autocompleteScope);
341
- assertNockRequest(scope, done);
363
+ assertNockRequest(scope);
364
+ done();
342
365
  });
343
366
 
344
367
  test('Upgrade is disabled when there are non-upgradable packages selected', async (done) => {
@@ -368,7 +391,8 @@ test('Upgrade is disabled when there are non-upgradable packages selected', asyn
368
391
  expect(upgradeDropdown).toHaveAttribute('disabled');
369
392
 
370
393
  assertNockRequest(autocompleteScope);
371
- assertNockRequest(scope, done);
394
+ assertNockRequest(scope);
395
+ done();
372
396
  });
373
397
 
374
398
  test('Remove is disabled when in select all mode', async (done) => {
@@ -394,7 +418,8 @@ test('Remove is disabled when in select all mode', async (done) => {
394
418
  expect(removeButton).toHaveAttribute('aria-disabled', 'true');
395
419
 
396
420
  assertNockRequest(autocompleteScope);
397
- assertNockRequest(scope, done);
421
+ assertNockRequest(scope);
422
+ done();
398
423
  });
399
424
 
400
425
  test('Sets initial search query from url params', async (done) => {
@@ -415,6 +440,7 @@ test('Sets initial search query from url params', async (done) => {
415
440
  expect(queryByText(secondDeb.name)).not.toBeInTheDocument();
416
441
 
417
442
  assertNockRequest(autocompleteScope);
418
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
443
+ assertNockRequest(scope);
444
+ done(); // Pass jest callback to confirm test is done
419
445
  });
420
446