katello 4.5.0.rc2 → 4.6.0.rc2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (479) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +10 -0
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +3 -0
  4. data/app/controllers/katello/api/v2/activation_keys_controller.rb +7 -0
  5. data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +52 -22
  6. data/app/controllers/katello/api/v2/content_exports_controller.rb +33 -3
  7. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -0
  8. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
  9. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
  10. data/app/controllers/katello/api/v2/content_views_controller.rb +1 -1
  11. data/app/controllers/katello/api/v2/debs_controller.rb +42 -10
  12. data/app/controllers/katello/api/v2/host_collections_controller.rb +5 -1
  13. data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -0
  14. data/app/controllers/katello/api/v2/host_module_streams_controller.rb +9 -1
  15. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +8 -1
  16. data/app/controllers/katello/api/v2/organizations_controller.rb +3 -1
  17. data/app/controllers/katello/api/v2/simple_content_access_controller.rb +8 -0
  18. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +34 -11
  19. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +7 -16
  20. data/app/lib/actions/katello/alternate_content_source/alternate_content_source_common.rb +16 -0
  21. data/app/lib/actions/katello/alternate_content_source/create.rb +11 -5
  22. data/app/lib/actions/katello/alternate_content_source/destroy.rb +3 -4
  23. data/app/lib/actions/katello/alternate_content_source/refresh.rb +3 -5
  24. data/app/lib/actions/katello/alternate_content_source/update.rb +57 -13
  25. data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +2 -2
  26. data/app/lib/actions/katello/content_view/promote_to_environment.rb +4 -2
  27. data/app/lib/actions/katello/content_view/publish.rb +5 -2
  28. data/app/lib/actions/katello/organization/environment_contents_refresh.rb +20 -0
  29. data/app/lib/actions/katello/organization/manifest_refresh.rb +10 -4
  30. data/app/lib/actions/katello/organization/simple_content_access/toggle.rb +1 -9
  31. data/app/lib/actions/katello/repository/create.rb +9 -0
  32. data/app/lib/actions/katello/repository/destroy.rb +21 -0
  33. data/app/lib/actions/katello/repository/errata_mail.rb +3 -3
  34. data/app/lib/actions/katello/repository/refresh_repository.rb +3 -0
  35. data/app/lib/actions/katello/repository/update.rb +33 -0
  36. data/app/lib/actions/katello/repository/update_redhat_repository.rb +1 -1
  37. data/app/lib/actions/pulp3/alternate_content_source/create.rb +5 -4
  38. data/app/lib/actions/pulp3/alternate_content_source/create_remote.rb +5 -4
  39. data/app/lib/actions/pulp3/alternate_content_source/delete.rb +4 -4
  40. data/app/lib/actions/pulp3/alternate_content_source/delete_remote.rb +4 -4
  41. data/app/lib/actions/pulp3/alternate_content_source/refresh.rb +4 -4
  42. data/app/lib/actions/pulp3/alternate_content_source/update.rb +4 -4
  43. data/app/lib/actions/pulp3/alternate_content_source/update_remote.rb +5 -5
  44. data/app/lib/actions/pulp3/capsule_content/reclaim_space.rb +1 -0
  45. data/app/lib/actions/pulp3/content_view_version/create_export_history.rb +3 -1
  46. data/app/lib/actions/pulp3/content_view_version/create_exporter.rb +9 -2
  47. data/app/lib/actions/pulp3/content_view_version/create_syncable_export_history.rb +45 -0
  48. data/app/lib/actions/pulp3/content_view_version/destroy_exporter.rb +6 -1
  49. data/app/lib/actions/pulp3/content_view_version/export.rb +8 -3
  50. data/app/lib/actions/pulp3/orchestration/alternate_content_source/create.rb +3 -3
  51. data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +6 -7
  52. data/app/lib/actions/pulp3/orchestration/alternate_content_source/refresh.rb +2 -2
  53. data/app/lib/actions/pulp3/orchestration/alternate_content_source/refresh_remote.rb +18 -0
  54. data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +3 -3
  55. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +28 -13
  56. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +6 -4
  57. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +6 -3
  58. data/app/lib/actions/pulp3/orchestration/content_view_version/syncable_export.rb +82 -0
  59. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
  60. data/app/lib/katello/concerns/base_template_scope_extensions.rb +25 -12
  61. data/app/lib/katello/errors.rb +1 -1
  62. data/app/lib/katello/resources/candlepin/owner.rb +9 -2
  63. data/app/lib/katello/validators/alternate_content_source_products_validator.rb +17 -0
  64. data/app/models/katello/alternate_content_source.rb +39 -8
  65. data/app/models/katello/alternate_content_source_product.rb +13 -0
  66. data/app/models/katello/authorization/repository.rb +4 -2
  67. data/app/models/katello/concerns/host_managed_extensions.rb +12 -2
  68. data/app/models/katello/concerns/pulp_database_unit.rb +2 -2
  69. data/app/models/katello/concerns/smart_proxy_extensions.rb +5 -6
  70. data/app/models/katello/content_view.rb +50 -32
  71. data/app/models/katello/content_view_deb_filter.rb +51 -0
  72. data/app/models/katello/content_view_deb_filter_rule.rb +24 -0
  73. data/app/models/katello/content_view_filter.rb +10 -3
  74. data/app/models/katello/glue/candlepin/owner.rb +0 -1
  75. data/app/models/katello/installed_package.rb +1 -0
  76. data/app/models/katello/product.rb +3 -0
  77. data/app/models/katello/repository.rb +5 -3
  78. data/app/models/katello/rpm.rb +1 -0
  79. data/app/models/katello/smart_proxy_alternate_content_source.rb +6 -0
  80. data/app/services/cert/certs.rb +8 -16
  81. data/app/services/katello/organization_creator.rb +18 -7
  82. data/app/services/katello/pulp/server.rb +2 -2
  83. data/app/services/katello/pulp3/alternate_content_source.rb +22 -4
  84. data/app/services/katello/pulp3/api/apt.rb +12 -0
  85. data/app/services/katello/pulp3/api/core.rb +8 -0
  86. data/app/services/katello/pulp3/api/generic.rb +0 -4
  87. data/app/services/katello/pulp3/content_view_version/export.rb +61 -17
  88. data/app/services/katello/pulp3/content_view_version/import.rb +12 -5
  89. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +20 -5
  90. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +3 -1
  91. data/app/services/katello/pulp3/content_view_version/syncable_format_export.rb +34 -0
  92. data/app/services/katello/pulp3/deb.rb +3 -1
  93. data/app/services/katello/pulp3/pulp_content_unit.rb +2 -0
  94. data/app/services/katello/pulp3/repository/apt.rb +186 -2
  95. data/app/services/katello/pulp3/repository.rb +5 -4
  96. data/app/services/katello/pulp3/service_common.rb +1 -1
  97. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +1 -1
  98. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +4 -3
  99. data/app/views/foreman/smart_proxies/show.html.erb +3 -3
  100. data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +18 -3
  101. data/app/views/katello/api/v2/alternate_content_sources/show.json.rabl +20 -0
  102. data/app/views/katello/api/v2/ansible_collections/compare.json.rabl +10 -0
  103. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
  104. data/app/views/katello/api/v2/content_view_filters/base.json.rabl +5 -0
  105. data/app/views/katello/api/v2/module_streams/compare.json.rabl +10 -0
  106. data/app/views/katello/api/v2/organizations/show.json.rabl +1 -1
  107. data/app/views/katello/api/v2/repository_sets/show.json.rabl +4 -0
  108. data/app/views/katello/layouts/foreman_with_bastion.html.erb +1 -1
  109. data/app/views/katello/layouts/react.html.erb +1 -1
  110. data/app/views/overrides/organizations/_edit_override.html.erb +5 -8
  111. data/app/views/overrides/organizations/_index_row_override.html.erb +1 -1
  112. data/app/views/overrides/organizations/_step_1_override.html.erb +5 -0
  113. data/ca/redhat-uep.pem +18 -23
  114. data/config/katello.yaml.example +0 -2
  115. data/config/routes/api/v2.rb +2 -0
  116. data/config/routes/overrides.rb +1 -0
  117. data/db/migrate/20201116161820_create_content_view_deb_filter_rules.rb +17 -0
  118. data/db/migrate/20211220185935_clean_duplicate_content_units.rb +11 -9
  119. data/db/migrate/20220524132259_remove_last_refreshed_from_katello_alternate_content_sources.rb +5 -0
  120. data/db/migrate/20220601163911_add_vendor_to_katello_installed_packages.rb +5 -0
  121. data/db/migrate/20220610165621_add_repositories_and_products_to_acs.rb +23 -0
  122. data/engines/bastion/app/views/bastion/layouts/application.html.erb +1 -1
  123. data/engines/bastion/app/views/bastion/layouts/application_ie.html.erb +1 -1
  124. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -1
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +1 -1
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +1 -1
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +11 -3
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +1 -1
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment-content.controller.js +2 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +2 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.controller.js +1 -0
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +3 -3
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -5
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +0 -3
  137. data/engines/bastion_katello/lib/bastion_katello/engine.rb +0 -1
  138. data/lib/katello/engine.rb +1 -2
  139. data/lib/katello/permission_creator.rb +2 -2
  140. data/lib/katello/permissions/host_permissions.rb +1 -0
  141. data/lib/katello/plugin.rb +6 -12
  142. data/lib/katello/tasks/refresh_alternate_content_sources.rake +9 -4
  143. data/lib/katello/tasks/refresh_repos.rake +8 -0
  144. data/lib/katello/version.rb +1 -1
  145. data/locale/action_names.rb +49 -46
  146. data/locale/bn/katello.po +361 -53
  147. data/locale/cs/katello.po +361 -53
  148. data/locale/de/katello.po +366 -58
  149. data/locale/en/katello.po +361 -53
  150. data/locale/es/katello.po +364 -56
  151. data/locale/fr/katello.po +374 -66
  152. data/locale/gu/katello.po +361 -53
  153. data/locale/hi/katello.po +361 -53
  154. data/locale/it/katello.po +361 -53
  155. data/locale/ja/katello.po +374 -66
  156. data/locale/katello.pot +1626 -1079
  157. data/locale/kn/katello.po +361 -53
  158. data/locale/ko/katello.po +361 -53
  159. data/locale/mr/katello.po +361 -53
  160. data/locale/or/katello.po +361 -53
  161. data/locale/pa/katello.po +361 -53
  162. data/locale/pt/katello.po +361 -53
  163. data/locale/pt_BR/katello.po +364 -56
  164. data/locale/ru/katello.po +361 -53
  165. data/locale/ta/katello.po +361 -53
  166. data/locale/te/katello.po +361 -53
  167. data/locale/zh_CN/katello.po +374 -66
  168. data/locale/zh_TW/katello.po +361 -53
  169. data/webpack/components/EditableTextInput/EditableTextInput.js +3 -16
  170. data/webpack/components/EditableTextInput/PencilEditButton.js +33 -0
  171. data/webpack/components/Errata/index.js +18 -3
  172. data/webpack/components/Loading.js +1 -1
  173. data/webpack/components/RoutedTabs/index.js +1 -17
  174. data/webpack/components/Search/Search.js +0 -1
  175. data/webpack/components/Search/__tests__/search.test.js +1 -2
  176. data/webpack/components/SelectAllCheckbox/index.js +7 -4
  177. data/webpack/components/SelectableDropdown/SelectableDropdown.js +1 -0
  178. data/webpack/components/Table/EmptyStateMessage.js +77 -2
  179. data/webpack/components/Table/MainTable.js +46 -4
  180. data/webpack/components/Table/TableHooks.js +8 -4
  181. data/webpack/components/Table/TableWrapper.js +14 -8
  182. data/webpack/components/TypeAhead/TypeAhead.js +26 -11
  183. data/webpack/components/TypeAhead/pf3Search/TypeAheadItems.js +1 -1
  184. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +1 -0
  185. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +8 -1
  186. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +2 -1
  187. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +9 -4
  188. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeActions.js +37 -0
  189. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +175 -0
  190. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +6 -0
  191. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeConstants.js +6 -0
  192. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +301 -0
  193. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeSelectors.js +25 -0
  194. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +109 -0
  195. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +161 -0
  196. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +12 -12
  197. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +103 -0
  198. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -0
  199. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +1 -0
  200. data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +26 -4
  201. data/webpack/components/extensions/HostDetails/HostDetailsConstants.js +3 -1
  202. data/webpack/components/extensions/HostDetails/HostDetailsReducer.js +14 -0
  203. data/webpack/components/extensions/HostDetails/HostDetailsSelectors.js +8 -2
  204. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +9 -1
  205. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +23 -8
  206. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +11 -9
  207. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +58 -8
  208. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +2 -0
  209. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +30 -3
  210. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +3 -0
  211. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +48 -20
  212. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +1 -10
  213. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +1 -1
  214. data/webpack/components/extensions/RegistrationCommands/index.js +49 -17
  215. data/webpack/containers/Application/config.js +5 -10
  216. data/webpack/global_index.js +19 -7
  217. data/webpack/global_test_setup.js +14 -2
  218. data/webpack/ouia_id_check.js +95 -0
  219. data/webpack/redux/actions/RedHatRepositories/helpers.js +2 -0
  220. data/webpack/redux/reducers/index.js +2 -4
  221. data/webpack/scenes/AlternateContentSources/ACSActions.js +36 -3
  222. data/webpack/scenes/AlternateContentSources/ACSConstants.js +3 -0
  223. data/webpack/scenes/AlternateContentSources/ACSSelectors.js +15 -6
  224. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +73 -42
  225. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +26 -10
  226. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSProducts.js +44 -0
  227. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSReview.js +59 -45
  228. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +4 -3
  229. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +0 -1
  230. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +35 -19
  231. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +120 -13
  232. data/webpack/scenes/AlternateContentSources/Create/__tests__/products.fixtures.json +92 -0
  233. data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +459 -0
  234. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +354 -0
  235. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +104 -0
  236. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditProducts.js +120 -0
  237. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +118 -0
  238. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +118 -0
  239. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +242 -0
  240. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +106 -0
  241. data/webpack/scenes/AlternateContentSources/Details/__tests__/acsDetails.fixtures.json +49 -0
  242. data/webpack/scenes/AlternateContentSources/Details/__tests__/acsProducts.fixtures.json +95 -0
  243. data/webpack/scenes/AlternateContentSources/Details/__tests__/simplifiedAcsDetails.fixtures.json +39 -0
  244. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +215 -87
  245. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.scss +3 -0
  246. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +1 -2
  247. data/webpack/scenes/Content/__tests__/contentTable.test.js +1 -2
  248. data/webpack/scenes/ContentViews/ContentViewsConstants.js +15 -4
  249. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +1 -2
  250. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -0
  251. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +1 -2
  252. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +113 -0
  253. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +89 -0
  254. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +32 -9
  255. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +13 -3
  256. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +39 -27
  257. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +236 -0
  258. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +1 -0
  259. data/webpack/scenes/ContentViews/Details/Filters/CVFilterDetailType.js +10 -0
  260. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +3 -0
  261. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +3 -1
  262. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +17 -4
  263. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +1 -0
  264. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +34 -22
  265. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVDebMatchContentModal.js +97 -0
  266. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +1 -2
  267. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +128 -0
  268. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +56 -3
  269. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +62 -8
  270. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +1 -5
  271. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +1 -2
  272. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +32 -2
  273. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +1 -2
  274. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +1 -2
  275. data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyCVContainerImageFilterContent.fixtures.json +13 -0
  276. data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyCVPackageFilterRules.fixtures.json +13 -0
  277. data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyContentViewFilters.fixtures.json +13 -0
  278. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +1 -2
  279. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +5 -1
  280. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +1 -2
  281. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteModal.test.js +3 -0
  282. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.js +143 -0
  283. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +51 -0
  284. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +314 -0
  285. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +186 -0
  286. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +74 -0
  287. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/AnsibleCollectionsCompareAllContentData.fixtures.json +63 -0
  288. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/CVVersionCompare.test.js +657 -0
  289. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/CVVersionEmptyContentCompareData.fixtures.json +14 -0
  290. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/ContainerTagsCompareAllContentData.fixtures.json +95 -0
  291. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/DebPackagesCompareAllContentData.fixtures.json +87 -0
  292. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/ErrataCompareAllContentData.fixtures.json +319 -0
  293. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/ErrataCompareThreeContentTypesData.fixtures.json +131 -0
  294. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/FilesCompareAllContentData.fixtures.json +51 -0
  295. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/FilesCompareThreeContentTypesData.fixtures.json +48 -0
  296. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/ModuleStreamsCompareAllContentData.fixtures.json +239 -0
  297. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/PackageGroupsCompareAllContentData.fixtures.json +51 -0
  298. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/PythonPackagesCompareAllContentData.fixtures.json +315 -0
  299. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/RPMPackagesCompareAllContentData.fixtures.json +470 -0
  300. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/RPMPackagesCompareThreeContentTypesData.fixtures.json +475 -0
  301. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/contentViewDetails.fixtures.json +160 -0
  302. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/contentViewVersionOneDetials.fixtures.json +161 -0
  303. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/contentViewVersionThreeDetails.fixtures.json +154 -0
  304. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/contentViewVersionTwoDetails.fixtures.json +211 -0
  305. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/contentViewVersions.fixtures.json +1013 -0
  306. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/emptyStateCVVersionOneDetails.fixtures.json +145 -0
  307. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/emptyStateCVVersionTwoDetails.fixtures.json +145 -0
  308. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +102 -36
  309. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +1 -2
  310. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +4 -2
  311. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +1 -2
  312. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +1 -2
  313. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +113 -40
  314. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +96 -81
  315. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +1 -2
  316. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +7 -2
  317. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +1 -1
  318. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +0 -30
  319. data/webpack/test-utils/nockWrapper.js +7 -0
  320. metadata +83 -181
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +0 -34
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +0 -751
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-deletion.controller.js +0 -42
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +0 -81
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-confirm.controller.js +0 -65
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +0 -82
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-environments.controller.js +0 -76
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion.controller.js +0 -160
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/content-view-deletion.html +0 -58
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +0 -94
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-confirm.html +0 -76
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-content-hosts.html +0 -88
  333. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html +0 -73
  334. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-component.factory.js +0 -32
  335. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +0 -75
  336. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +0 -68
  337. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-available-content-views.html +0 -81
  338. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +0 -81
  339. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite.html +0 -24
  340. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-deb-repositories.controller.js +0 -50
  341. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +0 -42
  342. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +0 -50
  343. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +0 -42
  344. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-repositories.controller.js +0 -45
  345. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-deb-repositories-list.controller.js +0 -48
  346. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +0 -100
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +0 -49
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +0 -48
  349. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +0 -49
  350. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +0 -129
  351. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +0 -46
  352. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories-list.controller.js +0 -42
  353. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +0 -91
  354. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +0 -240
  355. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +0 -115
  356. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-module-stream-filter.controller.js +0 -68
  357. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +0 -66
  358. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +0 -77
  359. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/docker-tag-filter.controller.js +0 -137
  360. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/edit-filter.controller.js +0 -36
  361. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter-list.controller.js +0 -78
  362. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter.controller.js +0 -74
  363. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-content-type.filter.js +0 -21
  364. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-details.controller.js +0 -34
  365. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-helper.service.js +0 -30
  366. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +0 -86
  367. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-rule-matching-package-modal.controller.js +0 -37
  368. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-type.filter.js +0 -21
  369. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter.factory.js +0 -66
  370. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filters.controller.js +0 -85
  371. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/module-stream-list-filter.controller.js +0 -73
  372. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +0 -100
  373. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +0 -179
  374. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-list-filter.controller.js +0 -75
  375. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/rule.factory.js +0 -21
  376. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +0 -9
  377. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata.html +0 -75
  378. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-filter.html +0 -28
  379. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-tag-filter-details.html +0 -65
  380. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/edit-filter.html +0 -19
  381. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +0 -63
  382. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter.html +0 -50
  383. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-details.html +0 -9
  384. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +0 -121
  385. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-rule-matching-package-modal.html +0 -43
  386. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +0 -85
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/module-stream-filter-details.html +0 -58
  388. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/module-stream-filter.html +0 -43
  389. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +0 -62
  390. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +0 -182
  391. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter.html +0 -28
  392. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter-details.html +0 -42
  393. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter.html +0 -43
  394. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/partials/filter-repositories-count.html +0 -2
  395. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +0 -47
  396. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.factory.js +0 -22
  397. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +0 -36
  398. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-copy.html +0 -20
  399. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-deb-repositories.html +0 -87
  400. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details-tasks.html +0 -4
  401. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +0 -144
  402. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +0 -114
  403. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +0 -87
  404. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +0 -63
  405. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +0 -87
  406. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +0 -59
  407. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +0 -58
  408. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +0 -116
  409. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +0 -126
  410. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +0 -78
  411. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +0 -127
  412. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +0 -138
  413. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version.controller.js +0 -59
  414. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-apt.html +0 -25
  415. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-components.html +0 -19
  416. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-deb.html +0 -19
  417. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-details.html +0 -15
  418. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-docker.html +0 -23
  419. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +0 -48
  420. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-file.html +0 -21
  421. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-module-streams.html +0 -8
  422. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +0 -21
  423. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +0 -27
  424. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +0 -42
  425. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +0 -83
  426. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +0 -74
  427. data/lib/katello/tasks/reset.rake.bak +0 -67
  428. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  429. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  430. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  431. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  432. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  433. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  434. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  435. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  436. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  437. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  438. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  439. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  440. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  441. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  442. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  443. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  444. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  445. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  446. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  447. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  448. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  449. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  450. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsActions.js +0 -30
  451. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsConstants.js +0 -3
  452. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsPage.js +0 -80
  453. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsReducer.js +0 -39
  454. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsTableSchema.js +0 -60
  455. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsTables.scss +0 -0
  456. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetails.js +0 -94
  457. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsActions.js +0 -23
  458. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsConstants.js +0 -3
  459. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsReducer.js +0 -30
  460. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionsSchema.js +0 -35
  461. data/webpack/scenes/AnsibleCollections/Details/__tests__/AnsibleCollectionDetailInfo.test.js +0 -16
  462. data/webpack/scenes/AnsibleCollections/Details/__tests__/AnsibleCollectionDetails.fixtures.js +0 -25
  463. data/webpack/scenes/AnsibleCollections/Details/__tests__/AnsibleCollectionDetails.test.js +0 -27
  464. data/webpack/scenes/AnsibleCollections/Details/__tests__/AnsibleCollectionDetailsActions.test.js +0 -41
  465. data/webpack/scenes/AnsibleCollections/Details/__tests__/AnsibleCollectionDetailsReducer.test.js +0 -33
  466. data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailInfo.test.js.snap +0 -83
  467. data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetails.test.js.snap +0 -190
  468. data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailsActions.test.js.snap +0 -58
  469. data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailsReducer.test.js.snap +0 -50
  470. data/webpack/scenes/AnsibleCollections/Details/index.js +0 -17
  471. data/webpack/scenes/AnsibleCollections/__tests__/AnsibleCollectionPage.test.js +0 -23
  472. data/webpack/scenes/AnsibleCollections/__tests__/AnsibleCollections.fixtures.js +0 -52
  473. data/webpack/scenes/AnsibleCollections/__tests__/AnsibleCollectionsActions.test.js +0 -48
  474. data/webpack/scenes/AnsibleCollections/__tests__/AnsibleCollectionsReducer.test.js +0 -46
  475. data/webpack/scenes/AnsibleCollections/__tests__/AnsibleCollectionsTable.test.js +0 -25
  476. data/webpack/scenes/AnsibleCollections/__tests__/__snapshots__/AnsibleCollectionPage.test.js.snap +0 -73
  477. data/webpack/scenes/AnsibleCollections/__tests__/__snapshots__/AnsibleCollectionsTable.test.js.snap +0 -81
  478. data/webpack/scenes/AnsibleCollections/index.js +0 -17
  479. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +0 -123
@@ -8,6 +8,7 @@ import mockRepoSetData from './repositorySets.fixtures.json';
8
8
  import mockBookmarkData from './bookmarks.fixtures.json';
9
9
  import mockContentOverride from './contentOverrides.fixtures.json';
10
10
 
11
+
11
12
  jest.mock('../../hostDetailsHelpers', () => ({
12
13
  ...jest.requireActual('../../hostDetailsHelpers'),
13
14
  userPermissionsFromHostDetails: () => ({
@@ -46,7 +47,7 @@ const autocompleteUrl = '/repository_sets/auto_complete_search';
46
47
  const repositorySetBookmarks = foremanApi.getApiUrl('/bookmarks?search=controller%3Dkatello_product_contents');
47
48
  const contentOverride = foremanApi.getApiUrl('/hosts/1/subscriptions/content_override');
48
49
 
49
- const defaultQuery = {
50
+ const limitToEnvQuery = {
50
51
  content_access_mode_env: true,
51
52
  content_access_mode_all: true,
52
53
  host_id: 1,
@@ -56,8 +57,8 @@ const defaultQuery = {
56
57
  sort_by: 'name',
57
58
  sort_order: 'asc',
58
59
  };
59
- const libraryQuery = {
60
- ...defaultQuery,
60
+ const showAllQuery = {
61
+ ...limitToEnvQuery,
61
62
  content_access_mode_env: false,
62
63
  };
63
64
 
@@ -86,7 +87,7 @@ test('Can call API for repository sets and show basic table', async (done) => {
86
87
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
87
88
  const scope = nockInstance
88
89
  .get(hostRepositorySets)
89
- .query(defaultQuery)
90
+ .query(limitToEnvQuery)
90
91
  .reply(200, mockRepoSetData);
91
92
 
92
93
  const { getByText } = renderWithRedux(<RepositorySetsTab />, renderOptions());
@@ -110,7 +111,7 @@ test('Can handle no repository sets being present', async (done) => {
110
111
 
111
112
  const scope = nockInstance
112
113
  .get(hostRepositorySets)
113
- .query(defaultQuery)
114
+ .query(limitToEnvQuery)
114
115
  .reply(200, noResults);
115
116
 
116
117
  const { queryByText } = renderWithRedux(<RepositorySetsTab />, renderOptions());
@@ -126,7 +127,7 @@ test('Toggle Group shows if it\'s not the default content view or library enviro
126
127
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
127
128
  const scope = nockInstance
128
129
  .get(hostRepositorySets)
129
- .query(defaultQuery)
130
+ .query(limitToEnvQuery)
130
131
  .reply(200, mockRepoSetData);
131
132
 
132
133
  const {
@@ -141,7 +142,7 @@ test('Toggle Group shows if it\'s not the default content view or library enviro
141
142
  assertNockRequest(scope, done); // Pass jest callback to confirm test is done
142
143
  });
143
144
 
144
- test('Toggle Group does not show if it\'s the default content view ', async (done) => {
145
+ test('Toggle Group shows if it\'s the default content view but non-library environment', async (done) => {
145
146
  const options = renderOptions({
146
147
  ...contentFacetAttributes,
147
148
  content_view_default: true,
@@ -150,7 +151,7 @@ test('Toggle Group does not show if it\'s the default content view ', async (don
150
151
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
151
152
  const scope = nockInstance
152
153
  .get(hostRepositorySets)
153
- .query(libraryQuery)
154
+ .query(limitToEnvQuery)
154
155
  .reply(200, mockRepoSetData);
155
156
 
156
157
  const {
@@ -160,21 +161,46 @@ test('Toggle Group does not show if it\'s the default content view ', async (don
160
161
 
161
162
  // Assert that the errata are now showing on the screen, but wait for them to appear.
162
163
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
163
- expect(queryByLabelText('Limit to environment')).not.toBeInTheDocument();
164
+ expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
165
+ assertNockRequest(autocompleteScope);
166
+ assertNockRequest(scope, done); // Pass jest callback to confirm test is done
167
+ });
168
+
169
+ test('Toggle Group shows if it\'s the library environment but a non-default content view', async (done) => {
170
+ const options = renderOptions({
171
+ ...contentFacetAttributes,
172
+ lifecycle_environment_library: true,
173
+ });
174
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
175
+ // return errata data results when we look for errata
176
+ const scope = nockInstance
177
+ .get(hostRepositorySets)
178
+ .query(limitToEnvQuery)
179
+ .reply(200, mockRepoSetData);
180
+
181
+ const {
182
+ queryByLabelText,
183
+ getByText,
184
+ } = renderWithRedux(<RepositorySetsTab />, options);
185
+
186
+ // Assert that the errata are now showing on the screen, but wait for them to appear.
187
+ await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
188
+ expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
164
189
  assertNockRequest(autocompleteScope);
165
190
  assertNockRequest(scope, done); // Pass jest callback to confirm test is done
166
191
  });
167
192
 
168
- test('Toggle Group does not show if it\'s the library environment', async (done) => {
193
+ test('Toggle Group does not show if it\'s the library environment and default content view', async (done) => {
169
194
  const options = renderOptions({
170
195
  ...contentFacetAttributes,
171
196
  lifecycle_environment_library: true,
197
+ content_view_default: true,
172
198
  });
173
199
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
174
200
  // return errata data results when we look for errata
175
201
  const scope = nockInstance
176
202
  .get(hostRepositorySets)
177
- .query(libraryQuery)
203
+ .query(showAllQuery)
178
204
  .reply(200, mockRepoSetData);
179
205
 
180
206
  const {
@@ -195,7 +221,7 @@ test('Can toggle with the Toggle Group ', async (done) => {
195
221
  // return errata data results when we look for errata
196
222
  const scope = nockInstance
197
223
  .get(hostRepositorySets)
198
- .query(defaultQuery)
224
+ .query(limitToEnvQuery)
199
225
  .reply(200, mockRepoSetData);
200
226
 
201
227
  const {
@@ -215,7 +241,7 @@ test('Can override to disabled', async (done) => {
215
241
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
216
242
  const scope = nockInstance
217
243
  .get(hostRepositorySets)
218
- .query(defaultQuery)
244
+ .query(limitToEnvQuery)
219
245
  .reply(200, mockRepoSetData);
220
246
  const overrides = JSON.parse(JSON.stringify(mockContentOverride));
221
247
  overrides.results[0].enabled_content_override = false;
@@ -253,7 +279,7 @@ test('Can override to enabled', async (done) => {
253
279
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
254
280
  const scope = nockInstance
255
281
  .get(hostRepositorySets)
256
- .query(defaultQuery)
282
+ .query(limitToEnvQuery)
257
283
  .reply(200, mockRepoSetData);
258
284
  const overrides = JSON.parse(JSON.stringify(mockContentOverride));
259
285
  overrides.results[1].enabled_content_override = true;
@@ -292,7 +318,7 @@ test('Can reset to default', async (done) => {
292
318
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
293
319
  const scope = nockInstance
294
320
  .get(hostRepositorySets)
295
- .query(defaultQuery)
321
+ .query(limitToEnvQuery)
296
322
  .reply(200, mockRepoSetData);
297
323
  const overrides = JSON.parse(JSON.stringify(mockContentOverride));
298
324
  overrides.results[1].enabled_content_override = null;
@@ -331,7 +357,7 @@ test('Can override in bulk', async (done) => {
331
357
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
332
358
  const scope = nockInstance
333
359
  .get(hostRepositorySets)
334
- .query(defaultQuery)
360
+ .query(limitToEnvQuery)
335
361
  .reply(200, mockRepoSetData);
336
362
  const contentOverrideScope = nockInstance
337
363
  .put(contentOverride)
@@ -359,12 +385,12 @@ test('Can filter by status', async (done) => {
359
385
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
360
386
  const scope = nockInstance
361
387
  .get(hostRepositorySets)
362
- .query(defaultQuery)
388
+ .query(limitToEnvQuery)
363
389
  .reply(200, mockRepoSetData);
364
390
 
365
391
  const scope2 = nockInstance
366
392
  .get(hostRepositorySets)
367
- .query({ ...defaultQuery, status: 'overridden' })
393
+ .query({ ...limitToEnvQuery, status: 'overridden' })
368
394
  .reply(200, { ...mockRepoSetData, results: [secondRepoSet] });
369
395
 
370
396
  const {
@@ -389,11 +415,11 @@ test('Can filter by status', async (done) => {
389
415
  assertNockRequest(scope2, done); // Pass jest callback to confirm test is done
390
416
  });
391
417
 
392
- test('Can display osRestricted as a label', async (done) => {
418
+ test('Can display restrictions as labels', async (done) => {
393
419
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
394
420
  const scope = nockInstance
395
421
  .get(hostRepositorySets)
396
- .query(defaultQuery)
422
+ .query(limitToEnvQuery)
397
423
  .reply(200, mockRepoSetData);
398
424
 
399
425
  const { getByText } = renderWithRedux(<RepositorySetsTab />, renderOptions());
@@ -401,6 +427,8 @@ test('Can display osRestricted as a label', async (done) => {
401
427
  await patientlyWaitFor(() => expect(getByText(secondRepoSet.contentUrl)).toBeInTheDocument());
402
428
  expect(secondRepoSet.osRestricted).not.toBeNull();
403
429
  expect(getByText(secondRepoSet.osRestricted)).toBeInTheDocument();
430
+ expect(secondRepoSet.archRestricted).not.toBeNull();
431
+ expect(getByText(secondRepoSet.archRestricted)).toBeInTheDocument();
404
432
  assertNockRequest(autocompleteScope);
405
433
  assertNockRequest(scope, done); // Pass jest callback to confirm test is done
406
434
  });
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { renderWithRedux, waitFor, patientlyWaitFor, fireEvent, act } from 'react-testing-lib-wrapper';
3
- import nock, { nockInstance, assertNockRequest, mockForemanAutocomplete, mockSetting } from '../../../../../test-utils/nockWrapper';
3
+ import { nockInstance, assertNockRequest, mockForemanAutocomplete, mockSetting } from '../../../../../test-utils/nockWrapper';
4
4
  import { foremanApi } from '../../../../../services/api';
5
5
  import { REX_FEATURES } from '../RemoteExecutionConstants';
6
6
  import { HOST_TRACES_KEY, TRACES_SEARCH_QUERY } from '../TracesTab/HostTracesConstants';
@@ -74,7 +74,6 @@ describe('With tracer installed', () => {
74
74
  assertNockRequest(searchDelayScope);
75
75
  assertNockRequest(autoSearchScope);
76
76
  assertNockRequest(bookmarkScope);
77
- nock.cleanAll();
78
77
  });
79
78
 
80
79
  test('Can call API for traces and show on screen on page load', async (done) => {
@@ -345,10 +344,6 @@ describe('With tracer installed', () => {
345
344
  [firstTrace] = results;
346
345
  });
347
346
 
348
- afterEach(() => {
349
- nock.cleanAll();
350
- });
351
-
352
347
  test('Does not allow selection of session type traces', async (done) => {
353
348
  const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
354
349
 
@@ -374,10 +369,6 @@ describe('With tracer installed', () => {
374
369
  });
375
370
 
376
371
  describe('Without tracer installed', () => {
377
- afterEach(() => {
378
- nock.cleanAll();
379
- });
380
-
381
372
  test('Shows Enable Tracer empty state', async () => {
382
373
  const { queryByText } = renderWithRedux(<TracesTab />, renderOptions(false));
383
374
 
@@ -35,7 +35,7 @@ export const userPermissionsFromHostDetails = ({ hostDetails }) => {
35
35
 
36
36
  // requiredPermissions is an array
37
37
  // userPermissions is an object, e.g. { view_hosts: true }
38
- export const hasRequiredPermissions = (requiredPermissions = [], userPermissions) => {
38
+ export const hasRequiredPermissions = (requiredPermissions = [], userPermissions = {}) => {
39
39
  const permittedActions = Object.keys(userPermissions).filter(key => userPermissions[key]);
40
40
  return requiredPermissions.every(permission => permittedActions.includes(permission));
41
41
  };
@@ -7,32 +7,20 @@ import LifecycleEnvironment from './fields/LifecycleEnvironment';
7
7
  import IgnoreSubmanErrors from './fields/IgnoreSubmanErrors';
8
8
  import Force from './fields/Force';
9
9
 
10
- const RegistrationCommands = ({
10
+ export const RegistrationCommands = ({
11
11
  organizationId,
12
12
  hostGroupId,
13
13
  pluginValues,
14
14
  pluginData,
15
15
  onChange,
16
- handleInvalidField,
17
16
  isLoading,
18
17
  }) => {
19
18
  useEffect(() => {
20
- onChange({ activationKeys: [], lifecycleEnvironmentId: '' });
19
+ onChange({ lifecycleEnvironmentId: '' });
21
20
  }, [onChange, organizationId, hostGroupId]);
22
21
 
23
22
  return (
24
23
  <>
25
- <ActivationKeys
26
- activationKeys={pluginData?.activationKeys}
27
- organizationId={organizationId}
28
- selectedKeys={(pluginValues?.activationKeys || [])}
29
- hostGroupActivationKeys={pluginData?.hostGroupActivationKeys}
30
- hostGroupId={hostGroupId}
31
- pluginValues={pluginValues}
32
- onChange={onChange}
33
- handleInvalidField={handleInvalidField}
34
- isLoading={isLoading}
35
- />
36
24
  <LifecycleEnvironment
37
25
  pluginValues={pluginValues}
38
26
  lifecycleEnvironments={pluginData?.lifecycleEnvironments}
@@ -63,7 +51,6 @@ RegistrationCommands.propTypes = {
63
51
  pluginValues: PropTypes.object, // eslint-disable-line react/forbid-prop-types
64
52
  pluginData: PropTypes.object, // eslint-disable-line react/forbid-prop-types
65
53
  onChange: PropTypes.func,
66
- handleInvalidField: PropTypes.func,
67
54
  isLoading: PropTypes.bool,
68
55
  };
69
56
 
@@ -74,7 +61,52 @@ RegistrationCommands.defaultProps = {
74
61
  pluginData: {},
75
62
  isLoading: false,
76
63
  onChange: noop,
77
- handleInvalidField: noop,
78
64
  };
79
65
 
80
- export default RegistrationCommands;
66
+ export const RegistrationActivationKeys = ({
67
+ organizationId,
68
+ hostGroupId,
69
+ pluginValues,
70
+ pluginData,
71
+ onChange,
72
+ handleInvalidField,
73
+ isLoading,
74
+ }) => {
75
+ useEffect(() => {
76
+ onChange({ activationKeys: [] });
77
+ }, [onChange, organizationId, hostGroupId]);
78
+
79
+ return (
80
+ <ActivationKeys
81
+ activationKeys={pluginData?.activationKeys}
82
+ organizationId={organizationId}
83
+ selectedKeys={(pluginValues?.activationKeys || [])}
84
+ hostGroupActivationKeys={pluginData?.hostGroupActivationKeys}
85
+ hostGroupId={hostGroupId}
86
+ pluginValues={pluginValues}
87
+ onChange={onChange}
88
+ handleInvalidField={handleInvalidField}
89
+ isLoading={isLoading}
90
+ />
91
+ );
92
+ };
93
+
94
+ RegistrationActivationKeys.propTypes = {
95
+ organizationId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
96
+ hostGroupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
97
+ pluginValues: PropTypes.object, // eslint-disable-line react/forbid-prop-types
98
+ pluginData: PropTypes.object, // eslint-disable-line react/forbid-prop-types
99
+ onChange: PropTypes.func,
100
+ handleInvalidField: PropTypes.func,
101
+ isLoading: PropTypes.bool,
102
+ };
103
+
104
+ RegistrationActivationKeys.defaultProps = {
105
+ organizationId: undefined,
106
+ hostGroupId: undefined,
107
+ pluginValues: {},
108
+ pluginData: {},
109
+ isLoading: false,
110
+ onChange: noop,
111
+ handleInvalidField: noop,
112
+ };
@@ -7,8 +7,6 @@ import SetOrganization from '../../components/SelectOrg/SetOrganization';
7
7
  import WithOrganization from '../../components/WithOrganization/withOrganization';
8
8
  import ModuleStreams from '../../scenes/ModuleStreams';
9
9
  import ModuleStreamDetails from '../../scenes/ModuleStreams/Details';
10
- import AnsibleCollections from '../../scenes/AnsibleCollections';
11
- import AnsibleCollectionDetails from '../../scenes/AnsibleCollections/Details';
12
10
  import ContentViews from '../../scenes/ContentViews';
13
11
  import ContentViewDetails from '../../scenes/ContentViews/Details';
14
12
  import Content from '../../scenes/Content';
@@ -48,14 +46,6 @@ export const links = [
48
46
  path: 'module_streams/:id([0-9]+)',
49
47
  component: WithOrganization(withHeader(ModuleStreamDetails, { title: __('Module Stream Details') })),
50
48
  },
51
- {
52
- path: 'legacy_ansible_collections',
53
- component: WithOrganization(withHeader(AnsibleCollections, { title: __('Ansible Collections') })),
54
- },
55
- {
56
- path: 'legacy_ansible_collections/:id([0-9]+)',
57
- component: WithOrganization(withHeader(AnsibleCollectionDetails, { title: __('Ansible Collection Details') })),
58
- },
59
49
  {
60
50
  path: 'content_views',
61
51
  component: WithOrganization(withHeader(ContentViews, { title: __('Content views') })),
@@ -85,4 +75,9 @@ export const links = [
85
75
  path: 'labs/alternate_content_sources',
86
76
  component: WithOrganization(withHeader(AlternateContentSource, { title: __('Alternate Content Sources') })),
87
77
  },
78
+ {
79
+ path: 'labs/alternate_content_sources/:id([0-9]+)',
80
+ component: WithOrganization(withHeader(AlternateContentSource, { title: __('Alternate Content Sources') })),
81
+ exact: false,
82
+ },
88
83
  ];
@@ -4,52 +4,63 @@ import { registerReducer } from 'foremanReact/common/MountingService';
4
4
  import { translate as __ } from 'foremanReact/common/I18n';
5
5
 
6
6
  import SystemStatuses from './components/extensions/about';
7
- import RegistrationCommands from './components/extensions/RegistrationCommands';
7
+ import {
8
+ RegistrationCommands,
9
+ RegistrationActivationKeys,
10
+ } from './components/extensions/RegistrationCommands';
8
11
  import ContentTab from './components/extensions/HostDetails/Tabs/ContentTab';
9
12
  import ContentViewDetailsCard from './components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard';
10
13
  import ErrataOverviewCard from './components/extensions/HostDetails/Cards/ErrataOverviewCard';
11
14
  import InstalledProductsCard from './components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard';
12
15
  import RegistrationCard from './components/extensions/HostDetails/DetailsTabCards/RegistrationCard';
16
+ import HwPropertiesCard from './components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard';
13
17
 
14
18
  import TracesTab from './components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js';
15
19
  import extendReducer from './components/extensions/reducers';
16
20
  import rootReducer from './redux/reducers';
17
21
  import HostCollectionsCard from './components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard';
18
22
  import { hostIsNotRegistered } from './components/extensions/HostDetails/hostDetailsHelpers';
19
- import SystemPropertiesCardExtensions from './components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions';
23
+ import {
24
+ SystemPropertiesCardSubscription,
25
+ SystemPropertiesCardTracer,
26
+ } from './components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions';
20
27
  import HostActionsBar from './components/extensions/HostDetails/ActionsBar';
21
28
  import RecentCommunicationCardExtensions from './components/extensions/HostDetails/DetailsTabCards/RecentCommunicationCardExtensions';
29
+ import SystemPurposeCard from './components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard';
22
30
 
23
31
  registerReducer('katelloExtends', extendReducer);
24
32
  registerReducer('katello', rootReducer);
25
33
 
26
34
  addGlobalFill('aboutFooterSlot', '[katello]AboutSystemStatuses', <SystemStatuses key="katello-system-statuses" />, 100);
27
35
  addGlobalFill('registrationAdvanced', '[katello]RegistrationCommands', <RegistrationCommands key="katello-reg" />, 100);
36
+ addGlobalFill('registrationGeneral', '[katello]RegistrationActivationKeys', <RegistrationActivationKeys key="katello-reg-ak" />, 100);
28
37
 
29
38
  // Host details page tabs
30
39
  addGlobalFill('host-details-page-tabs', 'Content', <ContentTab key="content" />, 900, { title: __('Content'), hideTab: hostIsNotRegistered });
31
40
  addGlobalFill('host-details-page-tabs', 'Traces', <TracesTab key="traces" />, 800, { title: __('Traces'), hideTab: hostIsNotRegistered });
32
41
 
33
- // Overview tab cards
42
+ // Overview tab cards & card extensions
34
43
  addGlobalFill(
35
44
  'host-overview-cards',
36
45
  'Content view details',
37
46
  <ContentViewDetailsCard key="content-view-details" />,
38
- 2000,
47
+ 3800,
39
48
  );
40
49
  addGlobalFill(
41
50
  'host-overview-cards',
42
51
  'Host collections',
43
52
  <HostCollectionsCard key="host-collections-details" />,
44
- 700,
53
+ 2600,
45
54
  );
46
- addGlobalFill('host-overview-cards', 'Installable errata', <ErrataOverviewCard key="errata-overview" />, 1900);
55
+ addGlobalFill('host-overview-cards', 'Installable errata', <ErrataOverviewCard key="errata-overview" />, 3600);
56
+ addGlobalFill('host-overview-cards', 'System purpose', <SystemPurposeCard key="system-purpose" />, 1400);
47
57
  addGlobalFill('recent-communication-card-item', 'Recent communication', <RecentCommunicationCardExtensions key="recent-communication" />, 3000);
48
58
 
49
59
  // Details tab cards & card extensions
50
60
  addGlobalFill('host-tab-details-cards', 'Installed products', <InstalledProductsCard key="installed-products" />, 100);
51
61
  addGlobalFill('host-tab-details-cards', 'Registration details', <RegistrationCard key="registration-details" />, 200);
52
- addGlobalFill('host-details-tab-properties-1', 'Subscription UUID', <SystemPropertiesCardExtensions key="subscription-uuid" />);
62
+ addGlobalFill('host-details-tab-properties-1', 'Subscription UUID', <SystemPropertiesCardSubscription key="subscription-uuid" />);
63
+ addGlobalFill('host-details-tab-properties-2', 'Tracer', <SystemPropertiesCardTracer key="tracer-status" />);
53
64
 
54
65
  addGlobalFill(
55
66
  'host-details-kebab',
@@ -57,3 +68,4 @@ addGlobalFill(
57
68
  <HostActionsBar key="katello-host-details-kebab" />,
58
69
  100,
59
70
  );
71
+ addGlobalFill('host-tab-details-cards', 'HW properties', <HwPropertiesCard key="hw-properties" />, 200);
@@ -1,4 +1,5 @@
1
1
  import nock from 'nock';
2
+ // import checkForOuiaIds from './ouia_id_check';
2
3
 
3
4
  // runs before each test to make sure console.error output will
4
5
  // fail a test (i.e. default PropType missing). Check the error
@@ -8,12 +9,18 @@ global.console.error = (error, stack) => {
8
9
  originalConsoleError(error); // ensure error is printed to console
9
10
  /* eslint-disable-next-line no-console */
10
11
  if (stack) console.log(stack); // Prints out original stack trace
11
- throw new Error(error);
12
+ throw new Error(error); // comment this and uncomment the next line when checking for ouia ids
13
+ // if (!error.includes('Failed prop type')) throw new Error(error);
12
14
  };
13
15
 
14
16
  // Increase jest timeout as some tests using multiple http mocks can time out on CI systems.
15
17
  jest.setTimeout(process.env.JEST_TIMEOUT || 15000);
16
18
 
19
+ // uncomment this to see if tests are trying to make real API requests
20
+ // beforeAll(() => {
21
+ // nock.disableNetConnect();
22
+ // });
23
+
17
24
  afterAll(() => {
18
25
  jest.resetModules();
19
26
  if (global.gc) global.gc();
@@ -23,7 +30,12 @@ beforeEach(() => {
23
30
  if (!nock.isActive()) { nock.activate(); }
24
31
  });
25
32
 
33
+ // To see where you need to add ouiaIds:
34
+ // 1. uncomment this and the import above
35
+ // checkForOuiaIds();
36
+ // 2. (optional) uncomment the line in global.console.error function above
37
+
26
38
  afterEach(() => {
27
- nock.restore();
39
+ nock.cleanAll();
28
40
  });
29
41
 
@@ -0,0 +1,95 @@
1
+ import PropTypes from 'prop-types';
2
+ import {
3
+ Alert,
4
+ Breadcrumb,
5
+ Button,
6
+ Card,
7
+ Checkbox,
8
+ Chip,
9
+ ChipGroup,
10
+ ContextSelector,
11
+ Dropdown,
12
+ DropdownItem,
13
+ DropdownSeparator,
14
+ DropdownToggle,
15
+ DropdownToggleCheckbox,
16
+ FormSelect,
17
+ Menu,
18
+ Modal,
19
+ ModalContent,
20
+ Nav,
21
+ NavExpandable,
22
+ NavItem,
23
+ OptionsMenu,
24
+ Pagination,
25
+ Radio,
26
+ Select,
27
+ Switch,
28
+ TabButton,
29
+ TabContent,
30
+ Tabs,
31
+ Text,
32
+ TextInput,
33
+ Title,
34
+ Toolbar,
35
+ } from '@patternfly/react-core';
36
+ import {
37
+ RowWrapper,
38
+ Table,
39
+ TableComposable,
40
+ Tr,
41
+ } from '@patternfly/react-table';
42
+
43
+ const checkForOuiaIds = () => {
44
+ const ouiaSupportedPFComponents = [
45
+ Alert,
46
+ Breadcrumb,
47
+ Button,
48
+ Card,
49
+ Checkbox,
50
+ Chip,
51
+ ChipGroup,
52
+ ContextSelector,
53
+ Dropdown,
54
+ DropdownItem,
55
+ DropdownSeparator,
56
+ DropdownToggle,
57
+ DropdownToggleCheckbox,
58
+ FormSelect,
59
+ Menu,
60
+ Modal,
61
+ ModalContent,
62
+ Nav,
63
+ NavExpandable,
64
+ NavItem,
65
+ OptionsMenu,
66
+ Pagination,
67
+ Radio,
68
+ Select,
69
+ Switch,
70
+ TabButton,
71
+ TabContent,
72
+ Tabs,
73
+ Text,
74
+ TextInput,
75
+ Title,
76
+ Toolbar,
77
+ RowWrapper,
78
+ Table,
79
+ TableComposable,
80
+ Tr,
81
+ ];
82
+ beforeEach(() => {
83
+ // eslint-disable-next-line no-restricted-syntax
84
+ for (const Component of ouiaSupportedPFComponents) {
85
+ // eslint-disable-next-line no-continue
86
+ if (!Component) continue;
87
+ Component.propTypes = {
88
+ ...Component.propTypes,
89
+ ouiaId: PropTypes.string.isRequired,
90
+ };
91
+ }
92
+ });
93
+ };
94
+
95
+ export default checkForOuiaIds;
@@ -10,6 +10,8 @@ const repoTypeSearchQueryMap = {
10
10
  };
11
11
 
12
12
  const recommendedRepositoriesRHEL = [
13
+ 'rhel-9-for-x86_64-baseos-rpms',
14
+ 'rhel-9-for-x86_64-appstream-rpms',
13
15
  'rhel-8-for-x86_64-baseos-rpms',
14
16
  'rhel-8-for-x86_64-baseos-kickstart',
15
17
  'rhel-8-for-x86_64-appstream-rpms',
@@ -11,9 +11,8 @@ import { moduleStreams } from '../../scenes/ModuleStreams';
11
11
  import { reducers as organizationProductsReducers } from '../OrganizationProducts';
12
12
  import { moduleStreamDetails } from '../../scenes/ModuleStreams/Details';
13
13
  import { reducers as systemStatuses } from '../../components/extensions/about';
14
- import { ansibleCollections } from '../../scenes/AnsibleCollections';
15
- import { ansibleCollectionDetails } from '../../scenes/AnsibleCollections/Details';
16
14
  import { contentViewDetails } from '../../scenes/ContentViews/Details';
15
+ import hostDetails from '../../components/extensions/HostDetails/HostDetailsReducer';
17
16
 
18
17
  export default combineReducers({
19
18
  organization,
@@ -26,9 +25,8 @@ export default combineReducers({
26
25
  setOrganization,
27
26
  moduleStreams,
28
27
  moduleStreamDetails,
29
- ansibleCollections,
30
- ansibleCollectionDetails,
31
28
  contentViewDetails,
29
+ hostDetails,
32
30
  ...organizationProductsReducers,
33
31
  ...systemStatuses,
34
32
  });