katello 4.16.3 → 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 (509) 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 +77 -263
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +77 -263
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +77 -263
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +77 -263
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +77 -263
  8. data/app/assets/javascripts/katello/locale/de/katello.js +87 -273
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +77 -263
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +77 -263
  11. data/app/assets/javascripts/katello/locale/el/katello.js +77 -263
  12. data/app/assets/javascripts/katello/locale/en/katello.js +77 -263
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +77 -263
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +77 -263
  15. data/app/assets/javascripts/katello/locale/es/katello.js +242 -428
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +77 -263
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +900 -1086
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +77 -263
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +77 -263
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +77 -263
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +77 -263
  22. data/app/assets/javascripts/katello/locale/id/katello.js +77 -263
  23. data/app/assets/javascripts/katello/locale/it/katello.js +78 -264
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +628 -814
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +474 -660
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +77 -263
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +2129 -2314
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +77 -263
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +77 -263
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +77 -263
  31. data/app/assets/javascripts/katello/locale/or/katello.js +77 -263
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +77 -263
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +77 -263
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +77 -263
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +77 -263
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +255 -441
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +77 -263
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +77 -263
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +78 -264
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +77 -263
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +77 -263
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +77 -263
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +77 -263
  44. data/app/assets/javascripts/katello/locale/te/katello.js +77 -263
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +77 -263
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +77 -263
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +77 -263
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +77 -263
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +632 -818
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +78 -264
  51. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -5
  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/20240924161240_katello_recreate_evr_constructs.rb +0 -20
  112. data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
  113. data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
  114. data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
  115. data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
  116. data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +0 -6
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +0 -6
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +0 -6
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +0 -6
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +0 -6
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +0 -6
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +0 -6
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +0 -6
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +0 -6
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +0 -6
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +0 -6
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +0 -6
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +0 -6
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +0 -6
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +0 -6
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +0 -6
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +0 -6
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +0 -6
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +0 -6
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +0 -6
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +0 -6
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +0 -6
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +0 -6
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +0 -6
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +0 -6
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +0 -6
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +0 -6
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +0 -6
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +0 -6
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +0 -6
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +0 -6
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +0 -6
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +0 -6
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +0 -6
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +0 -6
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +0 -6
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +0 -6
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +0 -6
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +0 -6
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +0 -6
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +0 -6
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +0 -6
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +0 -6
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +0 -6
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +0 -6
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +0 -6
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
  164. data/lib/katello/engine.rb +9 -1
  165. data/lib/katello/repository_types/python.rb +1 -1
  166. data/lib/katello/tasks/repository.rake +1 -1
  167. data/lib/katello/version.rb +1 -1
  168. data/locale/action_names.rb +3 -0
  169. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  170. data/locale/bn/katello.po +77 -263
  171. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  172. data/locale/bn_IN/katello.po +77 -263
  173. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  174. data/locale/ca/katello.po +77 -263
  175. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  176. data/locale/cs/katello.po +77 -263
  177. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  178. data/locale/cs_CZ/katello.po +77 -263
  179. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/de/katello.po +91 -277
  181. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  182. data/locale/de_AT/katello.po +77 -263
  183. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  184. data/locale/de_DE/katello.po +77 -263
  185. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/el/katello.po +77 -263
  187. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  188. data/locale/en/katello.po +77 -263
  189. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  190. data/locale/en_GB/katello.po +77 -263
  191. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/en_US/katello.po +77 -263
  193. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  194. data/locale/es/katello.po +245 -432
  195. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  196. data/locale/et_EE/katello.po +77 -263
  197. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/fr/katello.po +906 -1092
  199. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/gl/katello.po +77 -263
  201. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  202. data/locale/gu/katello.po +77 -263
  203. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/he_IL/katello.po +77 -263
  205. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/hi/katello.po +77 -263
  207. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  208. data/locale/id/katello.po +77 -263
  209. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/it/katello.po +78 -264
  211. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/ja/katello.po +634 -822
  213. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  214. data/locale/ka/katello.po +474 -662
  215. data/locale/katello.pot +1194 -1472
  216. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  217. data/locale/kn/katello.po +77 -263
  218. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/ko/katello.po +2125 -2324
  220. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  221. data/locale/ml_IN/katello.po +77 -263
  222. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  223. data/locale/mr/katello.po +77 -263
  224. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/nl_NL/katello.po +77 -263
  226. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  227. data/locale/or/katello.po +77 -263
  228. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/pa/katello.po +77 -263
  230. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/pl/katello.po +77 -263
  232. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  233. data/locale/pl_PL/katello.po +77 -263
  234. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  235. data/locale/pt/katello.po +77 -263
  236. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/pt_BR/katello.po +258 -445
  238. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/ro/katello.po +77 -263
  240. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/ro_RO/katello.po +77 -263
  242. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  243. data/locale/ru/katello.po +78 -264
  244. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  245. data/locale/sl/katello.po +77 -263
  246. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/sv_SE/katello.po +77 -263
  248. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/ta/katello.po +77 -263
  250. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  251. data/locale/ta_IN/katello.po +77 -263
  252. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/te/katello.po +77 -263
  254. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  255. data/locale/tr/katello.po +77 -263
  256. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/vi/katello.po +77 -263
  258. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/vi_VN/katello.po +77 -263
  260. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/zh/katello.po +77 -263
  262. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  263. data/locale/zh_CN/katello.po +632 -824
  264. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/zh_TW/katello.po +78 -264
  266. data/webpack/ForemanColumnExtensions/index.js +12 -4
  267. data/webpack/components/ActivationKeysSearch/index.js +6 -7
  268. data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
  269. data/webpack/components/Bookmark/Bookmark.scss +3 -3
  270. data/webpack/components/Bookmark/index.js +7 -2
  271. data/webpack/components/EditableSwitch.js +1 -1
  272. data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
  273. data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
  274. data/webpack/components/Errata/index.js +1 -24
  275. data/webpack/components/Loading.js +10 -6
  276. data/webpack/components/Packages/index.js +2 -1
  277. data/webpack/components/SelectAllCheckbox/index.js +7 -3
  278. data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
  279. data/webpack/components/Table/EmptyStateMessage.js +12 -14
  280. data/webpack/components/Table/MainTable.js +8 -7
  281. data/webpack/components/Table/MainTable.scss +4 -4
  282. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
  283. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
  284. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
  285. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
  286. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
  287. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
  288. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
  289. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
  290. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
  291. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  292. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
  293. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
  294. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
  295. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
  296. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
  297. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
  298. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
  299. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
  300. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
  301. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
  302. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
  303. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
  304. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
  305. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
  306. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
  307. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
  308. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
  309. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
  310. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
  311. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
  312. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
  313. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
  314. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
  315. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
  316. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
  317. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
  318. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
  319. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
  320. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
  321. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
  322. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
  323. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
  324. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
  325. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
  326. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
  327. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
  328. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
  329. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
  330. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
  331. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
  332. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
  333. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
  334. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
  335. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
  336. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
  337. data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
  338. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
  339. data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
  340. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
  341. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
  342. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
  343. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
  344. data/webpack/containers/Application/overrides.scss +7 -7
  345. data/webpack/ouia_id_check.js +15 -11
  346. data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
  347. data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
  348. data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
  349. data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
  350. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
  351. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
  352. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
  353. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
  354. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
  355. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
  356. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
  357. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
  358. data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
  359. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
  360. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
  361. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
  362. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
  363. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
  364. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
  365. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
  366. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
  367. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
  368. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
  369. data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
  370. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
  371. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
  372. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
  373. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
  374. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
  375. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  376. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
  377. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
  378. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
  379. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
  380. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
  381. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
  382. data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
  383. data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
  384. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
  385. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
  386. data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
  387. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
  388. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
  389. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
  390. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
  391. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
  392. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
  393. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
  394. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
  395. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
  396. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
  397. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
  398. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
  399. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
  400. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
  401. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
  402. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
  403. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
  404. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
  405. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
  406. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
  407. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
  408. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
  409. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
  410. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
  411. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
  412. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
  413. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
  414. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
  415. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
  416. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
  417. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
  418. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
  419. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
  420. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
  421. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
  422. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
  423. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
  424. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
  425. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
  426. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
  427. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
  428. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
  429. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
  430. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
  431. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
  432. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
  433. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
  434. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  435. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
  436. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
  437. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
  438. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
  439. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
  440. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
  441. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
  442. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
  443. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
  444. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
  445. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
  446. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
  447. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
  448. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
  449. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
  450. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
  451. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
  452. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
  453. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
  454. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
  455. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
  456. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
  457. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
  458. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  459. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
  460. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
  461. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
  462. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
  463. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
  464. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
  465. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
  466. data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
  467. data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
  468. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
  469. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
  470. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
  471. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
  472. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
  473. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
  474. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
  475. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
  476. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
  477. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
  478. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
  479. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
  480. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
  481. data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
  482. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
  483. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
  484. data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
  485. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
  486. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
  487. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
  488. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
  489. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
  490. data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
  491. data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
  492. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
  493. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
  494. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  495. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
  496. data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
  497. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
  498. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
  499. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
  500. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
  501. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
  502. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
  503. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
  504. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
  505. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
  506. metadata +72 -53
  507. data/app/models/katello/yum_metadata_file.rb +0 -22
  508. data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
  509. data/db/migrate/20250714190050_add_missing_rpms_evr_index.rb +0 -14
@@ -1,9 +1,9 @@
1
1
  .determinate-needs-publish {
2
- color: var(--pf-global--primary-color--100);
2
+ color: var(--pf-v5-global--primary-color--100);
3
3
  margin-left: 9px;
4
4
  }
5
5
 
6
6
  .indeterminate-needs-publish {
7
- color: var(--pf-global--disabled-color--200);
7
+ color: var(--pf-v5-global--disabled-color--200);
8
8
  margin-left: 9px;
9
9
  }
@@ -2,19 +2,32 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  align-content: center;
5
+ gap: 6px;
5
6
 
6
7
  .composite-component-count {
7
- min-width: 10px;
8
+ min-width: 12px;
8
9
  text-align: center;
9
10
  }
10
11
  }
11
12
 
12
13
  .svg-icon-composite {
13
- margin: 0 6px;
14
+ margin: 0 9px;
14
15
  display: block;
15
16
  }
16
17
 
17
18
  .svg-icon-component {
18
19
  margin: 0 9px;
19
20
  display: block;
20
- }
21
+ }
22
+
23
+ .svg-icon-rolling {
24
+ margin: 0 9px;
25
+ display: block;
26
+ }
27
+
28
+ .svg-centered-container:has(.svg-icon-component),
29
+ .svg-centered-container:has(.svg-icon-rolling) {
30
+ > span:last-child {
31
+ margin-left: 4px;
32
+ }
33
+ }
@@ -6,7 +6,7 @@ import RelatedCompositeContentViewsModal from './RelatedCompositeContentViewsMod
6
6
  import RelatedContentViewComponentsModal from './RelatedContentViewComponentsModal';
7
7
 
8
8
  const DetailsExpansion = ({
9
- cvId, cvName, cvComposite, activationKeys, hosts, relatedCVCount, relatedCompositeCVs,
9
+ cvId, cvName, cvComposite, cvRolling, activationKeys, hosts, relatedCVCount, relatedCompositeCVs,
10
10
  }) => {
11
11
  const activationKeyCount = activationKeys.length;
12
12
  const hostCount = hosts.length;
@@ -15,6 +15,9 @@ const DetailsExpansion = ({
15
15
  const hostsPageUrl = `${baseHostsPageUrl}?search=${encodeURIComponent(`content_view_id=${cvId}`)}`;
16
16
 
17
17
  const relatedContentViewModal = () => {
18
+ if (cvRolling) {
19
+ return <></>;
20
+ }
18
21
  if (cvComposite) {
19
22
  return (
20
23
  <>
@@ -53,6 +56,7 @@ DetailsExpansion.propTypes = {
53
56
  hosts: PropTypes.arrayOf(PropTypes.shape({})),
54
57
  cvName: PropTypes.string,
55
58
  cvComposite: PropTypes.bool,
59
+ cvRolling: PropTypes.bool,
56
60
  relatedCompositeCVs: PropTypes.arrayOf(PropTypes.shape({})),
57
61
  relatedCVCount: PropTypes.number,
58
62
  };
@@ -62,6 +66,7 @@ DetailsExpansion.defaultProps = {
62
66
  hosts: [],
63
67
  cvName: '',
64
68
  cvComposite: false,
69
+ cvRolling: false,
65
70
  relatedCompositeCVs: [],
66
71
  relatedCVCount: 0,
67
72
 
@@ -3,7 +3,7 @@ import { Link } from 'react-router-dom';
3
3
  import { translate as __ } from 'foremanReact/common/I18n';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Modal, ModalVariant, Button, Flex, FlexItem } from '@patternfly/react-core';
6
- import { TableComposable, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
6
+ import { Table /* data-codemods */, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
7
7
  import { EnterpriseIcon } from '@patternfly/react-icons';
8
8
  import { urlBuilder } from '../../../__mocks__/foremanReact/common/urlHelpers';
9
9
 
@@ -44,7 +44,7 @@ const RelatedCompositeContentViewsModal = ({
44
44
  }}
45
45
  appendTo={document.body}
46
46
  >
47
- <TableComposable
47
+ <Table
48
48
  aria-label={`${cvId}_table`}
49
49
  ouiaId={`${cvId}_table`}
50
50
  variant="compact"
@@ -65,7 +65,7 @@ const RelatedCompositeContentViewsModal = ({
65
65
  </Tr>
66
66
  ))}
67
67
  </Tbody>
68
- </TableComposable>
68
+ </Table>
69
69
  </Modal>
70
70
  </>
71
71
  );
@@ -37,7 +37,8 @@ test('Can call API and show Related Content Views Components Modal', async (done
37
37
  await patientlyWaitFor(() => expect(getByText('Related content views')).toBeInTheDocument());
38
38
 
39
39
  assertNockRequest(autocompleteScope);
40
- assertNockRequest(scope, done);
40
+ assertNockRequest(scope);
41
+ done();
41
42
  });
42
43
 
43
44
  test('Can call API and show Related Composite Content Views Modal', async () => {
@@ -8,12 +8,14 @@ import {
8
8
  Form,
9
9
  Grid,
10
10
  GridItem,
11
- Select,
12
- SelectOption,
13
- SelectVariant,
14
11
  TextContent,
15
12
  Text,
16
13
  } from '@patternfly/react-core';
14
+ import {
15
+ Select,
16
+ SelectOption,
17
+ SelectVariant,
18
+ } from '@patternfly/react-core/deprecated';
17
19
  import { translate as __ } from 'foremanReact/common/I18n';
18
20
  import PropTypes from 'prop-types';
19
21
  import { useAPI } from 'foremanReact/common/hooks/API/APIHooks';
@@ -97,14 +97,15 @@ const ContentSourceTemplate = ({ template, hostCount }) => {
97
97
  <CodeBlock actions={actions} className="cs_template_code margin-top-20">
98
98
  <CodeBlockCode>
99
99
  {__('Change content source')}
100
- <ExpandableSection isExpanded={isExpanded} isDetached>
100
+ <ExpandableSection contentId="code-block-expand-content" toggleId="code-block-expand-toggle" isExpanded={isExpanded} isDetached >
101
101
  {template}
102
102
  </ExpandableSection>
103
103
  </CodeBlockCode>
104
104
  <ExpandableSectionToggle
105
105
  isExpanded={isExpanded}
106
106
  onToggle={() => setIsExpanded(!isExpanded)}
107
- contentId="code-block-expand"
107
+ contentId="code-block-expand-content"
108
+ toggleId="code-block-expand-toggle"
108
109
  direction="up"
109
110
  >
110
111
  {isExpanded ? 'Show less' : 'Show more'}
@@ -16,7 +16,7 @@ const FormField = ({
16
16
  <FormSelect
17
17
  ouiaId={`${id}_select`}
18
18
  value={value}
19
- onChange={v => onChange(v)}
19
+ onChange={(_event, v) => onChange(v)}
20
20
  className="without_select2"
21
21
  isDisabled={isDisabled}
22
22
  id={`${id}_select`}
@@ -29,7 +29,7 @@ const HostsModal = ({
29
29
  <SearchInput
30
30
  placeholder={__('Search')}
31
31
  value={search}
32
- onChange={v => setSearch(v)}
32
+ onChange={(e, v) => setSearch(v)}
33
33
  onClear={() => setSearch('')}
34
34
  />
35
35
  <List isPlain isBordered className="margin-top-16">
@@ -9,7 +9,7 @@ const EnabledRepositoryContent = ({
9
9
  }) => (
10
10
  <Spinner loading={loading} inline>
11
11
  <OverlayTrigger
12
- overlay={<Tooltip id={disableTooltipId}>{canDisable ? __('Disable') : __('Cannot be disabled because it is part of a published content view')}</Tooltip>}
12
+ overlay={<Tooltip id={disableTooltipId}>{canDisable ? __('Disable') : __('Cannot be disabled because it is part of a content view')}</Tooltip>}
13
13
  placement="bottom"
14
14
  trigger={['hover', 'focus']}
15
15
  rootClose={false}
@@ -16,7 +16,7 @@ exports[`Enabled Repositories Content Component should render 1`] = `
16
16
  id="disable-1"
17
17
  placement="right"
18
18
  >
19
- Cannot be disabled because it is part of a published content view
19
+ Cannot be disabled because it is part of a content view
20
20
  </Tooltip>
21
21
  }
22
22
  placement="bottom"
@@ -33,7 +33,7 @@
33
33
  .foreman-search-bar {
34
34
  flex-grow: 1;
35
35
  margin-left: 0.7rem;
36
- .pf-c-search-input {
36
+ .pf-v5-c-search-input {
37
37
  width: 100%;
38
38
  }
39
39
  }
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useDispatch } from 'react-redux';
4
4
  import { translate as __ } from 'foremanReact/common/I18n';
5
- import { TableComposable, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
5
+ import { Table /* data-codemods */, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
6
6
  import { CheckCircleIcon, TimesCircleIcon } from '@patternfly/react-icons';
7
7
  import LongDateTime from 'foremanReact/components/common/dates/LongDateTime';
8
8
  import { urlBuilder } from 'foremanReact/common/urlHelpers';
@@ -32,14 +32,27 @@ const ExpandableCvDetails = ({
32
32
  },
33
33
  });
34
34
 
35
+ const anyRepoInEnv = (repositories) => {
36
+ if (repositories && Object.values(repositories)) {
37
+ return Object.values(repositories).some(repo => repo.metadata.env_id === envId);
38
+ }
39
+ return false;
40
+ };
41
+
42
+ const getSyncedToCapsuleStatus = (upToDate, versionId) => {
43
+ if (upToDate) return upToDate;
44
+ if (anyRepoInEnv(contentCounts?.content_view_versions?.[versionId]?.repositories)) return 'partial';
45
+ return false;
46
+ };
47
+
35
48
  return (
36
- <TableComposable
49
+ <Table
37
50
  aria-label="expandable-content-views"
38
51
  ouiaId="expandable-content-views"
39
52
  >
40
53
  <Thead>
41
54
  <Tr ouiaId="column-headers">
42
- <Th />
55
+ <Th aria-label="select header" />
43
56
  {columnHeaders.map(col => (
44
57
  <Th
45
58
  key={col}
@@ -51,10 +64,16 @@ const ExpandableCvDetails = ({
51
64
  </Thead>
52
65
  {contentViews.map((cv, rowIndex) => {
53
66
  const {
54
- id, name: cvName, composite, up_to_date: upToDate,
67
+ id, name: cvName, composite, rolling, up_to_date: upToDate,
55
68
  cvv_id: versionId, cvv_version: version, repositories,
56
69
  } = cv;
57
- const upToDateVal = upToDate ? <CheckCircleIcon style={{ color: 'green' }} /> : <TimesCircleIcon style={{ color: 'red' }} />;
70
+ let upToDateVal;
71
+ if (upToDate === true) {
72
+ upToDateVal = <CheckCircleIcon style={{ color: 'green' }} />;
73
+ } else {
74
+ upToDateVal = <TimesCircleIcon style={{ color: 'red' }} />;
75
+ }
76
+
58
77
  const isExpanded = tableRowIsExpanded(versionId);
59
78
  return (
60
79
  <Tbody key={`${id} + ${versionId}`}isExpanded={isExpanded}>
@@ -72,6 +91,7 @@ const ExpandableCvDetails = ({
72
91
  <Td>
73
92
  <ContentViewIcon
74
93
  composite={composite}
94
+ rolling={rolling}
75
95
  description={<a href={cv.default ? urlBuilder('products', '') : urlBuilder('content_views', '', id)}>{cvName}</a>}
76
96
  />
77
97
  </Td>
@@ -92,7 +112,7 @@ const ExpandableCvDetails = ({
92
112
  <ExpandedSmartProxyRepositories
93
113
  contentCounts={contentCounts?.content_view_versions?.[versionId]?.repositories}
94
114
  repositories={repositories}
95
- syncedToCapsule={upToDate}
115
+ syncedToCapsule={getSyncedToCapsuleStatus(upToDate, versionId)}
96
116
  envId={envId}
97
117
  />
98
118
  </Td>
@@ -101,7 +121,7 @@ const ExpandableCvDetails = ({
101
121
  );
102
122
  })}
103
123
 
104
- </TableComposable>
124
+ </Table>
105
125
 
106
126
  );
107
127
  };
@@ -40,7 +40,7 @@ const ExpandedSmartProxyRepositories = ({
40
40
  const dataListCellListsNotSynced = (repo) => {
41
41
  const cellList = [];
42
42
  /* eslint-disable max-len */
43
- cellList.push(<DataListCell key={`${repo.id}-name`}><span><a href={`/products/${repo.product_id}/repositories/${repo.library_id}/`}>{repo.name}</a></span></DataListCell>);
43
+ cellList.push(<DataListCell key={`${repo.id}-name`}><span><a href={`/products/${repo.product_id}/repositories/${repo.library_id || repo.id}/`}>{repo.name}</a></span></DataListCell>);
44
44
  cellList.push(<DataListCell key={`${repo.id}-type`}><RepoIcon type={repo.content_type} identifier={repo.id} /></DataListCell>);
45
45
  cellList.push(<DataListCell key={`${repo.id}-rpm`}><span><InactiveText text="N/A" /></span></DataListCell>);
46
46
  cellList.push(<DataListCell key={`${repo.id}-count`}><InactiveText text="N/A" /></DataListCell>);
@@ -84,6 +84,52 @@ const ExpandedSmartProxyRepositories = ({
84
84
  );
85
85
  };
86
86
 
87
+ const getUnsyncedRepositoriesDataListItems = () => {
88
+ const countedRepoLibraryIds = Object.values(envContentCounts).map(count =>
89
+ count.metadata.library_instance_id);
90
+ const repositoriesNotSynced = repositories.filter(repo =>
91
+ !countedRepoLibraryIds.includes(repo.library_id || repo.id));
92
+ if (repositoriesNotSynced?.length) {
93
+ return repositoriesNotSynced.map((repo, index) => {
94
+ if (!envContentCounts[repo.id]) {
95
+ return (
96
+ <DataListItem key={`${repo.id}-${index}`}>
97
+ <DataListItemRow>
98
+ <DataListItemCells
99
+ dataListCells={dataListCellListsNotSynced(repo)}
100
+ />
101
+ </DataListItemRow>
102
+ </DataListItem>
103
+ );
104
+ }
105
+ return <></>;
106
+ });
107
+ }
108
+ return <></>;
109
+ };
110
+
111
+ if (syncedToCapsule === 'partial') {
112
+ return (
113
+ <DataList aria-label="Expanded repository details" isCompact>
114
+ <DataListItem key="headers" >
115
+ <DataListItemRow>
116
+ <DataListItemCells dataListCells={[
117
+ <DataListCell key="primary content">
118
+ <b>{__('Repository')}</b>
119
+ </DataListCell>,
120
+ <DataListCell key="Type"><b>{__('Type')}</b></DataListCell>,
121
+ <DataListCell key="Package count"><b>{__('Packages')}</b></DataListCell>,
122
+ <DataListCell key="Additional content"><b>{__('Additional content')}</b></DataListCell>,
123
+ ]}
124
+ />
125
+ </DataListItemRow>
126
+ </DataListItem>
127
+ {getDataListItems()}
128
+ {getUnsyncedRepositoriesDataListItems()}
129
+ </DataList>
130
+ );
131
+ }
132
+
87
133
  if (syncedToCapsule) {
88
134
  return (
89
135
  <DataList aria-label="Expanded repository details" isCompact>
@@ -142,7 +188,10 @@ const ExpandedSmartProxyRepositories = ({
142
188
  ExpandedSmartProxyRepositories.propTypes = {
143
189
  contentCounts: PropTypes.shape({}),
144
190
  repositories: PropTypes.arrayOf(PropTypes.shape({})),
145
- syncedToCapsule: PropTypes.bool,
191
+ syncedToCapsule: PropTypes.oneOfType([
192
+ PropTypes.bool,
193
+ PropTypes.string, // The API can return true/false or 'partial' for partially synced CVs
194
+ ]),
146
195
  envId: PropTypes.oneOfType([
147
196
  PropTypes.number,
148
197
  PropTypes.string, // The API can sometimes return strings
@@ -75,7 +75,7 @@ const SmartProxyExpandableTable = ({ smartProxyId, organizationId }) => {
75
75
  >
76
76
  <Thead>
77
77
  <Tr ouiaId="cvTableHeaderRow">
78
- <Th key="expand-carat" />
78
+ <Th key="expand-carat" aria-label="expand table header" />
79
79
  {columnHeaders.map(col => (
80
80
  <Th
81
81
  key={col}
@@ -83,7 +83,7 @@ const SmartProxyExpandableTable = ({ smartProxyId, organizationId }) => {
83
83
  {col}
84
84
  </Th>
85
85
  ))}
86
- <Th key="action-menu" />
86
+ <Th key="action-menu" aria-label="action menu table header" />
87
87
  </Tr>
88
88
  </Thead>
89
89
  {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { renderWithRedux, patientlyWaitFor, within } from 'react-testing-lib-wrapper';
2
+ import { renderWithRedux, patientlyWaitFor, fireEvent, within, act } from 'react-testing-lib-wrapper';
3
3
 
4
4
  import { nockInstance, assertNockRequest } from '../../../test-utils/nockWrapper';
5
5
  import api from '../../../services/api';
@@ -47,7 +47,8 @@ test('Can display Smart proxy content table and expand env and cv details', asyn
47
47
  expect(getAllByText(/7 errata/i)[0]).toBeInTheDocument();
48
48
  expect(getAllByText(/14 Module streams/i)[0]).toBeInTheDocument();
49
49
  expect(getAllByText(/2 Package groups/i)[0]).toBeInTheDocument();
50
- assertNockRequest(detailsScope, done);
50
+ assertNockRequest(detailsScope);
51
+ done();
51
52
  });
52
53
 
53
54
  test('Handles empty content_counts and displays N/A for Packages and Additional content', async (done) => {
@@ -100,17 +101,19 @@ test('Can call content count refresh for environment', async (done) => {
100
101
  .reply(202);
101
102
 
102
103
  const {
103
- getByText, queryAllByLabelText,
104
+ getByText, getAllByLabelText,
104
105
  } = renderWithRedux(contentTable);
105
106
  await patientlyWaitFor(() => expect(getByText('Environment')).toBeInTheDocument());
106
- const envRowActions = queryAllByLabelText('Actions')[0];
107
- envRowActions.click();
107
+ expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'false');
108
+ fireEvent.click(getAllByLabelText('Kebab toggle')[0]);
109
+ expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'true');
108
110
  await patientlyWaitFor(() => expect(getByText('Refresh counts')).toBeInTheDocument());
109
111
  const refreshEnv = getByText('Refresh counts');
110
112
  refreshEnv.click();
111
113
 
112
114
  assertNockRequest(detailsScope);
113
115
  assertNockRequest(countsEnvRefreshScope, done);
116
+ act(done);
114
117
  });
115
118
 
116
119
  test('Can call content count refresh for content view', async (done) => {
@@ -128,7 +131,7 @@ test('Can call content count refresh for content view', async (done) => {
128
131
 
129
132
 
130
133
  const {
131
- getByText, getAllByText, getByLabelText, queryAllByLabelText,
134
+ getByText, getAllByText, getByLabelText, getAllByLabelText,
132
135
  } = renderWithRedux(contentTable);
133
136
  await patientlyWaitFor(() => expect(getByText('Environment')).toBeInTheDocument());
134
137
  const tdEnvExpand = getByLabelText('expand-env-1');
@@ -138,13 +141,15 @@ test('Can call content count refresh for content view', async (done) => {
138
141
  expect(getAllByText('Last published')[0]).toBeInTheDocument();
139
142
  expect(getAllByText('Repository')[0]).toBeInTheDocument();
140
143
  expect(getAllByText('Synced')[0]).toBeInTheDocument();
141
- const cvRowActions = queryAllByLabelText('Actions')[1];
142
- cvRowActions.click();
144
+ expect(getAllByLabelText('Kebab toggle')[1]).toHaveAttribute('aria-expanded', 'false');
145
+ fireEvent.click(getAllByLabelText('Kebab toggle')[1]);
146
+ expect(getAllByLabelText('Kebab toggle')[1]).toHaveAttribute('aria-expanded', 'true');
143
147
 
144
148
  await patientlyWaitFor(() => expect(getByText('Refresh counts')).toBeInTheDocument());
145
149
  const refreshCvCounts = getByText('Refresh counts');
146
150
  refreshCvCounts.click();
147
151
 
148
- assertNockRequest(detailsScope, done);
152
+ assertNockRequest(detailsScope);
149
153
  assertNockRequest(countsCVRefreshScope, done);
154
+ act(done);
150
155
  });
@@ -1,5 +1,5 @@
1
1
  #cdn-configuration {
2
- .pf-c-form__group.pf-m-action {
2
+ .pf-v5-c-form__group.pf-m-action {
3
3
  margin-top: 0px;
4
4
  }
5
5
  }
@@ -92,7 +92,7 @@ const CustomCdnTypeForm = ({
92
92
  aria-label="cdn-url"
93
93
  type="text"
94
94
  value={url || ''}
95
- onChange={value => setUrl(value)}
95
+ onChange={(_event, value) => setUrl(value)}
96
96
  isDisabled={updatingCdnConfiguration}
97
97
  />
98
98
  </FormGroup>
@@ -105,7 +105,7 @@ const CustomCdnTypeForm = ({
105
105
  aria-label="cdn-ssl-ca-content-credential"
106
106
  value={sslCaCredentialValue || ''}
107
107
  isDisabled={updatingCdnConfiguration}
108
- onChange={value => setSslCaCredentialId(value)}
108
+ onChange={(_event, value) => setSslCaCredentialId(value)}
109
109
  >
110
110
  <FormSelectOption label={__('N/A')} />
111
111
  {contentCredentials.map(cred =>
@@ -156,7 +156,7 @@ const NetworkSyncForm = ({
156
156
  aria-label="cdn-url"
157
157
  type="text"
158
158
  value={url || ''}
159
- onChange={value => setUrl(value)}
159
+ onChange={(_event, value) => setUrl(value)}
160
160
  isDisabled={updatingCdnConfiguration}
161
161
  />
162
162
  </FormGroup>
@@ -169,7 +169,7 @@ const NetworkSyncForm = ({
169
169
  aria-label="cdn-username"
170
170
  type="text"
171
171
  value={username || ''}
172
- onChange={value => setUsername(value)}
172
+ onChange={(_event, value) => setUsername(value)}
173
173
  isDisabled={updatingCdnConfiguration}
174
174
  />
175
175
  </FormGroup>
@@ -197,7 +197,7 @@ const NetworkSyncForm = ({
197
197
  type="text"
198
198
  value={upstreamOrganizationLabel || ''}
199
199
  isDisabled={updatingCdnConfiguration}
200
- onChange={setUpstreamOrganizationLabel}
200
+ onChange={(_event, val) => setUpstreamOrganizationLabel(val)}
201
201
  />
202
202
  </FormGroup>
203
203
  <FormGroup
@@ -209,7 +209,7 @@ const NetworkSyncForm = ({
209
209
  type="text"
210
210
  value={upstreamLifecycleEnvironmentLabel || ''}
211
211
  isDisabled={updatingCdnConfiguration}
212
- onChange={setUpstreamLifecycleEnvironmentLabel}
212
+ onChange={(_event, val) => setUpstreamLifecycleEnvironmentLabel(val)}
213
213
  />
214
214
  </FormGroup>
215
215
  <FormGroup
@@ -221,7 +221,7 @@ const NetworkSyncForm = ({
221
221
  type="text"
222
222
  value={upstreamContentViewLabel || ''}
223
223
  isDisabled={updatingCdnConfiguration}
224
- onChange={setUpstreamContentViewLabel}
224
+ onChange={(_event, val) => setUpstreamContentViewLabel(val)}
225
225
  />
226
226
  </FormGroup>
227
227
  <FormGroup
@@ -233,7 +233,7 @@ const NetworkSyncForm = ({
233
233
  aria-label="cdn-ssl-ca-content-credential"
234
234
  value={sslCaCredentialValue || ''}
235
235
  isDisabled={updatingCdnConfiguration}
236
- onChange={value => setSslCaCredentialId(value)}
236
+ onChange={(_event, value) => setSslCaCredentialId(value)}
237
237
  >
238
238
  <FormSelectOption label={__('Select one')} isDisabled isPlaceholder />
239
239
  {contentCredentials.map(cred =>
@@ -38,5 +38,6 @@ test('Can update to cdn type', async (done) => {
38
38
 
39
39
  const updateButton = getByLabelText(updateButtonName);
40
40
  fireEvent.click(updateButton);
41
- assertNockRequest(updateCdnConfigurationRequest, done);
41
+ assertNockRequest(updateCdnConfigurationRequest);
42
+ done();
42
43
  });
@@ -66,7 +66,8 @@ test('Can update the custom cdn server configuration', async (done) => {
66
66
  const updateButton = getByLabelText(updateButtonName);
67
67
  fireEvent.click(updateButton);
68
68
 
69
- assertNockRequest(updateCdnConfigurationRequest, done);
69
+ assertNockRequest(updateCdnConfigurationRequest);
70
+ done();
70
71
  });
71
72
 
72
73
  test('the form shall reflect the given cdnConfiguration', () => {
@@ -39,6 +39,7 @@ test('Can update to Airgapped type', async (done) => {
39
39
 
40
40
  const updateButton = getByLabelText(updateButtonName);
41
41
  fireEvent.click(updateButton);
42
- assertNockRequest(updateCdnConfigurationRequest, done);
42
+ assertNockRequest(updateCdnConfigurationRequest);
43
+ done();
43
44
  });
44
45
 
@@ -88,7 +88,8 @@ test('Can update the upstream server configuration', async (done) => {
88
88
  const updateButton = getByLabelText(updateButtonName);
89
89
  fireEvent.click(updateButton);
90
90
 
91
- assertNockRequest(updateCdnConfigurationRequest, done);
91
+ assertNockRequest(updateCdnConfigurationRequest);
92
+ done();
92
93
  });
93
94
 
94
95
  test('the form shall reflect the given cdnConfiguration', () => {