katello 4.9.1 → 4.10.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.
- checksums.yaml +4 -4
- data/README.md +4 -7
- data/app/assets/javascripts/katello/locale/bn/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/ca/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/cs/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +8969 -0
- data/app/assets/javascripts/katello/locale/de/katello.js +8991 -1
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/el/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/en/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/en_US/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/es/katello.js +8984 -1
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/fr/katello.js +9008 -1
- data/app/assets/javascripts/katello/locale/gl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/gu/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/hi/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/id/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/it/katello.js +8974 -1
- data/app/assets/javascripts/katello/locale/ja/katello.js +9004 -1
- data/app/assets/javascripts/katello/locale/ka/katello.js +8976 -1
- data/app/assets/javascripts/katello/locale/kn/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/ko/katello.js +8972 -1
- data/app/assets/javascripts/katello/locale/locale/katello.js +3070 -1
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/mr/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/or/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pa/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/pt/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +8984 -1
- data/app/assets/javascripts/katello/locale/ro/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/ru/katello.js +8973 -1
- data/app/assets/javascripts/katello/locale/sl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/ta/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/te/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/tr/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/vi/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/zh/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +9004 -1
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +8972 -1
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
- data/app/controllers/katello/api/v2/alternate_content_sources_bulk_actions_controller.rb +22 -1
- data/app/controllers/katello/api/v2/api_controller.rb +0 -15
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +13 -4
- data/app/controllers/katello/api/v2/host_errata_controller.rb +0 -12
- data/app/controllers/katello/api/v2/host_packages_controller.rb +0 -55
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +0 -77
- data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
- data/app/controllers/katello/api/v2/products_controller.rb +4 -4
- data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +12 -5
- data/app/controllers/katello/api/v2/repositories_controller.rb +16 -17
- data/app/controllers/katello/api/v2/sync_controller.rb +0 -1
- data/app/controllers/katello/concerns/api/api_controller.rb +0 -10
- data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +7 -9
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +1 -1
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +14 -2
- data/app/lib/actions/katello/alternate_content_source/update.rb +1 -1
- data/app/lib/actions/katello/content_view/capsule_sync.rb +1 -1
- data/app/lib/actions/katello/content_view/incremental_updates.rb +3 -9
- data/app/lib/actions/katello/content_view_environment/destroy.rb +5 -3
- data/app/lib/actions/katello/content_view_version/destroy.rb +5 -1
- data/app/lib/actions/katello/content_view_version/republish_repositories.rb +8 -2
- data/app/lib/actions/katello/host/update_content_view.rb +4 -2
- data/app/lib/actions/katello/product/destroy.rb +15 -11
- data/app/lib/actions/katello/repository/capsule_sync.rb +1 -1
- data/app/lib/actions/katello/repository/destroy.rb +10 -2
- data/app/lib/actions/katello/repository/index_content.rb +0 -1
- data/app/lib/actions/katello/repository/sync.rb +1 -3
- data/app/lib/actions/katello/repository/update_metadata_sync.rb +1 -1
- data/app/lib/actions/katello/repository/verify_checksum.rb +2 -10
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +12 -5
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +4 -9
- data/app/lib/katello/resources/cdn.rb +4 -0
- data/app/lib/katello/validators/alternate_content_source_products_validator.rb +1 -1
- data/app/models/katello/candlepin/repository_mapper.rb +1 -0
- data/app/models/katello/cdn_configuration.rb +4 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +57 -4
- data/app/models/katello/content_view.rb +21 -3
- data/app/models/katello/content_view_component.rb +1 -1
- data/app/models/katello/content_view_version.rb +4 -0
- data/app/models/katello/docker_meta_tag.rb +3 -1
- data/app/models/katello/host/content_facet.rb +10 -8
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/ping.rb +1 -12
- data/app/models/katello/product_content.rb +14 -1
- data/app/models/katello/repository.rb +6 -1
- data/app/models/katello/root_repository.rb +2 -8
- data/app/services/katello/applicability/applicable_content_helper.rb +2 -2
- data/app/services/katello/registration_manager.rb +2 -12
- data/app/views/foreman/job_templates/configure_host_for_new_content_source.erb +25 -0
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/show.json.rabl +0 -12
- data/app/views/katello/api/v2/content_view_components/show.json.rabl +4 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +6 -2
- data/app/views/katello/api/v2/products/show.json.rabl +3 -0
- data/app/views/katello/api/v2/repositories/base.json.rabl +18 -0
- data/app/views/katello/api/v2/repositories/show.json.rabl +0 -1
- data/app/views/katello/api/v2/repository_sets/show.json.rabl +2 -2
- data/app/views/overrides/activation_keys/_host_environment_select.html.erb +4 -5
- data/app/views/overrides/activation_keys/_host_media_type_select.html.erb +11 -3
- data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +15 -7
- data/config/initializers/monkeys.rb +1 -0
- data/config/katello.yaml.example +0 -4
- data/config/routes/api/v2.rb +3 -0
- data/config/routes/overrides.rb +0 -11
- data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +1 -0
- data/db/migrate/20230609155411_add_custom_cdn_auth_enabled_to_katello_cdn_configurations.rb +5 -0
- data/db/migrate/20230710190626_remove_relative_path_limit.rb +5 -0
- data/db/migrate/20230717150442_change_change_content_source_job_template_name.rb +20 -0
- data/db/migrate/20230828143236_remove_katello_agent_dispatch_history.rb +15 -0
- data/db/seeds.d/111-upgrade_tasks.rb +1 -2
- data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -1
- data/engines/bastion_katello/README.md +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +8 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +3 -44
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +1 -65
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +1 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-applicable.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +1 -16
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +2 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +1 -39
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-applicable.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +2 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +4 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +0 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-content-views.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +235 -521
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details.controller.js +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +17 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +55 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +13 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +5 -0
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -3
- data/lib/katello/engine.rb +0 -18
- data/lib/katello/permission_creator.rb +1 -1
- data/lib/katello/plugin.rb +0 -25
- data/lib/katello/version.rb +1 -1
- data/lib/monkeys/remove_hidden_distribution.rb +383 -0
- data/locale/action_names.rb +3 -1
- data/locale/bn/katello.po +130 -39
- data/locale/bn_IN/katello.po +130 -39
- data/locale/ca/katello.po +130 -39
- data/locale/cs/katello.po +130 -39
- data/locale/cs_CZ/katello.po +130 -39
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +134 -43
- data/locale/de_AT/katello.po +130 -39
- data/locale/de_DE/katello.po +130 -39
- data/locale/el/katello.po +130 -39
- data/locale/en/katello.po +130 -39
- data/locale/en_GB/katello.po +130 -39
- data/locale/en_US/katello.po +130 -39
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +133 -42
- data/locale/et_EE/katello.po +130 -39
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +138 -47
- data/locale/gl/katello.po +130 -39
- data/locale/gu/katello.po +130 -39
- data/locale/he_IL/katello.po +130 -39
- data/locale/hi/katello.po +130 -39
- data/locale/id/katello.po +130 -39
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +131 -40
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +138 -47
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +131 -40
- data/locale/katello.pot +805 -642
- data/locale/kn/katello.po +130 -39
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +131 -40
- data/locale/ml_IN/katello.po +130 -39
- data/locale/mr/katello.po +130 -39
- data/locale/nl_NL/katello.po +130 -39
- data/locale/or/katello.po +130 -39
- data/locale/pa/katello.po +130 -39
- data/locale/pl/katello.po +130 -39
- data/locale/pl_PL/katello.po +130 -39
- data/locale/pt/katello.po +130 -39
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +133 -42
- data/locale/ro/katello.po +130 -39
- data/locale/ro_RO/katello.po +130 -39
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +131 -40
- data/locale/sl/katello.po +130 -39
- data/locale/sv_SE/katello.po +130 -39
- data/locale/ta/katello.po +130 -39
- data/locale/ta_IN/katello.po +130 -39
- data/locale/te/katello.po +130 -39
- data/locale/tr/katello.po +130 -39
- data/locale/vi/katello.po +130 -39
- data/locale/vi_VN/katello.po +130 -39
- data/locale/zh/katello.po +130 -39
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +138 -47
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +131 -40
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +0 -5
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +9 -3
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +7 -54
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +2 -11
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -40
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesConstants.js +0 -3
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +5 -40
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +6 -61
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +5 -4
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +0 -212
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +2 -157
- data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +0 -20
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyActions.js +31 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyConstants.js +3 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetails.js +127 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetails.scss +37 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetailsSelectors.js +16 -0
- data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +117 -0
- data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +77 -0
- data/webpack/scenes/ActivationKeys/Details/components/DeleteModal.js +63 -0
- data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +199 -0
- data/webpack/scenes/ActivationKeys/Details/index.js +3 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +1 -1
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +10 -5
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditProducts.js +8 -3
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +8 -3
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +1 -1
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +2 -2
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +1 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +37 -29
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +53 -37
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +7 -0
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.fixtures.json +15 -6
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +6 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +43 -197
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +1 -1
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +2 -2
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +1 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +0 -98
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +103 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsLatestEnvironment.fixtures.json +634 -0
- data/webpack/scenes/ContentViews/components/ContentViewSelect/helpers.js +1 -1
- data/webpack/scenes/Hosts/ChangeContentSource/actions.js +14 -12
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +45 -6
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +42 -7
- data/webpack/scenes/Hosts/ChangeContentSource/index.js +37 -10
- data/webpack/scenes/Hosts/ChangeContentSource/styles.scss +5 -0
- data/webpack/scenes/RedHatRepositories/__tests__/__snapshots__/RedHatRepositoriesPage.test.js.snap +0 -8
- data/webpack/scenes/RedHatRepositories/index.scss +1 -1
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +2 -2
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +0 -8
- metadata +85 -80
- data/app/lib/actions/katello/agent/dispatch_history_presenter.rb +0 -64
- data/app/lib/actions/katello/agent_action.rb +0 -119
- data/app/lib/actions/katello/bulk_agent_action.rb +0 -34
- data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +0 -44
- data/app/lib/actions/katello/host/erratum/install.rb +0 -38
- data/app/lib/actions/katello/host/package/install.rb +0 -34
- data/app/lib/actions/katello/host/package/remove.rb +0 -48
- data/app/lib/actions/katello/host/package/update.rb +0 -42
- data/app/lib/actions/katello/host/package_group/install.rb +0 -30
- data/app/lib/actions/katello/host/package_group/remove.rb +0 -30
- data/app/lib/katello/agent/base_message.rb +0 -41
- data/app/lib/katello/agent/client_message_handler.rb +0 -69
- data/app/lib/katello/agent/connection.rb +0 -38
- data/app/lib/katello/agent/install_errata_message.rb +0 -25
- data/app/lib/katello/agent/install_package_group_message.rb +0 -25
- data/app/lib/katello/agent/install_package_message.rb +0 -28
- data/app/lib/katello/agent/remove_package_group_message.rb +0 -25
- data/app/lib/katello/agent/remove_package_message.rb +0 -28
- data/app/lib/katello/agent/update_package_message.rb +0 -33
- data/app/lib/katello/event_daemon/services/agent_event_receiver.rb +0 -59
- data/app/lib/katello/qpid/connection.rb +0 -149
- data/app/lib/katello/util/default_enablement_migrator.rb +0 -183
- data/app/models/katello/agent/dispatch_history.rb +0 -19
- data/app/models/katello/events/delete_host_agent_queue.rb +0 -19
- data/app/services/katello/agent/dispatcher.rb +0 -60
- data/app/views/foreman/job_templates/change_content_source.erb +0 -18
- data/app/views/katello/api/v2/sync/index.json.rabl +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/katello-agent-notice.html +0 -8
- data/lib/katello/tasks/upgrades/4.9/update_custom_products_enablement.rake +0 -13
@@ -1,7 +1,7 @@
|
|
1
1
|
import { API_OPERATIONS, get, put } from 'foremanReact/redux/API';
|
2
2
|
import { foremanApi } from '../../../../../services/api';
|
3
|
-
import { HOST_ERRATA_KEY, HOST_ERRATA_APPLICABILITY_KEY
|
4
|
-
import { errorToast
|
3
|
+
import { HOST_ERRATA_KEY, HOST_ERRATA_APPLICABILITY_KEY } from './HostErrataConstants';
|
4
|
+
import { errorToast } from '../../../../../scenes/Tasks/helpers';
|
5
5
|
|
6
6
|
export const getInstallableErrata = (hostId, params) => get({
|
7
7
|
type: API_OPERATIONS.GET,
|
@@ -30,12 +30,3 @@ export const regenerateApplicability = (hostId, params) => put({
|
|
30
30
|
params,
|
31
31
|
});
|
32
32
|
|
33
|
-
export const applyViaKatelloAgent = (hostId, params) => put({
|
34
|
-
type: API_OPERATIONS.PUT,
|
35
|
-
key: HOST_ERRATA_APPLY_KEY,
|
36
|
-
url: foremanApi.getApiUrl(`/hosts/${hostId}/errata/apply`),
|
37
|
-
handleSuccess: response => renderTaskStartedToast(response.data),
|
38
|
-
errorToast: error => errorToast(error),
|
39
|
-
params,
|
40
|
-
});
|
41
|
-
|
@@ -1,11 +1,7 @@
|
|
1
|
-
import { API_OPERATIONS, get
|
2
|
-
import { errorToast, renderTaskStartedToast } from '../../../../../scenes/Tasks/helpers';
|
1
|
+
import { API_OPERATIONS, get } from 'foremanReact/redux/API';
|
3
2
|
import { foremanApi } from '../../../../../services/api';
|
4
3
|
import {
|
5
|
-
HOST_PACKAGES_INSTALL_KEY,
|
6
4
|
HOST_PACKAGES_KEY,
|
7
|
-
HOST_PACKAGES_REMOVE_KEY,
|
8
|
-
HOST_PACKAGES_UPGRADE_KEY,
|
9
5
|
} from './HostPackagesConstants';
|
10
6
|
|
11
7
|
export const getInstalledPackagesWithLatest = (hostId, params) => get({
|
@@ -15,38 +11,3 @@ export const getInstalledPackagesWithLatest = (hostId, params) => get({
|
|
15
11
|
params,
|
16
12
|
});
|
17
13
|
export default getInstalledPackagesWithLatest;
|
18
|
-
|
19
|
-
export const installPackageViaKatelloAgent = (hostId, params) => put({
|
20
|
-
type: API_OPERATIONS.PUT,
|
21
|
-
key: HOST_PACKAGES_INSTALL_KEY,
|
22
|
-
url: foremanApi.getApiUrl(`/hosts/${hostId}/packages/install`),
|
23
|
-
handleSuccess: ({ data }) => renderTaskStartedToast(data),
|
24
|
-
errorToast: error => errorToast(error),
|
25
|
-
params,
|
26
|
-
});
|
27
|
-
|
28
|
-
export const removePackageViaKatelloAgent = (hostId, params) => put({
|
29
|
-
type: API_OPERATIONS.PUT,
|
30
|
-
key: HOST_PACKAGES_REMOVE_KEY,
|
31
|
-
url: foremanApi.getApiUrl(`/hosts/${hostId}/packages/remove`),
|
32
|
-
handleSuccess: ({ data }) => renderTaskStartedToast(data),
|
33
|
-
errorToast: error => errorToast(error),
|
34
|
-
params,
|
35
|
-
});
|
36
|
-
|
37
|
-
export const upgradePackageViaKatelloAgent = (hostId, params) => put({
|
38
|
-
type: API_OPERATIONS.PUT,
|
39
|
-
key: HOST_PACKAGES_UPGRADE_KEY,
|
40
|
-
url: foremanApi.getApiUrl(`/hosts/${hostId}/packages/upgrade`),
|
41
|
-
handleSuccess: ({ data }) => renderTaskStartedToast(data),
|
42
|
-
errorToast: error => errorToast(error),
|
43
|
-
params,
|
44
|
-
});
|
45
|
-
|
46
|
-
export const upgradeAllViaKatelloAgent = hostId => put({
|
47
|
-
type: API_OPERATIONS.PUT,
|
48
|
-
key: HOST_PACKAGES_UPGRADE_KEY,
|
49
|
-
url: foremanApi.getApiUrl(`/hosts/${hostId}/packages/upgrade_all`),
|
50
|
-
handleSuccess: ({ data }) => renderTaskStartedToast(data),
|
51
|
-
errorToast: error => errorToast(error),
|
52
|
-
});
|
@@ -1,7 +1,4 @@
|
|
1
1
|
export const HOST_PACKAGES_KEY = 'HOST_PACKAGES';
|
2
|
-
export const HOST_PACKAGES_INSTALL_KEY = 'HOST_PACKAGES_KATELLO_AGENT_INSTALL';
|
3
|
-
export const HOST_PACKAGES_REMOVE_KEY = 'HOST_PACKAGES_REMOVE';
|
4
|
-
export const HOST_PACKAGES_UPGRADE_KEY = 'HOST_PACKAGES_UPGRADE';
|
5
2
|
export const PACKAGES_SEARCH_QUERY = 'Packages search query';
|
6
3
|
export const SELECTED_UPDATE_VERSIONS = 'Selected update versions';
|
7
4
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React, { useState } from 'react';
|
2
2
|
import { Modal, Button, Dropdown, DropdownItem, DropdownToggle, DropdownDirection, DropdownToggleAction } from '@patternfly/react-core';
|
3
3
|
import { CaretDownIcon, CaretUpIcon } from '@patternfly/react-icons';
|
4
|
-
import { useSelector
|
4
|
+
import { useSelector } from 'react-redux';
|
5
5
|
import { FormattedMessage } from 'react-intl';
|
6
6
|
import { Thead, Th, Tbody, Tr, Td, TableVariant } from '@patternfly/react-table';
|
7
7
|
import { noop } from 'foremanReact/common/helpers';
|
@@ -17,12 +17,10 @@ import { getHostYumInstallablePackages } from './YumInstallablePackagesActions';
|
|
17
17
|
import './PackageInstallModal.scss';
|
18
18
|
import { katelloPackageInstallBySearchUrl, katelloPackageInstallUrl } from '../customizedRexUrlHelpers';
|
19
19
|
import hostIdNotReady from '../../HostDetailsActions';
|
20
|
-
import { installPackageViaKatelloAgent } from './HostPackagesActions';
|
21
20
|
|
22
21
|
const InstallDropdown = ({
|
23
|
-
isDisabled, installViaRex,
|
24
|
-
bulkCustomizedRexUrl,
|
25
|
-
disableInstallViaKatelloAgent,
|
22
|
+
isDisabled, installViaRex,
|
23
|
+
bulkCustomizedRexUrl,
|
26
24
|
}) => {
|
27
25
|
const [isActionOpen, setIsActionOpen] = useState(false);
|
28
26
|
const onActionSelect = () => {
|
@@ -33,15 +31,6 @@ const InstallDropdown = ({
|
|
33
31
|
};
|
34
32
|
|
35
33
|
const dropdownItems = [
|
36
|
-
<DropdownItem
|
37
|
-
key="install-k-agent"
|
38
|
-
ouiaId="install-k-agent"
|
39
|
-
component="button"
|
40
|
-
onClick={installViaKatelloAgent}
|
41
|
-
isDisabled={disableInstallViaKatelloAgent}
|
42
|
-
>
|
43
|
-
{__('Install via katello-agent')}
|
44
|
-
</DropdownItem>,
|
45
34
|
<DropdownItem key="install-rex" ouiaId="install-rex" component="button" onClick={installViaRex}>
|
46
35
|
{__('Install via remote execution')}
|
47
36
|
</DropdownItem>,
|
@@ -56,9 +45,6 @@ const InstallDropdown = ({
|
|
56
45
|
</DropdownItem>,
|
57
46
|
];
|
58
47
|
|
59
|
-
if (!showKatelloAgent) dropdownItems.shift();
|
60
|
-
const defaultRemoteAction = showKatelloAgent ? installViaKatelloAgent : installViaRex;
|
61
|
-
|
62
48
|
return (
|
63
49
|
<Dropdown
|
64
50
|
ouiaId="action-dropdown"
|
@@ -69,7 +55,7 @@ const InstallDropdown = ({
|
|
69
55
|
ouiaId="install-action-toggle"
|
70
56
|
isDisabled={isDisabled}
|
71
57
|
splitButtonItems={[
|
72
|
-
<DropdownToggleAction key="install" onClick={
|
58
|
+
<DropdownToggleAction key="install" onClick={installViaRex}>
|
73
59
|
Install
|
74
60
|
</DropdownToggleAction>,
|
75
61
|
]}
|
@@ -88,23 +74,17 @@ const InstallDropdown = ({
|
|
88
74
|
InstallDropdown.propTypes = {
|
89
75
|
isDisabled: PropTypes.bool,
|
90
76
|
installViaRex: PropTypes.func,
|
91
|
-
installViaKatelloAgent: PropTypes.func,
|
92
77
|
bulkCustomizedRexUrl: PropTypes.string,
|
93
|
-
showKatelloAgent: PropTypes.bool,
|
94
|
-
disableInstallViaKatelloAgent: PropTypes.bool,
|
95
78
|
};
|
96
79
|
|
97
80
|
InstallDropdown.defaultProps = {
|
98
81
|
isDisabled: false,
|
99
82
|
installViaRex: noop,
|
100
|
-
installViaKatelloAgent: noop,
|
101
83
|
bulkCustomizedRexUrl: '',
|
102
|
-
showKatelloAgent: false,
|
103
|
-
disableInstallViaKatelloAgent: false,
|
104
84
|
};
|
105
85
|
|
106
86
|
const PackageInstallModal = ({
|
107
|
-
isOpen, closeModal, hostId, hostName,
|
87
|
+
isOpen, closeModal, hostId, hostName, triggerPackageInstall,
|
108
88
|
}) => {
|
109
89
|
const emptyContentTitle = __('No packages available to install');
|
110
90
|
const emptyContentBody = __('No packages available to install on this host. Please check the host\'s content view and lifecycle environment.');
|
@@ -114,7 +94,6 @@ const PackageInstallModal = ({
|
|
114
94
|
const response =
|
115
95
|
useSelector(state => selectAPIResponse(state, HOST_YUM_INSTALLABLE_PACKAGES_KEY));
|
116
96
|
const status = useSelector(state => selectHostYumInstallablePackagesStatus(state));
|
117
|
-
const dispatch = useDispatch();
|
118
97
|
const { results, ...metadata } = response;
|
119
98
|
const [suppressFirstFetch, setSuppressFirstFetch] = useState(false);
|
120
99
|
|
@@ -150,12 +129,6 @@ const PackageInstallModal = ({
|
|
150
129
|
closeModal();
|
151
130
|
};
|
152
131
|
|
153
|
-
const installViaKatelloAgent = () => {
|
154
|
-
dispatch(installPackageViaKatelloAgent(hostId, { packages: selectedPackageNames() }));
|
155
|
-
selectNone();
|
156
|
-
closeModal();
|
157
|
-
};
|
158
|
-
|
159
132
|
const handleModalClose = () => {
|
160
133
|
setSuppressFirstFetch(true);
|
161
134
|
closeModal();
|
@@ -173,10 +146,7 @@ const PackageInstallModal = ({
|
|
173
146
|
key="install"
|
174
147
|
isDisabled={!selectedCount}
|
175
148
|
installViaRex={installViaRex}
|
176
|
-
installViaKatelloAgent={installViaKatelloAgent}
|
177
149
|
bulkCustomizedRexUrl={enableSimpleRexUrl ? simpleBulkCustomizedRexUrl : bulkCustomizedRexUrl}
|
178
|
-
showKatelloAgent={showKatelloAgent}
|
179
|
-
disableInstallViaKatelloAgent={selectedResults.length === 0}
|
180
150
|
/>,
|
181
151
|
<Button key="cancel" ouiaId="cancel-button" variant="link" onClick={handleModalClose}>
|
182
152
|
Cancel
|
@@ -274,12 +244,7 @@ PackageInstallModal.propTypes = {
|
|
274
244
|
closeModal: PropTypes.func.isRequired,
|
275
245
|
hostId: PropTypes.number.isRequired,
|
276
246
|
hostName: PropTypes.string.isRequired,
|
277
|
-
showKatelloAgent: PropTypes.bool,
|
278
247
|
triggerPackageInstall: PropTypes.func.isRequired,
|
279
248
|
};
|
280
249
|
|
281
|
-
PackageInstallModal.defaultProps = {
|
282
|
-
showKatelloAgent: false,
|
283
|
-
};
|
284
|
-
|
285
250
|
export default PackageInstallModal;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { useCallback, useState, useRef } from 'react';
|
2
|
-
import { useSelector
|
2
|
+
import { useSelector } from 'react-redux';
|
3
3
|
import {
|
4
4
|
ActionList,
|
5
5
|
ActionListItem,
|
@@ -28,9 +28,6 @@ import { useBulkSelect, useTableSort, useUrlParams, useSet } from '../../../../.
|
|
28
28
|
import PackagesStatus from '../../../../../components/Packages';
|
29
29
|
import {
|
30
30
|
getInstalledPackagesWithLatest,
|
31
|
-
removePackageViaKatelloAgent,
|
32
|
-
upgradeAllViaKatelloAgent,
|
33
|
-
upgradePackageViaKatelloAgent,
|
34
31
|
} from './HostPackagesActions';
|
35
32
|
import { selectHostPackagesStatus } from './HostPackagesSelectors';
|
36
33
|
import {
|
@@ -41,16 +38,13 @@ import { katelloPackageUpdateUrl, packagesUpdateUrl } from '../customizedRexUrlH
|
|
41
38
|
import './PackagesTab.scss';
|
42
39
|
import hostIdNotReady, { getHostDetails } from '../../HostDetailsActions';
|
43
40
|
import PackageInstallModal from './PackageInstallModal';
|
44
|
-
import {
|
45
|
-
hasRequiredPermissions as can,
|
41
|
+
import { hasRequiredPermissions as can,
|
46
42
|
missingRequiredPermissions as cannot,
|
47
|
-
KATELLO_AGENT,
|
48
43
|
userPermissionsFromHostDetails } from '../../hostDetailsHelpers';
|
49
44
|
import SortableColumnHeaders from '../../../../Table/components/SortableColumnHeaders';
|
50
45
|
import { useRexJobPolling } from '../RemoteExecutionHooks';
|
51
46
|
|
52
47
|
const invokeRexJobs = ['create_job_invocations'];
|
53
|
-
const doKatelloAgentActions = ['edit_hosts'];
|
54
48
|
const createBookmarks = ['create_bookmarks'];
|
55
49
|
|
56
50
|
const UpdateVersionsSelect = ({
|
@@ -125,7 +119,6 @@ export const PackagesTab = () => {
|
|
125
119
|
} = hostDetails;
|
126
120
|
|
127
121
|
const { searchParam, status: statusParam } = useUrlParams();
|
128
|
-
const dispatch = useDispatch();
|
129
122
|
const PACKAGE_STATUS = __('Status');
|
130
123
|
const [packageStatusSelected, setPackageStatusSelected] = useState(statusParam ?? PACKAGE_STATUS);
|
131
124
|
const activeFilters = [packageStatusSelected];
|
@@ -134,10 +127,7 @@ export const PackagesTab = () => {
|
|
134
127
|
const toggleBulkAction = () => setIsBulkActionOpen(prev => !prev);
|
135
128
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
136
129
|
const closeModal = () => setIsModalOpen(false);
|
137
|
-
const
|
138
|
-
const showActions = showKatelloAgent ?
|
139
|
-
can(doKatelloAgentActions, userPermissionsFromHostDetails({ hostDetails })) :
|
140
|
-
can(invokeRexJobs, userPermissionsFromHostDetails({ hostDetails }));
|
130
|
+
const showActions = can(invokeRexJobs, userPermissionsFromHostDetails({ hostDetails }));
|
141
131
|
|
142
132
|
const [isActionOpen, setIsActionOpen] = useState(false);
|
143
133
|
const onActionSelect = () => {
|
@@ -294,11 +284,6 @@ export const PackagesTab = () => {
|
|
294
284
|
|
295
285
|
const removePackageViaRemoteExecution = packageName => triggerPackageRemove(packageName);
|
296
286
|
|
297
|
-
const removeViaKatelloAgent = (packageName) => {
|
298
|
-
dispatch(removePackageViaKatelloAgent(hostId, { packages: [packageName] }));
|
299
|
-
selectNone();
|
300
|
-
};
|
301
|
-
|
302
287
|
const removePackagesViaRemoteExecution = () => {
|
303
288
|
const selected = fetchBulkParams();
|
304
289
|
setIsBulkActionOpen(false);
|
@@ -306,32 +291,9 @@ export const PackagesTab = () => {
|
|
306
291
|
triggerBulkPackageRemove(selected);
|
307
292
|
};
|
308
293
|
|
309
|
-
const
|
310
|
-
const selectedUpgradableVersions = () => selectedResults.map(({ name, upgradable_versions: v }) =>
|
311
|
-
selectedNewVersions.current[name] || v[0]);
|
312
|
-
|
313
|
-
const removePackagesViaKatelloAgent = () => {
|
314
|
-
dispatch(removePackageViaKatelloAgent(hostId, { packages: selectedPackageNames() }));
|
315
|
-
selectNone();
|
316
|
-
};
|
317
|
-
|
318
|
-
const defaultRemoteAction = defaultRemoteActionMethod({ hostDetails });
|
319
|
-
|
320
|
-
const removeBulk = () => {
|
321
|
-
if (defaultRemoteAction === KATELLO_AGENT) {
|
322
|
-
removePackagesViaKatelloAgent();
|
323
|
-
} else {
|
324
|
-
removePackagesViaRemoteExecution();
|
325
|
-
}
|
326
|
-
};
|
294
|
+
const removeBulk = () => removePackagesViaRemoteExecution();
|
327
295
|
|
328
|
-
const handlePackageRemove =
|
329
|
-
if (defaultRemoteAction === KATELLO_AGENT) {
|
330
|
-
removeViaKatelloAgent(packageName);
|
331
|
-
} else {
|
332
|
-
removePackageViaRemoteExecution(packageName);
|
333
|
-
}
|
334
|
-
};
|
296
|
+
const handlePackageRemove = packageName => removePackageViaRemoteExecution(packageName);
|
335
297
|
|
336
298
|
const upgradeViaRemoteExecution = ({ packageName, upgradableVersions }) => (
|
337
299
|
triggerPackageUpgrade({ packageName, upgradableVersions })
|
@@ -344,22 +306,7 @@ export const PackagesTab = () => {
|
|
344
306
|
triggerBulkPackageUpgrade(selected);
|
345
307
|
};
|
346
308
|
|
347
|
-
const
|
348
|
-
if (areAllRowsSelected()) {
|
349
|
-
dispatch(upgradeAllViaKatelloAgent(hostId));
|
350
|
-
} else {
|
351
|
-
dispatch(upgradePackageViaKatelloAgent(hostId, { packages: selectedUpgradableVersions() }));
|
352
|
-
}
|
353
|
-
selectNone();
|
354
|
-
};
|
355
|
-
|
356
|
-
const upgradeBulk = () => {
|
357
|
-
if (defaultRemoteAction === KATELLO_AGENT) {
|
358
|
-
upgradeBulkViaKatelloAgent();
|
359
|
-
} else {
|
360
|
-
upgradeBulkViaRemoteExecution();
|
361
|
-
}
|
362
|
-
};
|
309
|
+
const upgradeBulk = () => upgradeBulkViaRemoteExecution();
|
363
310
|
|
364
311
|
const upgradeViaCustomizedRemoteExecution = selectedCount ?
|
365
312
|
packagesUpdateUrl({
|
@@ -374,7 +321,6 @@ export const PackagesTab = () => {
|
|
374
321
|
selectedResults.every(item => item.upgradable_versions?.length > 0);
|
375
322
|
const disableUpgrade = () => selectedCount === 0 ||
|
376
323
|
(selectAllMode && packageStatusSelected !== 'Upgradable') ||
|
377
|
-
(defaultRemoteAction === KATELLO_AGENT && selectAllMode && !areAllRowsSelected()) ||
|
378
324
|
(!selectAllMode && !allUpgradable());
|
379
325
|
|
380
326
|
const readOnlyBookmarks =
|
@@ -634,7 +580,6 @@ export const PackagesTab = () => {
|
|
634
580
|
hostId={hostId}
|
635
581
|
key={hostId}
|
636
582
|
hostName={hostname}
|
637
|
-
showKatelloAgent={showKatelloAgent}
|
638
583
|
triggerPackageInstall={triggerPackageInstall}
|
639
584
|
/>
|
640
585
|
}
|
@@ -64,9 +64,11 @@ import { selectRepositorySetsStatus } from './RepositorySetsSelectors';
|
|
64
64
|
import './RepositorySetsTab.scss';
|
65
65
|
import SortableColumnHeaders from '../../../../Table/components/SortableColumnHeaders';
|
66
66
|
import SelectableDropdown from '../../../../SelectableDropdown';
|
67
|
-
import {
|
67
|
+
import {
|
68
|
+
hasRequiredPermissions as can,
|
68
69
|
missingRequiredPermissions as cannot,
|
69
|
-
userPermissionsFromHostDetails
|
70
|
+
userPermissionsFromHostDetails,
|
71
|
+
} from '../../hostDetailsHelpers';
|
70
72
|
|
71
73
|
const viewRepoSets = [
|
72
74
|
'view_hosts', 'view_activation_keys', 'view_products',
|
@@ -397,7 +399,7 @@ const RepositorySetsTab = () => {
|
|
397
399
|
});
|
398
400
|
|
399
401
|
const readOnlyBookmarks =
|
400
|
-
|
402
|
+
cannot(createBookmarks, userPermissionsFromHostDetails({ hostDetails }));
|
401
403
|
|
402
404
|
const dropdownItems = [
|
403
405
|
<DropdownItem
|
@@ -604,7 +606,6 @@ const RepositorySetsTab = () => {
|
|
604
606
|
pfSortParams={pfSortParams}
|
605
607
|
columnsToSortParams={COLUMNS_TO_SORT_PARAMS}
|
606
608
|
/>
|
607
|
-
<Th />
|
608
609
|
<Th key="action-menu" />
|
609
610
|
</Tr>
|
610
611
|
</Thead>
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { isEqual } from 'lodash';
|
3
2
|
import { renderWithRedux, patientlyWaitFor, within, fireEvent } from 'react-testing-lib-wrapper';
|
4
3
|
import { nockInstance, assertNockRequest, mockForemanAutocomplete } from '../../../../../test-utils/nockWrapper';
|
5
4
|
import { foremanApi } from '../../../../../services/api';
|
@@ -101,7 +100,6 @@ const baseQueryWithSort = {
|
|
101
100
|
const defaultQuery = { ...baseQueryWithSort, search: '' };
|
102
101
|
const page2Query = { ...baseQueryWithSort, page: 2 };
|
103
102
|
const jobInvocations = foremanApi.getApiUrl('/job_invocations');
|
104
|
-
const applyByKatelloAgentUrl = foremanApi.getApiUrl('/hosts/1/errata/apply');
|
105
103
|
|
106
104
|
let firstErrata;
|
107
105
|
let thirdErrata;
|
@@ -839,173 +837,6 @@ test('Can filter by severity', async (done) => {
|
|
839
837
|
assertNockRequest(scope2, done); // Pass jest callback to confirm test is done
|
840
838
|
});
|
841
839
|
|
842
|
-
test('apply button chooses katello agent if enabled', async (done) => {
|
843
|
-
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
844
|
-
const mockErrata = makeMockErrata({});
|
845
|
-
const options = renderOptions({
|
846
|
-
...cfWithErrataTotal(mockErrata.total),
|
847
|
-
katelloAgentInstalled: true,
|
848
|
-
katelloAgentEnabled: true,
|
849
|
-
});
|
850
|
-
|
851
|
-
const scope = nockInstance
|
852
|
-
.get(hostErrata)
|
853
|
-
.query(defaultQuery)
|
854
|
-
.reply(200, mockErrata);
|
855
|
-
|
856
|
-
const resolveErrataScope = nockInstance
|
857
|
-
.put(applyByKatelloAgentUrl)
|
858
|
-
.reply(201, mockResolveErrataTask);
|
859
|
-
|
860
|
-
const { getAllByText, getByLabelText, queryByText } = renderWithRedux(
|
861
|
-
<ErrataTab />,
|
862
|
-
options,
|
863
|
-
);
|
864
|
-
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
865
|
-
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
866
|
-
|
867
|
-
getByLabelText('Select row 0').click();
|
868
|
-
getByLabelText('Select row 1').click();
|
869
|
-
|
870
|
-
const viaAction = queryByText('Apply');
|
871
|
-
expect(viaAction).toBeInTheDocument();
|
872
|
-
viaAction.click();
|
873
|
-
|
874
|
-
assertNockRequest(autocompleteScope);
|
875
|
-
assertNockRequest(resolveErrataScope);
|
876
|
-
assertNockRequest(scope, done);
|
877
|
-
});
|
878
|
-
|
879
|
-
test('Can bulk apply via katello agent', async (done) => {
|
880
|
-
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
881
|
-
const mockErrata = makeMockErrata({});
|
882
|
-
const { results } = mockErrata;
|
883
|
-
const options = renderOptions({
|
884
|
-
...cfWithErrataTotal(mockErrata.total),
|
885
|
-
katelloAgentInstalled: true,
|
886
|
-
katelloAgentEnabled: true,
|
887
|
-
});
|
888
|
-
|
889
|
-
const scope = nockInstance
|
890
|
-
.get(hostErrata)
|
891
|
-
.query(defaultQuery)
|
892
|
-
.reply(200, mockErrata);
|
893
|
-
|
894
|
-
const postBody = ({ search }) => {
|
895
|
-
const [firstResult, secondResult] = results;
|
896
|
-
return isEqual(search, `errata_id ^ (${firstResult.errata_id},${secondResult.errata_id})`);
|
897
|
-
};
|
898
|
-
const resolveErrataScope = nockInstance
|
899
|
-
.put(applyByKatelloAgentUrl, postBody)
|
900
|
-
.reply(201, mockResolveErrataTask);
|
901
|
-
|
902
|
-
const { getAllByText, getByLabelText, queryByText } = renderWithRedux(
|
903
|
-
<ErrataTab />,
|
904
|
-
options,
|
905
|
-
);
|
906
|
-
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
907
|
-
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
908
|
-
|
909
|
-
getByLabelText('Select row 0').click();
|
910
|
-
getByLabelText('Select row 1').click();
|
911
|
-
|
912
|
-
const actionMenu = getByLabelText('expand_errata_toggle');
|
913
|
-
actionMenu.click();
|
914
|
-
const viaAction = queryByText('Apply via Katello agent');
|
915
|
-
expect(viaAction).toBeInTheDocument();
|
916
|
-
viaAction.click();
|
917
|
-
|
918
|
-
assertNockRequest(autocompleteScope);
|
919
|
-
assertNockRequest(resolveErrataScope);
|
920
|
-
assertNockRequest(scope, done);
|
921
|
-
});
|
922
|
-
|
923
|
-
test('Can select all, exclude and bulk apply via katello agent', async (done) => {
|
924
|
-
// This is the same test as above,
|
925
|
-
// but using the table action bar instead of the Apply button
|
926
|
-
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
927
|
-
const mockErrata = makeMockErrata({});
|
928
|
-
const { results } = mockErrata;
|
929
|
-
const options = renderOptions({
|
930
|
-
...cfWithErrataTotal(mockErrata.total),
|
931
|
-
katelloAgentInstalled: true,
|
932
|
-
katelloAgentEnabled: true,
|
933
|
-
});
|
934
|
-
|
935
|
-
const scope = nockInstance
|
936
|
-
.get(hostErrata)
|
937
|
-
.query(defaultQuery)
|
938
|
-
.reply(200, mockErrata);
|
939
|
-
|
940
|
-
const postBody = ({ search }) => {
|
941
|
-
const [firstResult] = results;
|
942
|
-
return isEqual(search, `errata_id !^ (${firstResult.errata_id})`);
|
943
|
-
};
|
944
|
-
|
945
|
-
const resolveErrataScope = nockInstance
|
946
|
-
.put(applyByKatelloAgentUrl, postBody)
|
947
|
-
.reply(201, mockResolveErrataTask);
|
948
|
-
|
949
|
-
const { getAllByText, getByLabelText, queryByText } = renderWithRedux(
|
950
|
-
<ErrataTab />,
|
951
|
-
options,
|
952
|
-
);
|
953
|
-
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
954
|
-
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
955
|
-
const selectAllCheckbox = getByLabelText('Select all');
|
956
|
-
selectAllCheckbox.click();
|
957
|
-
|
958
|
-
getByLabelText('Select row 0').click(); // deselect
|
959
|
-
|
960
|
-
const actionMenu = getByLabelText('expand_errata_toggle');
|
961
|
-
actionMenu.click();
|
962
|
-
const viaAction = queryByText('Apply via Katello agent');
|
963
|
-
expect(viaAction).toBeInTheDocument();
|
964
|
-
viaAction.click();
|
965
|
-
|
966
|
-
assertNockRequest(autocompleteScope);
|
967
|
-
assertNockRequest(resolveErrataScope);
|
968
|
-
assertNockRequest(scope, done);
|
969
|
-
});
|
970
|
-
|
971
|
-
test('Apply button chooses remote execution', async (done) => {
|
972
|
-
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
973
|
-
const mockErrata = makeMockErrata({});
|
974
|
-
const options = renderOptions({
|
975
|
-
...cfWithErrataTotal(mockErrata.total),
|
976
|
-
katelloAgentInstalled: true,
|
977
|
-
katelloAgentEnabled: true,
|
978
|
-
remoteExecutionByDefault: true,
|
979
|
-
});
|
980
|
-
|
981
|
-
const scope = nockInstance
|
982
|
-
.get(hostErrata)
|
983
|
-
.query(defaultQuery)
|
984
|
-
.reply(200, mockErrata);
|
985
|
-
|
986
|
-
const resolveErrataScope = nockInstance
|
987
|
-
.post(jobInvocations)
|
988
|
-
.reply(201, mockResolveErrataTask);
|
989
|
-
|
990
|
-
const { getAllByText, getByLabelText, queryByText } = renderWithRedux(
|
991
|
-
<ErrataTab />,
|
992
|
-
options,
|
993
|
-
);
|
994
|
-
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
995
|
-
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
996
|
-
|
997
|
-
getByLabelText('Select row 0').click();
|
998
|
-
getByLabelText('Select row 1').click();
|
999
|
-
|
1000
|
-
const viaAction = queryByText('Apply');
|
1001
|
-
expect(viaAction).toBeInTheDocument();
|
1002
|
-
viaAction.click();
|
1003
|
-
|
1004
|
-
assertNockRequest(autocompleteScope);
|
1005
|
-
assertNockRequest(resolveErrataScope);
|
1006
|
-
assertNockRequest(scope, done);
|
1007
|
-
});
|
1008
|
-
|
1009
840
|
test('Can bulk apply via remote execution', async (done) => {
|
1010
841
|
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
1011
842
|
const mockErrata = makeMockErrata({});
|
@@ -1121,49 +952,6 @@ test('Can apply errata in bulk via customized remote execution', async (done) =>
|
|
1121
952
|
assertNockRequest(scope, done);
|
1122
953
|
});
|
1123
954
|
|
1124
|
-
test('Can apply a single erratum to the host via katello agent', async (done) => {
|
1125
|
-
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
1126
|
-
const mockErrata = makeMockErrata({});
|
1127
|
-
const { results } = mockErrata;
|
1128
|
-
const options = renderOptions({
|
1129
|
-
...cfWithErrataTotal(mockErrata.total),
|
1130
|
-
katelloAgentInstalled: true,
|
1131
|
-
katelloAgentEnabled: true,
|
1132
|
-
});
|
1133
|
-
|
1134
|
-
const scope = nockInstance
|
1135
|
-
.get(hostErrata)
|
1136
|
-
.query(defaultQuery)
|
1137
|
-
.reply(200, mockErrata);
|
1138
|
-
|
1139
|
-
const postBody = ({ errata_ids: errataIds }) => isEqual(errataIds, [results[0].errata_id]);
|
1140
|
-
|
1141
|
-
const resolveErrataScope = nockInstance
|
1142
|
-
.put(applyByKatelloAgentUrl, postBody)
|
1143
|
-
.reply(201, mockResolveErrataTask);
|
1144
|
-
|
1145
|
-
const { getAllByText, getByLabelText, getByText } = renderWithRedux(
|
1146
|
-
<ErrataTab />,
|
1147
|
-
options,
|
1148
|
-
);
|
1149
|
-
|
1150
|
-
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
1151
|
-
const erratumActionMenu = within(getByLabelText('Select row 0').closest('tr')).getByLabelText('Actions');
|
1152
|
-
expect(erratumActionMenu).toHaveAttribute('aria-label', 'Actions');
|
1153
|
-
erratumActionMenu.click();
|
1154
|
-
|
1155
|
-
let viaAction;
|
1156
|
-
await patientlyWaitFor(() => {
|
1157
|
-
viaAction = getByText('Apply via Katello agent');
|
1158
|
-
expect(viaAction).toBeInTheDocument();
|
1159
|
-
});
|
1160
|
-
viaAction.click();
|
1161
|
-
|
1162
|
-
assertNockRequest(autocompleteScope);
|
1163
|
-
assertNockRequest(resolveErrataScope);
|
1164
|
-
assertNockRequest(scope, done);
|
1165
|
-
});
|
1166
|
-
|
1167
955
|
test('Can apply a single erratum to the host via remote execution', async (done) => {
|
1168
956
|
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
1169
957
|
const mockErrata = makeMockErrata({});
|