katello 4.7.4 → 4.8.0.rc1

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 (334) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +6 -4
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +15 -12
  4. data/app/controllers/katello/api/v2/capsule_content_controller.rb +0 -4
  5. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +22 -81
  6. data/app/controllers/katello/api/v2/content_exports_controller.rb +11 -80
  7. data/app/controllers/katello/api/v2/content_imports_controller.rb +1 -0
  8. data/app/controllers/katello/api/v2/exports_controller.rb +130 -0
  9. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +7 -8
  10. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +8 -4
  11. data/app/controllers/katello/api/v2/organizations_controller.rb +3 -0
  12. data/app/controllers/katello/api/v2/package_groups_controller.rb +0 -52
  13. data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +4 -6
  14. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -2
  15. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +4 -1
  16. data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +24 -0
  17. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +3 -3
  18. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +55 -24
  19. data/app/helpers/katello/katello_urls_helper.rb +0 -15
  20. data/app/helpers/katello/sync_management_helper.rb +0 -4
  21. data/app/lib/actions/candlepin/owner/destroy_imports.rb +1 -1
  22. data/app/lib/actions/katello/capsule_content/sync.rb +0 -4
  23. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -2
  24. data/app/lib/actions/katello/content_view/publish.rb +6 -2
  25. data/app/lib/actions/katello/content_view/remove.rb +8 -2
  26. data/app/lib/actions/katello/content_view_version/destroy.rb +1 -1
  27. data/app/lib/actions/katello/environment/destroy.rb +8 -2
  28. data/app/lib/actions/katello/host/reassign.rb +4 -2
  29. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -1
  30. data/app/lib/actions/katello/product/destroy.rb +2 -1
  31. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -10
  32. data/app/lib/actions/katello/repository/import_upload.rb +0 -1
  33. data/app/lib/actions/katello/repository/sync.rb +0 -1
  34. data/app/lib/actions/katello/repository/update.rb +5 -3
  35. data/app/lib/actions/katello/repository/upload_files.rb +0 -1
  36. data/app/lib/actions/pulp3/abstract.rb +0 -6
  37. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +1 -2
  38. data/app/lib/actions/pulp3/content_view_version/create_syncable_export_history.rb +4 -0
  39. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +1 -0
  40. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +7 -2
  41. data/app/lib/actions/pulp3/orchestration/content_view_version/syncable_export.rb +7 -2
  42. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -2
  43. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -2
  44. data/app/lib/katello/concerns/renderer_extensions.rb +1 -1
  45. data/app/lib/katello/event_daemon/runner.rb +12 -9
  46. data/app/lib/katello/resources/candlepin/consumer.rb +6 -6
  47. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  48. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +3 -4
  49. data/app/lib/katello/resources/candlepin.rb +4 -4
  50. data/app/lib/katello/util/errata.rb +12 -10
  51. data/app/lib/katello/util/search.rb +0 -1
  52. data/app/lib/katello/validators/content_view_environment_org_validator.rb +5 -2
  53. data/app/lib/katello/validators/content_view_environment_validator.rb +1 -2
  54. data/app/lib/katello/validators/generated_content_view_validator.rb +16 -0
  55. data/app/mailers/katello/errata_mailer.rb +4 -2
  56. data/app/models/katello/alternate_content_source.rb +5 -1
  57. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -14
  58. data/app/models/katello/concerns/host_managed_extensions.rb +17 -8
  59. data/app/models/katello/concerns/redhat_extensions.rb +16 -6
  60. data/app/models/katello/concerns/smart_proxy_extensions.rb +0 -12
  61. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -0
  62. data/app/models/katello/content_view.rb +22 -5
  63. data/app/models/katello/content_view_environment.rb +11 -2
  64. data/app/models/katello/content_view_environment_content_facet.rb +9 -0
  65. data/app/models/katello/content_view_version.rb +10 -5
  66. data/app/models/katello/erratum.rb +6 -1
  67. data/app/models/katello/glue/candlepin/pool.rb +6 -0
  68. data/app/models/katello/glue/candlepin/product.rb +7 -1
  69. data/app/models/katello/glue/candlepin/subscription.rb +5 -0
  70. data/app/models/katello/glue/provider.rb +26 -26
  71. data/app/models/katello/host/content_facet.rb +106 -18
  72. data/app/models/katello/host/info_provider.rb +25 -21
  73. data/app/models/katello/host/subscription_facet.rb +18 -14
  74. data/app/models/katello/kt_environment.rb +12 -7
  75. data/app/models/katello/package_group.rb +0 -12
  76. data/app/models/katello/pool.rb +4 -1
  77. data/app/models/katello/product.rb +11 -1
  78. data/app/models/katello/repository.rb +11 -11
  79. data/app/models/katello/root_repository.rb +5 -4
  80. data/app/models/katello/task_status.rb +0 -18
  81. data/app/services/katello/candlepin/consumer.rb +2 -2
  82. data/app/services/katello/host/package_profile_uploader.rb +1 -1
  83. data/app/services/katello/product_content_finder.rb +11 -8
  84. data/app/services/katello/pulp3/content_view_version/export.rb +8 -65
  85. data/app/services/katello/pulp3/content_view_version/export_validation_error.rb +7 -0
  86. data/app/services/katello/pulp3/content_view_version/export_validator.rb +105 -0
  87. data/app/services/katello/pulp3/content_view_version/importable_products.rb +1 -1
  88. data/app/services/katello/pulp3/content_view_version/syncable_format_export.rb +7 -1
  89. data/app/services/katello/pulp3/erratum.rb +1 -0
  90. data/app/services/katello/pulp3/module_stream.rb +26 -11
  91. data/app/services/katello/pulp3/repository/yum.rb +2 -1
  92. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -1
  93. data/app/services/katello/registration_manager.rb +46 -26
  94. data/app/services/katello/repository_type.rb +3 -9
  95. data/app/services/katello/simple_package.rb +22 -0
  96. data/app/views/foreman/smart_proxies/_content_sync.html.erb +1 -0
  97. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +1 -0
  98. data/app/views/katello/api/v2/content_facet/base.json.rabl +23 -2
  99. data/app/views/katello/api/v2/content_facet/show.json.rabl +11 -8
  100. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -1
  101. data/app/views/katello/api/v2/hosts/base.json.rabl +22 -2
  102. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -2
  103. data/config/initializers/monkeys.rb +0 -2
  104. data/config/routes/api/registry.rb +8 -7
  105. data/config/routes/api/v2.rb +0 -2
  106. data/config/routes.rb +3 -0
  107. data/db/migrate/20200429153103_installed_package_bad_nvrea.rb +1 -1
  108. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +7 -3
  109. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +1 -1
  110. data/db/migrate/20220929204746_add_content_view_environment_content_facet.rb +52 -0
  111. data/db/migrate/20221123212341_remove_pulp_docker_registry_port_setting.rb +5 -0
  112. data/db/migrate/20230119003859_ensure_repo_username_password_nil_not_blank.rb +1 -1
  113. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  114. data/engines/bastion/app/assets/stylesheets/bastion/bastion.scss +4 -0
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +2 -4
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +0 -1
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -1
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +11 -3
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +1 -1
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +8 -4
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +5485 -0
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +5397 -0
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +5658 -0
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +5284 -0
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +5231 -0
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +5275 -0
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +5389 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +5212 -0
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +5145 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +9 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +2 -2
  133. data/lib/katello/engine.rb +2 -1
  134. data/lib/katello/permission_creator.rb +2 -4
  135. data/lib/katello/permissions/registry_permissions.rb +5 -5
  136. data/lib/katello/plugin.rb +22 -14
  137. data/lib/katello/repository_types/README.md +136 -19
  138. data/lib/katello/repository_types/deb.rb +0 -1
  139. data/lib/katello/repository_types/docker.rb +0 -1
  140. data/lib/katello/repository_types/file.rb +0 -1
  141. data/lib/katello/repository_types/yum.rb +0 -4
  142. data/lib/katello/tasks/clean_candlepin_orphaned_products.rake +38 -0
  143. data/lib/katello/tasks/clean_orphaned_facets.rb +20 -0
  144. data/lib/katello/tasks/reimport.rake +1 -2
  145. data/lib/katello/tasks/repository.rake +1 -22
  146. data/lib/katello/tasks/reset.rake +1 -0
  147. data/lib/katello/tasks/upgrades/4.8/fix_incorrect_providers.rake +29 -0
  148. data/lib/katello/version.rb +1 -1
  149. data/lib/katello.rb +0 -5
  150. data/locale/bn/katello.po +69 -27
  151. data/locale/cs/katello.po +69 -27
  152. data/locale/de/katello.po +78 -36
  153. data/locale/en/katello.po +69 -27
  154. data/locale/es/katello.po +70 -28
  155. data/locale/fr/katello.po +73 -31
  156. data/locale/gu/katello.po +69 -27
  157. data/locale/hi/katello.po +69 -27
  158. data/locale/it/katello.po +69 -27
  159. data/locale/ja/katello.po +73 -31
  160. data/locale/ka/katello.po +73 -31
  161. data/locale/katello.pot +335 -262
  162. data/locale/kn/katello.po +69 -27
  163. data/locale/ko/katello.po +69 -27
  164. data/locale/mr/katello.po +69 -27
  165. data/locale/or/katello.po +69 -27
  166. data/locale/pa/katello.po +69 -27
  167. data/locale/pt/katello.po +69 -27
  168. data/locale/pt_BR/katello.po +70 -28
  169. data/locale/ru/katello.po +70 -28
  170. data/locale/ta/katello.po +69 -27
  171. data/locale/te/katello.po +69 -27
  172. data/locale/zh_CN/katello.po +73 -31
  173. data/locale/zh_TW/katello.po +70 -28
  174. data/webpack/components/Content/ContentPage.js +51 -35
  175. data/webpack/components/Content/__tests__/ContentPage.test.js +2 -4
  176. data/webpack/components/Content/__tests__/__snapshots__/ContentPage.test.js.snap +22 -3
  177. data/webpack/components/Table/EmptyStateMessage.js +14 -11
  178. data/webpack/components/Table/MainTable.js +36 -15
  179. data/webpack/components/Table/TableWrapper.js +25 -25
  180. data/webpack/components/Table/__test__/emptyStateMessage.test.js +51 -0
  181. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +5 -4
  182. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  183. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +1 -17
  184. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +18 -9
  185. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +1 -2
  186. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +1 -2
  187. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +1 -2
  188. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +47 -27
  189. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +1 -2
  190. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +2 -21
  191. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +1 -28
  192. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +1 -10
  193. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +1 -18
  194. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +1 -17
  195. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +1 -15
  196. data/webpack/global_test_setup.js +1 -1
  197. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +12 -10
  198. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +6 -0
  199. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -0
  200. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +3 -10
  201. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +1 -0
  202. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +3 -3
  203. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +1 -0
  204. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +12 -4
  205. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +7 -4
  206. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -8
  207. data/webpack/scenes/AlternateContentSources/helpers.js +1 -1
  208. data/webpack/scenes/Content/Details/ContentRepositories.js +5 -4
  209. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +1 -12
  210. data/webpack/scenes/Content/Table/ContentTable.js +2 -1
  211. data/webpack/scenes/Content/__tests__/contentTable.test.js +1 -14
  212. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +1 -25
  213. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -1
  214. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +44 -31
  215. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -0
  216. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +6 -1
  217. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +2 -1
  218. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +2 -1
  219. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +3 -1
  220. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +3 -1
  221. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +3 -1
  222. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +2 -1
  223. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +2 -0
  224. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  225. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVDebMatchContentModal.js +1 -1
  226. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -1
  227. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +35 -33
  228. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +48 -45
  229. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +58 -24
  230. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +64 -0
  231. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +36 -20
  232. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +40 -23
  233. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +0 -13
  234. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +0 -13
  235. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -1
  236. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +1 -10
  237. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +2 -1
  238. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +1 -10
  239. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +21 -9
  240. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +4 -0
  241. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/CVVersionCompare.test.js +1 -32
  242. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +3 -1
  243. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +1 -15
  244. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -1
  245. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -2
  246. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +31 -9
  247. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -0
  248. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +30 -14
  249. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +1 -1
  250. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +55 -120
  251. data/webpack/scenes/ContentViews/components/WizardHeader.js +1 -1
  252. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +1 -1
  253. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +8 -1
  254. data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +3 -9
  255. data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamPage.test.js.snap +7 -1
  256. data/webpack/scenes/RedHatRepositories/components/Search.js +22 -16
  257. data/webpack/scenes/RedHatRepositories/index.scss +20 -1
  258. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +12 -1
  259. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +1 -1
  260. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +1 -1
  261. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +21 -19
  262. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +34 -1
  263. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +20 -7
  264. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +0 -1
  265. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +65 -15
  266. metadata +50 -116
  267. data/app/lib/actions/katello/pulp_selector.rb +0 -24
  268. data/app/lib/actions/katello/repository/correct_checksum.rb +0 -24
  269. data/app/lib/actions/katello/repository/destroy_package_group.rb +0 -26
  270. data/app/lib/actions/katello/repository/upload_package_group.rb +0 -24
  271. data/app/lib/actions/pulp/abstract.rb +0 -37
  272. data/app/lib/actions/pulp/abstract_async_task.rb +0 -154
  273. data/app/lib/actions/pulp/abstract_async_task_group.rb +0 -94
  274. data/app/lib/actions/pulp/consumer/sync_capsule.rb +0 -45
  275. data/app/lib/actions/pulp/consumer/unassociate_units.rb +0 -20
  276. data/app/lib/actions/pulp/expect_one_task.rb +0 -11
  277. data/app/lib/actions/pulp/orchestration/orphan_cleanup/remove_orphans.rb +0 -16
  278. data/app/lib/actions/pulp/orchestration/repository/copy_all_units.rb +0 -19
  279. data/app/lib/actions/pulp/orchestration/repository/delete.rb +0 -15
  280. data/app/lib/actions/pulp/orchestration/repository/refresh.rb +0 -14
  281. data/app/lib/actions/pulp/orchestration/repository/refresh_if_needed.rb +0 -13
  282. data/app/lib/actions/pulp/orchestration/repository/refresh_repos.rb +0 -19
  283. data/app/lib/actions/pulp/orchestration/repository/remove_units.rb +0 -14
  284. data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -34
  285. data/app/lib/actions/pulp/orchestration/repository/sync.rb +0 -18
  286. data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +0 -37
  287. data/app/lib/actions/pulp/orphan_cleanup/remove_orphans.rb +0 -15
  288. data/app/lib/actions/pulp/orphan_cleanup/remove_unneeded_repos.rb +0 -16
  289. data/app/lib/actions/pulp/repository/abstract_copy_content.rb +0 -45
  290. data/app/lib/actions/pulp/repository/abstract_remove_content.rb +0 -32
  291. data/app/lib/actions/pulp/repository/clear.rb +0 -18
  292. data/app/lib/actions/pulp/repository/copy_all_units.rb +0 -30
  293. data/app/lib/actions/pulp/repository/copy_units.rb +0 -25
  294. data/app/lib/actions/pulp/repository/create.rb +0 -28
  295. data/app/lib/actions/pulp/repository/create_in_plan.rb +0 -15
  296. data/app/lib/actions/pulp/repository/create_upload_request.rb +0 -20
  297. data/app/lib/actions/pulp/repository/delete_upload_request.rb +0 -19
  298. data/app/lib/actions/pulp/repository/destroy.rb +0 -28
  299. data/app/lib/actions/pulp/repository/distributor_publish.rb +0 -25
  300. data/app/lib/actions/pulp/repository/download.rb +0 -16
  301. data/app/lib/actions/pulp/repository/import_upload.rb +0 -19
  302. data/app/lib/actions/pulp/repository/presenters/abstract_sync_presenter.rb +0 -47
  303. data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +0 -95
  304. data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +0 -103
  305. data/app/lib/actions/pulp/repository/presenters/file_unit_presenter.rb +0 -42
  306. data/app/lib/actions/pulp/repository/presenters/yum_presenter.rb +0 -131
  307. data/app/lib/actions/pulp/repository/refresh.rb +0 -21
  308. data/app/lib/actions/pulp/repository/regenerate_applicability.rb +0 -21
  309. data/app/lib/actions/pulp/repository/remove_distribution.rb +0 -11
  310. data/app/lib/actions/pulp/repository/remove_units.rb +0 -44
  311. data/app/lib/actions/pulp/repository/sync.rb +0 -99
  312. data/app/lib/actions/pulp/repository/upload_file.rb +0 -28
  313. data/app/lib/actions/pulp/repository_group/create.rb +0 -31
  314. data/app/lib/actions/pulp/repository_group/delete.rb +0 -17
  315. data/app/lib/actions/pulp/repository_group/export.rb +0 -51
  316. data/app/lib/katello/util/package_clause_generator.rb +0 -77
  317. data/app/models/katello/glue/pulp/pulp_errors.rb +0 -9
  318. data/app/models/katello/glue/pulp/repo.rb +0 -353
  319. data/app/models/katello/pulp_sync_status.rb +0 -165
  320. data/app/models/katello/pulp_task_status.rb +0 -63
  321. data/app/services/katello/pulp/content.rb +0 -24
  322. data/app/services/katello/pulp/importer_comparison.rb +0 -28
  323. data/app/services/katello/pulp/repository/deb.rb +0 -61
  324. data/app/services/katello/pulp/repository/docker.rb +0 -82
  325. data/app/services/katello/pulp/repository/file.rb +0 -52
  326. data/app/services/katello/pulp/repository/yum.rb +0 -205
  327. data/app/services/katello/pulp/repository.rb +0 -327
  328. data/app/services/katello/pulp/server.rb +0 -35
  329. data/app/services/katello/pulp/simple_package.rb +0 -24
  330. data/app/services/katello/pulp/smart_proxy_repository.rb +0 -52
  331. data/lib/monkeys/fix_deb_optimized_sync.rb +0 -35
  332. data/lib/monkeys/fix_pulp_container_path.rb +0 -35
  333. data/locale/zanata.xml +0 -30
  334. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentSearch.fixtures.json +0 -33
@@ -7,6 +7,7 @@ import { ADDED, cvFilterDetailsKey, NOT_ADDED } from '../../../ContentViewsConst
7
7
  import {
8
8
  nockInstance,
9
9
  assertNockRequest,
10
+ mockAutocomplete,
10
11
  } from '../../../../../test-utils/nockWrapper';
11
12
  import api from '../../../../../services/api';
12
13
 
@@ -27,6 +28,13 @@ const cvBulkRemoveFilterRulesPath = api.getApiUrl('/content_view_filters/1/remov
27
28
  const cvBulkAddFilterRulesPath = api.getApiUrl('/content_view_filters/1/add_filter_rules');
28
29
  const cvGetAllReposPath = api.getApiUrl('/content_views/1/repositories');
29
30
 
31
+ const autocompleteUrl = '/package_groups/auto_complete_search';
32
+ const autocompleteQuery = {
33
+ filterid: 1,
34
+ organization_id: 1,
35
+ search: '',
36
+ };
37
+
30
38
  const packageGroupsPath = api.getApiUrl('/package_groups');
31
39
  const renderOptions = {
32
40
  apiNamespace: cvFilterDetailsKey(1, 1),
@@ -41,6 +49,7 @@ const withCVRoute = component => <Route path="/content_views/:id([0-9]+)#/filter
41
49
  jest.mock('../../../../../components/Search', () => () => 'mocked!');
42
50
 
43
51
  test('Can enable and disable add filter button', async (done) => {
52
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
44
53
  const { name: cvFilterName } = cvFilterDetails;
45
54
  const cvFilterScope = nockInstance
46
55
  .get(cvFilterDetailsPath)
@@ -74,12 +83,14 @@ test('Can enable and disable add filter button', async (done) => {
74
83
  expect(getByLabelText('add_filter_rule')).toHaveAttribute('aria-disabled', 'false');
75
84
  });
76
85
 
86
+ assertNockRequest(autocompleteScope);
77
87
  assertNockRequest(cvFilterScope);
78
88
  assertNockRequest(cvFiltersScope);
79
89
  assertNockRequest(packageGroupsScope, done);
80
90
  });
81
91
 
82
92
  test('Can remove a filter rule', async (done) => {
93
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
83
94
  const { rules } = cvFilterDetails;
84
95
  const { name } = rules[0];
85
96
 
@@ -126,6 +137,7 @@ test('Can remove a filter rule', async (done) => {
126
137
  fireEvent.click(getByText('Remove'));
127
138
 
128
139
 
140
+ assertNockRequest(autocompleteScope);
129
141
  assertNockRequest(cvFilterScope);
130
142
  assertNockRequest(cvFiltersScope);
131
143
  assertNockRequest(cvFiltersRuleScope);
@@ -135,6 +147,7 @@ test('Can remove a filter rule', async (done) => {
135
147
  });
136
148
 
137
149
  test('Can add a filter rule', async (done) => {
150
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
138
151
  const { rules } = cvFilterDetails;
139
152
  const { name } = rules[0];
140
153
 
@@ -183,6 +196,7 @@ test('Can add a filter rule', async (done) => {
183
196
  fireEvent.click(getByText('Add'));
184
197
 
185
198
 
199
+ assertNockRequest(autocompleteScope);
186
200
  assertNockRequest(cvFilterScope);
187
201
  assertNockRequest(cvFiltersScope);
188
202
  assertNockRequest(cvFiltersRuleScope);
@@ -192,6 +206,7 @@ test('Can add a filter rule', async (done) => {
192
206
  });
193
207
 
194
208
  test('Can bulk remove filter rules', async (done) => {
209
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
195
210
  const { rules } = cvFilterDetails;
196
211
  const { name } = rules[0];
197
212
 
@@ -243,6 +258,7 @@ test('Can bulk remove filter rules', async (done) => {
243
258
  expect(getByLabelText('bulk_remove')).toBeInTheDocument();
244
259
  fireEvent.click(getByLabelText('bulk_remove'));
245
260
 
261
+ assertNockRequest(autocompleteScope);
246
262
  assertNockRequest(cvFilterScope);
247
263
  assertNockRequest(cvFiltersScope);
248
264
  assertNockRequest(cvFiltersRuleBulkDeleteScope);
@@ -252,6 +268,7 @@ test('Can bulk remove filter rules', async (done) => {
252
268
  });
253
269
 
254
270
  test('Can bulk add filter rules', async (done) => {
271
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
255
272
  const { rules } = cvFilterDetails;
256
273
  const { name } = rules[0];
257
274
 
@@ -300,6 +317,7 @@ test('Can bulk add filter rules', async (done) => {
300
317
  expect(getByLabelText('add_filter_rule')).toBeInTheDocument();
301
318
  fireEvent.click(getByLabelText('add_filter_rule'));
302
319
 
320
+ assertNockRequest(autocompleteScope);
303
321
  assertNockRequest(cvFilterScope);
304
322
  assertNockRequest(cvFiltersScope);
305
323
  assertNockRequest(cvFiltersRuleBulkAddScope);
@@ -308,6 +326,26 @@ test('Can bulk add filter rules', async (done) => {
308
326
  });
309
327
 
310
328
  test('Can show affected repository tab on dropdown selection and add repos', async (done) => {
329
+ const autocompleteScope = mockAutocomplete(
330
+ nockInstance,
331
+ autocompleteUrl,
332
+ autocompleteQuery,
333
+ [],
334
+ 2,
335
+ );
336
+ const autocompleteUrlRepo = '/repositories/auto_complete_search';
337
+ const autocompleteQueryRepo = {
338
+ organization_id: 1,
339
+ search: '',
340
+ };
341
+ const autocompleteScopeRepo = mockAutocomplete(
342
+ nockInstance,
343
+ autocompleteUrlRepo,
344
+ autocompleteQueryRepo,
345
+ [],
346
+ 2,
347
+ );
348
+
311
349
  const { rules } = cvFilterDetails;
312
350
  const { name } = rules[0];
313
351
  const { results } = cvAllRepos;
@@ -380,10 +418,31 @@ test('Can show affected repository tab on dropdown selection and add repos', asy
380
418
  assertNockRequest(bulkAddReposScope);
381
419
  assertNockRequest(cvFilterScope);
382
420
  assertNockRequest(cvAllReposScope);
421
+ assertNockRequest(autocompleteScope);
422
+ assertNockRequest(autocompleteScopeRepo);
383
423
  assertNockRequest(packageGroupsScope, done);
384
424
  });
385
425
 
386
426
  test('Can show affected repository tab and remove affected repos', async (done) => {
427
+ const autocompleteScope = mockAutocomplete(
428
+ nockInstance,
429
+ autocompleteUrl,
430
+ autocompleteQuery,
431
+ [],
432
+ 2,
433
+ );
434
+ const autocompleteUrlRepo = '/repositories/auto_complete_search';
435
+ const autocompleteQueryRepo = {
436
+ organization_id: 1,
437
+ search: '',
438
+ };
439
+ const autocompleteScopeRepo = mockAutocomplete(
440
+ nockInstance,
441
+ autocompleteUrlRepo,
442
+ autocompleteQueryRepo,
443
+ [],
444
+ 2,
445
+ );
387
446
  const { rules } = cvFilterDetailsAffectedRepos;
388
447
  const { name } = rules[0];
389
448
  const { results } = cvAllRepos;
@@ -444,6 +503,9 @@ test('Can show affected repository tab and remove affected repos', async (done)
444
503
  fireEvent.click(getAllByLabelText('bulk_actions')[1]);
445
504
  expect(getByLabelText('bulk_remove')).toHaveAttribute('aria-disabled', 'false');
446
505
  fireEvent.click(getByLabelText('bulk_remove'));
506
+
507
+ assertNockRequest(autocompleteScope);
508
+ assertNockRequest(autocompleteScopeRepo);
447
509
  assertNockRequest(cvFilterScope);
448
510
  assertNockRequest(cvFiltersScope);
449
511
  assertNockRequest(cvAllReposScope);
@@ -454,6 +516,7 @@ test('Can show affected repository tab and remove affected repos', async (done)
454
516
  });
455
517
 
456
518
  test('Can filter by added/not added rules', async (done) => {
519
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
457
520
  const { rules } = cvFilterDetails;
458
521
  const { name } = rules[0];
459
522
 
@@ -505,6 +568,7 @@ test('Can filter by added/not added rules', async (done) => {
505
568
  getByLabelText(NOT_ADDED).click();
506
569
  });
507
570
 
571
+ assertNockRequest(autocompleteScope);
508
572
  assertNockRequest(cvFilterScope);
509
573
  assertNockRequest(cvFiltersScope);
510
574
  assertNockRequest(packageGroupsScope, done);
@@ -8,7 +8,6 @@ import {
8
8
  nockInstance,
9
9
  assertNockRequest,
10
10
  mockAutocomplete,
11
- mockSetting,
12
11
  } from '../../../../../test-utils/nockWrapper';
13
12
  import api from '../../../../../services/api';
14
13
  import allPackageGroups from './allFilterPackageGroups.fixtures.json';
@@ -27,21 +26,14 @@ const renderOptions = {
27
26
  initialIndex: 1,
28
27
  },
29
28
  };
29
+ const autocompleteQuery = {
30
+ filterid: 1,
31
+ organization_id: 1,
32
+ search: '',
33
+ };
30
34
 
31
35
  const withCVRoute = component => <Route path="/content_views/:id([0-9]+)#/filters/:filterId([0-9]+)">{component}</Route>;
32
36
 
33
- let searchDelayScope;
34
- let autoSearchScope;
35
- beforeEach(() => {
36
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
37
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
38
- });
39
-
40
- afterEach(() => {
41
- assertNockRequest(searchDelayScope);
42
- assertNockRequest(autoSearchScope);
43
- });
44
-
45
37
  test('Can show filter details and package groups on page load', async (done) => {
46
38
  const { name: cvFilterName } = cvFilterDetails;
47
39
  const cvFilterScope = nockInstance
@@ -56,7 +48,7 @@ test('Can show filter details and package groups on page load', async (done) =>
56
48
  .get(packageGroupsPath)
57
49
  .query(true)
58
50
  .reply(200, allPackageGroups);
59
- const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
51
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
60
52
  const { getByText, queryByText } =
61
53
  renderWithRedux(withCVRoute(<ContentViewFilterDetails
62
54
  cvId={1}
@@ -83,7 +75,25 @@ test('Can search for package groups in package group filter', async (done) => {
83
75
  const { name: cvFilterName } = cvFilterDetails;
84
76
  const { name: firstPackageGroupName } = firstPackageGroup;
85
77
  const { name: lastPackageGroupName } = lastPackageGroup;
86
- const searchQueryMatcher = actualParams => actualParams?.search?.includes(lastPackageGroupName);
78
+ const searchQueryMatcher = {
79
+ filterid: 1,
80
+ organization_id: 1,
81
+ search: `name = ${lastPackageGroupName}`,
82
+ };
83
+ const searchResults = [
84
+ {
85
+ completed: `name = ${lastPackageGroupName}`,
86
+ part: 'and',
87
+ label: `name = ${lastPackageGroupName} and`,
88
+ category: 'Operators',
89
+ },
90
+ {
91
+ completed: `name = ${lastPackageGroupName}`,
92
+ part: 'or',
93
+ label: `name = ${lastPackageGroupName} or`,
94
+ category: 'Operators',
95
+ },
96
+ ];
87
97
 
88
98
  const cvFilterScope = nockInstance
89
99
  .get(cvFilterDetailsPath)
@@ -103,8 +113,13 @@ test('Can search for package groups in package group filter', async (done) => {
103
113
  .reply(200, { results: [lastPackageGroup] });
104
114
 
105
115
  const autocompleteScope =
106
- mockAutocomplete(nockInstance, autocompleteUrl);
107
- const withSearchScope = mockAutocomplete(nockInstance, autocompleteUrl, searchQueryMatcher);
116
+ mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
117
+ const withSearchScope = mockAutocomplete(
118
+ nockInstance,
119
+ autocompleteUrl,
120
+ searchQueryMatcher,
121
+ searchResults,
122
+ );
108
123
  const { getByText, queryByText, getByLabelText } =
109
124
  renderWithRedux(withCVRoute(<ContentViewFilterDetails
110
125
  cvId={1}
@@ -118,10 +133,11 @@ test('Can search for package groups in package group filter', async (done) => {
118
133
  });
119
134
 
120
135
  // Search and only searched result shows
121
- fireEvent.change(getByLabelText(/text input for search/i), { target: { value: `name = ${lastPackageGroupName}` } });
136
+ getByLabelText('Search input').focus();
137
+ fireEvent.change(getByLabelText('Search input'), { target: { value: `name = ${lastPackageGroupName}` } });
122
138
  await patientlyWaitFor(() => {
123
- expect(getByText(lastPackageGroupName)).toBeInTheDocument();
124
- expect(queryByText(firstPackageGroupName)).not.toBeInTheDocument();
139
+ expect(getByText(`name = ${lastPackageGroupName} and`)).toBeInTheDocument();
140
+ expect(queryByText(`name = ${firstPackageGroupName} and`)).not.toBeInTheDocument();
125
141
  });
126
142
 
127
143
  assertNockRequest(autocompleteScope);
@@ -3,7 +3,7 @@ import { renderWithRedux, patientlyWaitFor, fireEvent } from 'react-testing-lib-
3
3
  import { Route } from 'react-router-dom';
4
4
 
5
5
  import api from '../../../../../services/api';
6
- import { nockInstance, assertNockRequest, mockAutocomplete, mockSetting } from '../../../../../test-utils/nockWrapper';
6
+ import { nockInstance, assertNockRequest, mockAutocomplete } from '../../../../../test-utils/nockWrapper';
7
7
  import ContentViewFilters from '../ContentViewFilters';
8
8
  import CONTENT_VIEWS_KEY from '../../../ContentViewsConstants';
9
9
  import cvFilterFixtures from './contentViewFilters.fixtures.json';
@@ -27,19 +27,10 @@ const autocompleteUrl = '/content_view_filters/auto_complete_search';
27
27
 
28
28
  let firstFilter;
29
29
  let lastFilter;
30
- let searchDelayScope;
31
- let autoSearchScope;
32
30
  beforeEach(() => {
33
31
  const { results } = cvFilterFixtures;
34
32
  [firstFilter] = results;
35
33
  [lastFilter] = results.slice(-1);
36
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
37
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
38
- });
39
-
40
- afterEach(() => {
41
- assertNockRequest(searchDelayScope);
42
- assertNockRequest(autoSearchScope);
43
34
  });
44
35
 
45
36
  test('Can call API and show filters on page load', async (done) => {
@@ -68,17 +59,39 @@ test('Can call API and show filters on page load', async (done) => {
68
59
 
69
60
  test('Can search for filter', async (done) => {
70
61
  const { name, description } = firstFilter;
71
- const searchQueryMatcher = actualParams => actualParams?.search?.includes(name);
72
- const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
73
- const withSearchScope = mockAutocomplete(nockInstance, autocompleteUrl, searchQueryMatcher);
62
+ const autocompleteQuery = {
63
+ organization_id: 1,
64
+ search: '',
65
+ };
66
+ const searchQueryMatcher = {
67
+ organization_id: 1,
68
+ search: 'name = f5',
69
+ };
70
+ const searchResults = [
71
+ {
72
+ completed: 'name = f5',
73
+ part: 'and',
74
+ label: 'name = f5 and',
75
+ category: 'Operators',
76
+ },
77
+ {
78
+ completed: 'name = f5',
79
+ part: 'or',
80
+ label: 'name = f5 or',
81
+ category: 'Operators',
82
+ },
83
+ ];
84
+ const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl, autocompleteQuery);
85
+ const withSearchScope = mockAutocomplete(
86
+ nockInstance,
87
+ autocompleteUrl,
88
+ searchQueryMatcher,
89
+ searchResults,
90
+ );
74
91
  const initialScope = nockInstance
75
92
  .get(cvFilters)
76
93
  .query(true)
77
94
  .reply(200, cvFilterFixtures);
78
- const searchResultScope = nockInstance
79
- .get(cvFilters)
80
- .query(searchQueryMatcher)
81
- .reply(200, { results: [firstFilter] });
82
95
 
83
96
  const { queryByText, getByLabelText, getByText } = renderWithRedux(
84
97
  withCVRoute(<ContentViewFilters cvId={1} details={details} />),
@@ -86,19 +99,23 @@ test('Can search for filter', async (done) => {
86
99
  );
87
100
 
88
101
  // Looking for description because the name is in the search bar and could match
89
- await patientlyWaitFor(() => expect(getByText(description)).toBeInTheDocument());
102
+ await patientlyWaitFor(() => {
103
+ expect(getByText(description)).toBeInTheDocument();
104
+ expect(getByText(name)).toBeInTheDocument();
105
+ expect(getByText('f5')).toBeInTheDocument();
106
+ });
90
107
  // Search for a filter by name
91
- fireEvent.change(getByLabelText(/text input for search/i), { target: { value: `name = ${name}` } });
108
+ getByLabelText('Search input').focus();
109
+ fireEvent.change(getByLabelText('Search input'), { target: { value: `name = ${lastFilter.name}` } });
92
110
  // Only the first filter should be showing, not the last one
93
111
  await patientlyWaitFor(() => {
94
- expect(getByText(description)).toBeInTheDocument();
95
- expect(queryByText(lastFilter.name)).not.toBeInTheDocument();
112
+ expect(getByText(`name = ${lastFilter.name} and`)).toBeInTheDocument();
113
+ expect(queryByText(`name = ${name} and`)).not.toBeInTheDocument();
96
114
  });
97
115
 
98
116
  assertNockRequest(autocompleteScope);
99
- assertNockRequest(withSearchScope);
100
117
  assertNockRequest(initialScope);
101
- assertNockRequest(searchResultScope, done);
118
+ assertNockRequest(withSearchScope, done);
102
119
  });
103
120
 
104
121
  test('Can remove a filter', async (done) => {
@@ -8,7 +8,6 @@ import {
8
8
  nockInstance,
9
9
  assertNockRequest,
10
10
  mockAutocomplete,
11
- mockSetting,
12
11
  } from '../../../../../test-utils/nockWrapper';
13
12
  import api from '../../../../../services/api';
14
13
  import allErrata from './allFilterErrata.fixtures.json';
@@ -37,18 +36,6 @@ const renderOptions = {
37
36
 
38
37
  const withCVRoute = component => <Route path="/content_views/:id([0-9]+)#/filters/:filterId([0-9]+)">{component}</Route>;
39
38
 
40
- let searchDelayScope;
41
- let autoSearchScope;
42
- beforeEach(() => {
43
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
44
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
45
- });
46
-
47
- afterEach(() => {
48
- assertNockRequest(searchDelayScope);
49
- assertNockRequest(autoSearchScope);
50
- });
51
-
52
39
  test('Can enable and disable add filter button', async (done) => {
53
40
  const { name: cvFilterName } = cvFilterDetails;
54
41
  const cvFilterScope = nockInstance
@@ -8,7 +8,6 @@ import {
8
8
  nockInstance,
9
9
  assertNockRequest,
10
10
  mockAutocomplete,
11
- mockSetting,
12
11
  } from '../../../../../test-utils/nockWrapper';
13
12
  import api from '../../../../../services/api';
14
13
  import allModuleStreams from './allFilterModulesStreams.fixtures.json';
@@ -37,18 +36,6 @@ const renderOptions = {
37
36
 
38
37
  const withCVRoute = component => <Route path="/content_views/:id([0-9]+)#/filters/:filterId([0-9]+)">{component}</Route>;
39
38
 
40
- let searchDelayScope;
41
- let autoSearchScope;
42
- beforeEach(() => {
43
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
44
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
45
- });
46
-
47
- afterEach(() => {
48
- assertNockRequest(searchDelayScope);
49
- assertNockRequest(autoSearchScope);
50
- });
51
-
52
39
  test('Can enable and disable add filter button', async (done) => {
53
40
  const { name: cvFilterName } = cvFilterDetails;
54
41
  const cvFilterScope = nockInstance
@@ -83,7 +83,8 @@ const ContentViewHistories = ({ cvId }) => {
83
83
  }}
84
84
  ouiaId="content-view-history-table"
85
85
  variant={TableVariant.compact}
86
- autocompleteEndpoint={`/content_views/${cvId}/history/auto_complete_search`}
86
+ autocompleteEndpoint={`/katello/api/v2/content_views/${cvId}/history`}
87
+ bookmarkController="katello_content_view_histories"
87
88
  fetchItems={useCallback(params => getContentViewHistories(cvId, params), [cvId])}
88
89
  >
89
90
  <Thead>
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { renderWithRedux, patientlyWaitFor } from 'react-testing-lib-wrapper';
3
3
 
4
- import { nockInstance, assertNockRequest, mockAutocomplete, mockSetting } from '../../../../../test-utils/nockWrapper';
4
+ import { nockInstance, assertNockRequest, mockAutocomplete } from '../../../../../test-utils/nockWrapper';
5
5
  import api from '../../../../../services/api';
6
6
  import CONTENT_VIEWS_KEY from '../../../ContentViewsConstants';
7
7
  import ContentViewHistories from '../ContentViewHistories';
@@ -12,19 +12,10 @@ const cvHistories = api.getApiUrl('/content_views/1/history');
12
12
  const autocompleteUrl = '/content_views/1/history/auto_complete_search';
13
13
 
14
14
  let firstHistory;
15
- let searchDelayScope;
16
- let autoSearchScope;
17
15
 
18
16
  beforeEach(() => {
19
17
  const { results } = historyData;
20
18
  [firstHistory] = results;
21
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
22
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
23
- });
24
-
25
- afterEach(() => {
26
- assertNockRequest(searchDelayScope);
27
- assertNockRequest(autoSearchScope);
28
19
  });
29
20
 
30
21
  test('Can call API and show history on page load', async (done) => {
@@ -251,7 +251,8 @@ const ContentViewRepositories = ({ cvId, details }) => {
251
251
  ouiaId="content-view-repositories-table"
252
252
  {...selectAll}
253
253
  variant={TableVariant.compact}
254
- autocompleteEndpoint="/repositories/auto_complete_search"
254
+ autocompleteEndpoint="/katello/api/v2/repositories"
255
+ bookmarkController="katello_content_view_repositories"
255
256
  fetchItems={useCallback(params => getCVReposWithOptions(params), [getCVReposWithOptions])}
256
257
  additionalListeners={[typeSelected, statusSelected]}
257
258
  displaySelectAllCheckbox={hasPermission(permissions, 'edit_content_views')}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { renderWithRedux, patientlyWaitFor, act } from 'react-testing-lib-wrapper';
3
3
 
4
- import { nockInstance, assertNockRequest, mockAutocomplete, mockSetting } from '../../../../../test-utils/nockWrapper';
4
+ import { nockInstance, assertNockRequest, mockAutocomplete } from '../../../../../test-utils/nockWrapper';
5
5
  import api from '../../../../../services/api';
6
6
  import CONTENT_VIEWS_KEY from '../../../ContentViewsConstants';
7
7
  import ContentViewRepositories from '../ContentViewRepositories';
@@ -17,14 +17,10 @@ const repoTypesResponse = [{ name: 'deb' }, { name: 'docker' }, { name: 'file' }
17
17
  const cvDetailsPath = api.getApiUrl('/content_views/1');
18
18
 
19
19
  let firstRepo;
20
- let searchDelayScope;
21
- let autoSearchScope;
22
20
 
23
21
  beforeEach(() => {
24
22
  const { results } = repoData;
25
23
  [firstRepo] = results;
26
- searchDelayScope = mockSetting(nockInstance, 'autosearch_delay', 0);
27
- autoSearchScope = mockSetting(nockInstance, 'autosearch_while_typing');
28
24
  nockInstance
29
25
  .persist() // match any query to this endpoint, gets cleaned up by `nock.cleanAll()`
30
26
  .get(api.getApiUrl('/repositories/repository_types'))
@@ -32,11 +28,6 @@ beforeEach(() => {
32
28
  .reply(200, repoTypesResponse);
33
29
  });
34
30
 
35
- afterEach(() => {
36
- assertNockRequest(searchDelayScope);
37
- assertNockRequest(autoSearchScope);
38
- });
39
-
40
31
  jest.mock('react-intl', () => ({ addLocaleData: () => { }, FormattedDate: () => 'mocked' }));
41
32
 
42
33
  test('Can enable and disable add repositories button', async (done) => {
@@ -47,6 +47,8 @@ export const TableType = PropTypes.shape({
47
47
  responseSelector: PropTypes.func,
48
48
  statusSelector: PropTypes.func,
49
49
  autocompleteEndpoint: PropTypes.string,
50
+ autocompleteQueryParams: PropTypes.shape({}),
51
+ bookmarkController: PropTypes.string,
50
52
  fetchItems: PropTypes.func,
51
53
  columnHeaders:
52
54
  PropTypes.arrayOf(PropTypes.shape({
@@ -90,7 +92,9 @@ export default ({
90
92
  selectRepositoriesComparison(state, versionOneId, versionTwoId, viewBy),
91
93
  statusSelector: state =>
92
94
  selectRepositoriesComparisonStatus(state, versionOneId, versionTwoId, viewBy),
93
- autocompleteEndpoint: '/repositories/auto_complete_search?archived=true',
95
+ autocompleteEndpoint: '/katello/api/v2/repositories',
96
+ autocompleteQueryParams: { archived: true },
97
+ bookmarkController: 'katello_content_view_repositories',
94
98
  fetchItems: params => getRepositoriesComparison(
95
99
  versionOneId,
96
100
  versionTwoId,
@@ -133,7 +137,8 @@ export default ({
133
137
  selectRPMPackagesComparison(state, versionOneId, versionTwoId, viewBy),
134
138
  statusSelector: state =>
135
139
  selectRPMPackagesComparisonStatus(state, versionOneId, versionTwoId, viewBy),
136
- autocompleteEndpoint: '/packages/auto_complete_search',
140
+ autocompleteEndpoint: 'katello/api/v2/packages',
141
+ bookmarkController: 'katello_content_view_components',
137
142
  fetchItems: params => getRPMPackagesComparison(
138
143
  versionOneId,
139
144
  versionTwoId,
@@ -170,7 +175,8 @@ export default ({
170
175
  selectPackageGroupsComparison(state, versionOneId, versionTwoId, viewBy),
171
176
  statusSelector: state =>
172
177
  selectPackageGroupsComparisonStatus(state, versionOneId, versionTwoId, viewBy),
173
- autocompleteEndpoint: '/package_groups/auto_complete_search',
178
+ autocompleteEndpoint: '/katello/api/v2/package_groups',
179
+ bookmarkController: 'katello_content_view_components',
174
180
  fetchItems: params => getPackageGroupsComparison(versionOneId, versionTwoId, viewBy, params),
175
181
  columnHeaders: [
176
182
  { title: __('Name'), getProperty: item => item?.name },
@@ -189,7 +195,8 @@ export default ({
189
195
  responseSelector: state => selectFilesComparison(state, versionOneId, versionTwoId, viewBy),
190
196
  statusSelector: state =>
191
197
  selectFilesComparisonStatus(state, versionOneId, versionTwoId, viewBy),
192
- autocompleteEndpoint: '/files/auto_complete_search',
198
+ autocompleteEndpoint: '/katello/api/v2/files',
199
+ bookmarkController: 'katello_content_view_components',
193
200
  fetchItems: params => getFilesComparison(versionOneId, versionTwoId, viewBy, params),
194
201
  columnHeaders: [
195
202
  {
@@ -214,7 +221,8 @@ export default ({
214
221
  responseSelector: state => selectErrataComparison(state, versionOneId, versionTwoId, viewBy),
215
222
  statusSelector: state =>
216
223
  selectErrataComparisonStatus(state, versionOneId, versionTwoId, viewBy),
217
- autocompleteEndpoint: '/errata/auto_complete_search',
224
+ autocompleteEndpoint: '/katello/api/v2/errata',
225
+ bookmarkController: 'katello_content_view_components',
218
226
  fetchItems: params => getErrataComparison(versionOneId, versionTwoId, viewBy, params),
219
227
  columnHeaders: [
220
228
  {
@@ -277,7 +285,8 @@ export default ({
277
285
  selectModuleStreamsComparison(state, versionOneId, versionTwoId, viewBy),
278
286
  statusSelector: state =>
279
287
  selectModuleStreamsComparisonStatus(state, versionOneId, versionTwoId, viewBy),
280
- autocompleteEndpoint: '/module_streams/auto_complete_search',
288
+ autocompleteEndpoint: '/katello/api/v2/module_streams',
289
+ bookmarkController: 'katello_content_view_components',
281
290
  fetchItems: params => getModuleStreamsComparison(versionOneId, versionTwoId, viewBy, params),
282
291
  columnHeaders: [
283
292
  {
@@ -310,7 +319,8 @@ export default ({
310
319
  selectDebPackagesComparison(state, versionOneId, versionTwoId, viewBy),
311
320
  statusSelector: state =>
312
321
  selectDebPackagesComparisonStatus(state, versionOneId, versionTwoId, viewBy),
313
- autocompleteEndpoint: '/debs/auto_complete_search',
322
+ autocompleteEndpoint: '/katello/api/v2/debs',
323
+ bookmarkController: 'katello_content_view_components',
314
324
  fetchItems: params => getDebPackagesComparison(versionOneId, versionTwoId, viewBy, params),
315
325
  columnHeaders: [
316
326
  {
@@ -339,7 +349,8 @@ export default ({
339
349
  selectDockerTagsComparison(state, versionOneId, versionTwoId, viewBy),
340
350
  statusSelector: state =>
341
351
  selectDockerTagsComparisonStatus(state, versionOneId, versionTwoId, viewBy),
342
- autocompleteEndpoint: '/docker_tags/auto_complete_search',
352
+ autocompleteEndpoint: '/katello/api/v2/docker_tags',
353
+ bookmarkController: 'katello_content_view_components',
343
354
  fetchItems: params => getDockerTagsComparison(versionOneId, versionTwoId, viewBy, params),
344
355
  columnHeaders: [
345
356
  {
@@ -381,7 +392,8 @@ export default ({
381
392
  pluralLabel,
382
393
  viewBy,
383
394
  ),
384
- autocompleteEndpoint: `/${pluralLabel}/auto_complete_search`,
395
+ autocompleteEndpoint: `/katello/api/v2/${pluralLabel}`,
396
+ bookmarkController: 'katello_content_view_components',
385
397
  fetchItems: params =>
386
398
  getGenericContentComparison(pluralLabel, versionOneId, versionTwoId, viewBy, params),
387
399
  columnHeaders: [
@@ -16,6 +16,8 @@ const CVVersionCompareTable = ({
16
16
  responseSelector,
17
17
  statusSelector,
18
18
  autocompleteEndpoint,
19
+ autocompleteQueryParams,
20
+ bookmarkController,
19
21
  fetchItems: fetchItemsSorted,
20
22
  columnHeaders,
21
23
  hideSearch,
@@ -48,6 +50,8 @@ const CVVersionCompareTable = ({
48
50
  updateSearchQuery,
49
51
  status,
50
52
  autocompleteEndpoint,
53
+ autocompleteQueryParams,
54
+ bookmarkController,
51
55
  hideSearch,
52
56
  }}
53
57
  key={`cvv-comparison-table-${name}`}