katello 4.4.1 → 4.5.0
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/app/assets/javascripts/katello/hosts/activation_key_edit.js +9 -2
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +3 -0
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +5 -1
- data/app/controllers/katello/api/v2/alternate_content_sources_bulk_actions_controller.rb +44 -0
- data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +121 -0
- data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +39 -3
- data/app/controllers/katello/api/v2/content_exports_controller.rb +19 -0
- data/app/controllers/katello/api/v2/content_imports_controller.rb +13 -16
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +0 -12
- data/app/controllers/katello/api/v2/content_views_controller.rb +13 -0
- data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_module_streams_controller.rb +8 -2
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +25 -3
- data/app/controllers/katello/api/v2/organizations_controller.rb +4 -2
- data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +1 -1
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +40 -7
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -2
- data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +1 -1
- data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +4 -0
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +21 -3
- data/app/lib/actions/katello/alternate_content_source/create.rb +24 -0
- data/app/lib/actions/katello/alternate_content_source/destroy.rb +27 -0
- data/app/lib/actions/katello/alternate_content_source/refresh.rb +27 -0
- data/app/lib/actions/katello/alternate_content_source/update.rb +41 -0
- data/app/lib/actions/katello/cdn_configuration/update.rb +3 -3
- data/app/lib/actions/katello/content_view/destroy.rb +2 -1
- data/app/lib/actions/katello/content_view/incremental_updates.rb +7 -3
- data/app/lib/actions/katello/content_view/publish.rb +8 -10
- data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
- data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +6 -4
- data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +6 -4
- data/app/lib/actions/katello/content_view_version/import.rb +25 -22
- data/app/lib/actions/katello/content_view_version/import_library.rb +0 -1
- data/app/lib/actions/katello/content_view_version/import_repository.rb +21 -0
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +85 -93
- data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
- data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
- data/app/lib/actions/katello/product/content_create.rb +10 -8
- data/app/lib/actions/katello/repository/destroy.rb +36 -12
- data/app/lib/actions/katello/repository_set/disable_repository.rb +8 -3
- data/app/lib/actions/pulp3/alternate_content_source/create.rb +20 -0
- data/app/lib/actions/pulp3/alternate_content_source/create_remote.rb +20 -0
- data/app/lib/actions/pulp3/alternate_content_source/delete.rb +16 -0
- data/app/lib/actions/pulp3/alternate_content_source/delete_remote.rb +16 -0
- data/app/lib/actions/pulp3/alternate_content_source/refresh.rb +23 -0
- data/app/lib/actions/pulp3/alternate_content_source/update.rb +16 -0
- data/app/lib/actions/pulp3/alternate_content_source/update_remote.rb +17 -0
- data/app/lib/actions/pulp3/content_view_version/{import.rb → create_import.rb} +5 -5
- data/app/lib/actions/pulp3/content_view_version/create_importer.rb +4 -3
- data/app/lib/actions/pulp3/content_view_version/destroy_importer.rb +12 -1
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/create.rb +16 -0
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +23 -0
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/refresh.rb +15 -0
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +16 -0
- data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +51 -0
- data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +5 -2
- data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
- data/app/lib/katello/api/v2/error_handling.rb +1 -0
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +24 -11
- data/app/lib/katello/resources/cdn/katello_cdn.rb +3 -1
- data/app/lib/katello/util/errata.rb +2 -3
- data/app/lib/katello/validators/alternate_content_source_path_validator.rb +29 -0
- data/app/lib/katello/validators/content_default_http_proxy_setting_validator.rb +12 -0
- data/app/lib/katello/validators/content_view_environment_validator.rb +10 -5
- data/app/models/katello/alternate_content_source.rb +71 -0
- data/app/models/katello/authorization/alternate_content_source.rb +33 -0
- data/app/models/katello/authorization/repository.rb +5 -3
- data/app/models/katello/candlepin/repository_mapper.rb +13 -6
- data/app/models/katello/cdn_configuration.rb +15 -15
- data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +7 -6
- data/app/models/katello/concerns/http_proxy_extensions.rb +14 -0
- data/app/models/katello/concerns/organization_extensions.rb +4 -2
- data/app/models/katello/concerns/setting_extensions.rb +14 -0
- data/app/models/katello/concerns/smart_proxy_extensions.rb +2 -1
- data/app/models/katello/content.rb +1 -0
- data/app/models/katello/content_credential.rb +6 -0
- data/app/models/katello/content_override.rb +7 -3
- data/app/models/katello/content_view.rb +33 -2
- data/app/models/katello/content_view_erratum_filter.rb +26 -12
- data/app/models/katello/content_view_filter.rb +4 -0
- data/app/models/katello/content_view_version.rb +12 -0
- data/app/models/katello/content_view_version_export_history.rb +3 -1
- data/app/models/katello/erratum.rb +9 -5
- data/app/models/katello/events/delete_latest_content_view_version.rb +40 -0
- data/app/models/katello/host/content_facet.rb +14 -0
- data/app/models/katello/host_available_module_stream.rb +12 -0
- data/app/models/katello/product_content.rb +1 -0
- data/app/models/katello/purpose_sla_status.rb +1 -1
- data/app/models/katello/purpose_status.rb +2 -2
- data/app/models/katello/repository.rb +7 -4
- data/app/models/katello/root_repository.rb +1 -1
- data/app/models/katello/smart_proxy_alternate_content_source.rb +8 -0
- data/app/models/katello/sync_plan.rb +1 -1
- data/app/presenters/katello/product_content_presenter.rb +15 -0
- data/app/services/katello/applicable_host_queue.rb +1 -1
- data/app/services/katello/product_content_finder.rb +12 -2
- data/app/services/katello/pulp3/alternate_content_source.rb +123 -0
- data/app/services/katello/pulp3/api/file.rb +8 -0
- data/app/services/katello/pulp3/api/yum.rb +8 -0
- data/app/services/katello/pulp3/content_view_version/export.rb +27 -5
- data/app/services/katello/pulp3/content_view_version/import.rb +104 -71
- data/app/services/katello/pulp3/content_view_version/import_export_common.rb +4 -4
- data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +13 -11
- data/app/services/katello/pulp3/content_view_version/import_validator.rb +67 -72
- data/app/services/katello/pulp3/content_view_version/importable_products.rb +40 -24
- data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +102 -38
- data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +2 -2
- data/app/services/katello/pulp3/content_view_version/metadata_map.rb +117 -0
- data/app/services/katello/pulp3/pulp_content_unit.rb +6 -1
- data/app/services/katello/pulp3/repository/yum.rb +70 -12
- data/app/services/katello/pulp3/repository.rb +6 -62
- data/app/services/katello/pulp3/service_common.rb +66 -0
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +4 -1
- data/app/services/katello/ui_notifications/content_view/delete_latest_version_failure.rb +22 -0
- data/app/views/foreman/job_templates/change_content_source.erb +1 -1
- data/app/views/foreman/job_templates/install_errata.erb +5 -5
- data/app/views/foreman/job_templates/install_errata_by_search_query.erb +10 -8
- data/app/views/foreman/job_templates/install_group.erb +4 -4
- data/app/views/foreman/job_templates/install_package.erb +4 -4
- data/app/views/foreman/job_templates/install_packages_by_search_query.erb +3 -3
- data/app/views/foreman/job_templates/remove_group.erb +4 -4
- data/app/views/foreman/job_templates/remove_package.erb +4 -4
- data/app/views/foreman/job_templates/remove_packages_by_search_query.erb +3 -3
- data/app/views/foreman/job_templates/resolve_traces.erb +2 -2
- data/app/views/foreman/job_templates/restart_services.erb +3 -3
- data/app/views/foreman/job_templates/update_group.erb +4 -4
- data/app/views/foreman/job_templates/update_package.erb +4 -4
- data/app/views/foreman/job_templates/update_packages_by_search_query.erb +3 -3
- data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +24 -0
- data/app/views/katello/api/v2/alternate_content_sources/index.json.rabl +7 -0
- data/app/views/katello/api/v2/alternate_content_sources/show.json.rabl +3 -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 +12 -0
- data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +2 -3
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +1 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
- data/app/views/katello/api/v2/environments/show.json.rabl +2 -0
- data/app/views/katello/api/v2/errata/_counts.json.rabl +2 -2
- data/app/views/katello/api/v2/host_module_streams/base.json.rabl +2 -2
- data/app/views/katello/api/v2/hosts/host_collections.json.rabl +1 -1
- data/app/views/katello/api/v2/organizations/show.json.rabl +7 -1
- data/app/views/katello/api/v2/repositories/show.json.rabl +2 -1
- data/app/views/katello/api/v2/repository_sets/show.json.rabl +4 -0
- data/app/views/katello/sync_management/_repo.html.erb +8 -29
- data/config/routes/api/v2.rb +19 -0
- data/db/migrate/20150930183738_migrate_content_hosts.rb +0 -399
- data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +1 -1
- data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
- data/db/migrate/20180402160223_clean_up_force_post_sync_action_setting.rb +1 -1
- data/db/migrate/20211129200124_remove_dependency_solving_algorithm_setting.rb +1 -1
- data/db/migrate/20211220185935_clean_duplicate_content_units.rb +1 -1
- data/db/migrate/20220110223754_update_disconnected_settings.rb +5 -5
- data/db/migrate/20220117151612_add_alternate_content_sources.rb +48 -0
- data/db/migrate/20220124191056_add_type_to_cdn_configuration.rb +9 -4
- data/db/migrate/20220209203251_add_generated_for_to_content_views.rb +13 -0
- data/db/migrate/20220209205137_expand_sync_timeout_settings.rb +7 -7
- data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +12 -0
- data/db/migrate/20220303160220_remove_duplicate_errata.rb +1 -1
- data/db/migrate/20220404190836_delete_old_setting_data.rb +9 -0
- data/db/migrate/20220405220616_update_cdn_configuration_type.rb +11 -0
- data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +5 -0
- data/db/migrate/20220428203334_add_last_refreshed_to_katello_alternate_content_sources.rb +5 -0
- data/db/seeds.d/110-content-view-autopublish.rb +13 -0
- data/db/seeds.d/150-module_job_templates.rb +1 -1
- data/engines/bastion/README.md +1 -0
- data/engines/bastion/app/assets/javascripts/bastion/components/bst-modal.directive.js +1 -0
- data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +11 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +11 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +8 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +10 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html +27 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +22 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +13 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +63 -17
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +7 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +10 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +21 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +8 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +7 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +6 -1
- data/lib/katello/engine.rb +1 -5
- data/lib/katello/permission_creator.rb +34 -4
- data/lib/katello/plugin.rb +377 -3
- data/lib/katello/tasks/refresh_alternate_content_sources.rake +15 -0
- data/lib/katello/tasks/reset.rake.bak +67 -0
- data/lib/katello/tasks/update_content_default_http_proxy.rake +2 -3
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +47 -41
- data/locale/bn/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn/katello.po +820 -106
- data/locale/bn/katello.po.time_stamp +0 -0
- data/locale/cs/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs/katello.po +818 -104
- data/locale/cs/katello.po.time_stamp +0 -0
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +893 -179
- data/locale/de/katello.po.time_stamp +0 -0
- data/locale/en/LC_MESSAGES/katello.mo +0 -0
- data/locale/en/katello.po +817 -103
- data/locale/en/katello.po.time_stamp +0 -0
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +882 -168
- data/locale/es/katello.po.time_stamp +0 -0
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +1219 -505
- data/locale/fr/katello.po.time_stamp +0 -0
- data/locale/gu/LC_MESSAGES/katello.mo +0 -0
- data/locale/gu/katello.po +826 -112
- data/locale/gu/katello.po.time_stamp +0 -0
- data/locale/hi/LC_MESSAGES/katello.mo +0 -0
- data/locale/hi/katello.po +826 -112
- data/locale/hi/katello.po.time_stamp +0 -0
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +863 -148
- data/locale/it/katello.po.time_stamp +0 -0
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +1216 -499
- data/locale/ja/katello.po.time_stamp +0 -0
- data/locale/katello.pot +3847 -2507
- data/locale/kn/LC_MESSAGES/katello.mo +0 -0
- data/locale/kn/katello.po +826 -112
- data/locale/kn/katello.po.time_stamp +0 -0
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +912 -198
- data/locale/ko/katello.po.time_stamp +0 -0
- data/locale/mr/LC_MESSAGES/katello.mo +0 -0
- data/locale/mr/katello.po +826 -112
- data/locale/mr/katello.po.time_stamp +0 -0
- data/locale/or/LC_MESSAGES/katello.mo +0 -0
- data/locale/or/katello.po +826 -112
- data/locale/or/katello.po.time_stamp +0 -0
- data/locale/pa/LC_MESSAGES/katello.mo +0 -0
- data/locale/pa/katello.po +826 -112
- data/locale/pa/katello.po.time_stamp +0 -0
- data/locale/pt/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt/katello.po +817 -103
- data/locale/pt/katello.po.time_stamp +0 -0
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +879 -165
- data/locale/pt_BR/katello.po.time_stamp +0 -0
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +927 -213
- data/locale/ru/katello.po.time_stamp +0 -0
- data/locale/ta/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta/katello.po +820 -106
- data/locale/ta/katello.po.time_stamp +0 -0
- data/locale/te/LC_MESSAGES/katello.mo +0 -0
- data/locale/te/katello.po +826 -112
- data/locale/te/katello.po.time_stamp +0 -0
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +1202 -486
- data/locale/zh_CN/katello.po.time_stamp +0 -0
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +856 -142
- data/locale/zh_TW/katello.po.time_stamp +0 -0
- data/webpack/components/Bookmark/index.js +22 -14
- data/webpack/components/EditableTextInput/EditableTextInput.js +20 -5
- data/webpack/components/Errata/index.js +38 -8
- data/webpack/components/Packages/index.js +1 -4
- data/webpack/components/Search/Search.js +22 -3
- data/webpack/components/SelectAllCheckbox/index.js +1 -0
- data/webpack/components/SelectableDropdown/SelectableDropdown.js +4 -2
- data/webpack/components/Table/EmptyStateMessage.js +21 -7
- data/webpack/components/Table/MainTable.js +29 -4
- data/webpack/components/Table/MainTable.scss +5 -1
- data/webpack/components/Table/TableHooks.js +65 -20
- data/webpack/components/Table/TableWrapper.js +9 -3
- data/webpack/components/Table/components/SortableColumnHeaders.js +19 -0
- data/webpack/components/Table/components/TranslatedPlural.js +57 -0
- data/webpack/components/TypeAhead/TypeAhead.js +12 -0
- data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +13 -11
- data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +7 -2
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +27 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +250 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +232 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +19 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewConstants.js +2 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +131 -0
- data/webpack/components/extensions/HostDetails/Cards/{__tests__ → ContentViewDetailsCard/__tests__}/contentViewDetailsCard.test.js +22 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +443 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/envPaths.fixtures.json +320 -0
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +57 -33
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +3 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsActions.js +30 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +206 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsConstants.js +7 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +227 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsSelectors.js +18 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/availableHostCollections.fixtures.json +106 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsCard.test.js +118 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +235 -0
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/removableHostCollections.fixtures.json +45 -0
- data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +33 -8
- data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +44 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/RecentCommunicationCardExtensions.js +37 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +107 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +38 -0
- data/webpack/components/extensions/HostDetails/HostDetailsActions.js +11 -0
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +2 -0
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +6 -1
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +176 -72
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +1 -7
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsActions.js +1 -3
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsConstants.js +28 -0
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +522 -118
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -7
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +6 -4
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +164 -58
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +59 -49
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionHooks.js +85 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +33 -54
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +20 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +298 -107
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +14 -7
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/HostTracesActions.js +2 -1
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +104 -0
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +134 -57
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +37 -32
- data/webpack/components/extensions/HostDetails/Tabs/{ModuleStreamsTab/__tests__/modules.fixtures.json → __tests__/moduleStreams.fixtures.json} +6 -3
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +261 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +21 -15
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +44 -1
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +4 -1
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +105 -6
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +25 -6
- data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +6 -0
- data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +18 -0
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/global_index.js +32 -9
- data/webpack/global_test_setup.js +13 -0
- data/webpack/redux/actions/RedHatRepositories/enabled.js +2 -1
- data/webpack/redux/actions/RedHatRepositories/helpers.js +13 -8
- data/webpack/scenes/AlternateContentSources/ACSActions.js +65 -0
- data/webpack/scenes/AlternateContentSources/ACSConstants.js +18 -0
- data/webpack/scenes/AlternateContentSources/ACSIndexPage.js +23 -0
- data/webpack/scenes/AlternateContentSources/ACSSelectors.js +24 -0
- data/webpack/scenes/AlternateContentSources/Create/ACSCreateContext.js +4 -0
- data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +160 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +79 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +199 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSReview.js +104 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +41 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +71 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +57 -0
- data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +77 -0
- data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +149 -0
- data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreateData.fixtures.json +3 -0
- data/webpack/scenes/AlternateContentSources/Create/__tests__/contentCredentials.fixtures.json +69 -0
- data/webpack/scenes/AlternateContentSources/Create/__tests__/smartProxy.fixtures.json +65 -0
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +162 -0
- data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsIndex.fixtures.json +91 -0
- data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +67 -0
- data/webpack/scenes/AlternateContentSources/index.js +4 -0
- data/webpack/scenes/Content/Details/ContentRepositories.js +1 -0
- data/webpack/scenes/Content/Table/ContentTable.js +1 -0
- data/webpack/scenes/ContentCredentials/ContentCredentialSelectors.js +4 -1
- data/webpack/scenes/ContentViews/ContentViewsActions.js +6 -2
- data/webpack/scenes/ContentViews/ContentViewsConstants.js +11 -3
- data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +2 -1
- data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +10 -1
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +2 -1
- data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +7 -5
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +29 -21
- data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +15 -8
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +2 -2
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +2 -2
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +3 -1
- data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +34 -8
- data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +33 -29
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +130 -79
- data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +16 -2
- data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +2 -1
- data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +2 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +6 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +41 -21
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +38 -20
- data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +2 -0
- data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +8 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +9 -1
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
- data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +27 -12
- data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +39 -17
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +27 -10
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +46 -23
- data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +3 -2
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +5 -2
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +161 -108
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +7 -7
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +58 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteContextWrapper.js +45 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteHelpers.js +30 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +56 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +126 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/FinishBulkDelete.js +61 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +196 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +220 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +104 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteModal.test.js +122 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteVersions.fixtures.json +600 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentView.fixtures.json +1504 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentViewVersion.fixtures.json +936 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/environmentPaths.fixtures.json +261 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +163 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/bulkDeleteSteps.js +79 -0
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +192 -167
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +2 -5
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +38 -53
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +1 -1
- data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -12
- data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +8 -20
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +23 -13
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +3 -0
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +4 -4
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +0 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +4 -4
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +12 -14
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +96 -117
- data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +13 -19
- data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +9 -20
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +165 -148
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +2 -0
- data/webpack/scenes/ContentViews/components/ContentViewIcon.js +14 -3
- data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +10 -6
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +6 -1
- data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +40 -35
- data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +1 -1
- data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +2 -2
- data/webpack/scenes/ContentViews/helpers.js +3 -0
- data/webpack/scenes/Hosts/ChangeContentSource/helpers.js +5 -0
- data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +3 -3
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/EnabledRepository.test.js +2 -0
- data/webpack/scenes/RedHatRepositories/components/Search.js +4 -4
- data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +9 -2
- data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -1
- data/webpack/scenes/SmartProxy/SmartProxyContentSelectors.js +10 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationConstants.js +3 -3
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +2 -0
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{AirGappedTypeForm.js → ExportSyncForm.js} +7 -6
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{UpstreamServerTypeForm.js → NetworkSyncForm.js} +15 -7
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{AirGappedTypeForm.test.js → ExportSyncForm.test.js} +4 -4
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{UpstreamServerTypeForm.test.js → NetworkSyncForm.test.js} +8 -8
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/index.js +11 -11
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -0
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +8 -7
- data/webpack/scenes/Tasks/TaskActions.js +6 -0
- data/webpack/scenes/Tasks/TaskSelectors.js +11 -0
- data/webpack/scenes/Tasks/helpers.js +60 -5
- data/webpack/utils/helpers.js +2 -0
- metadata +183 -38
- data/app/models/setting/content.rb +0 -201
- data/db/seeds.d/107-enable_dynflow.rb +0 -8
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +0 -96
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/moduleStreamsTab.test.js +0 -108
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerEmptyState.js +0 -42
- data/webpack/scenes/ContentViews/Details/DetailsContainer.js +0 -36
@@ -243,12 +243,16 @@ module Katello
|
|
243
243
|
api.content_distribution_trees_api.list(options)
|
244
244
|
end
|
245
245
|
|
246
|
-
def add_filter_content(source_repo_ids, filters, filter_list_map)
|
246
|
+
def add_filter_content(source_repo_ids, filters, filter_list_map, additional_included_errata)
|
247
247
|
filters.each do |filter|
|
248
248
|
if filter.inclusion
|
249
249
|
source_repo_ids.each do |repo_id|
|
250
250
|
filter_list_map[:whitelist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id))
|
251
251
|
end
|
252
|
+
elsif filter.class == ContentViewErratumFilter
|
253
|
+
source_repo_ids.each do |repo_id|
|
254
|
+
filter_list_map[:blacklist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id), additional_included_errata)
|
255
|
+
end
|
252
256
|
else
|
253
257
|
source_repo_ids.each do |repo_id|
|
254
258
|
filter_list_map[:blacklist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id))
|
@@ -297,6 +301,7 @@ module Katello
|
|
297
301
|
filter_list_map
|
298
302
|
end
|
299
303
|
|
304
|
+
# rubocop:disable Metrics/MethodLength
|
300
305
|
def copy_content_from_mapping(repo_id_map, options = {})
|
301
306
|
repo_id_map.each do |source_repo_ids, dest_repo_map|
|
302
307
|
filters = [ContentViewErratumFilter, ContentViewPackageGroupFilter, ContentViewPackageFilter].collect do |filter_class|
|
@@ -305,8 +310,20 @@ module Katello
|
|
305
310
|
modular_filters = ContentViewModuleStreamFilter.where(:id => dest_repo_map[:filter_ids])
|
306
311
|
filters.flatten!.compact!
|
307
312
|
|
313
|
+
errata_filters = ContentViewErratumFilter.where(:id => dest_repo_map[:filter_ids])
|
314
|
+
|
315
|
+
# Only filter out RPMs & modules via an erratum filter if they're not included in other allowed errata.
|
316
|
+
# Begin this by calculating all the errata that should be copied.
|
317
|
+
# If there are exclude filters, send the errata to the relevant methods to ensure their contents aren't excluded.
|
318
|
+
additional_included_errata = []
|
319
|
+
all_excluded_errata = []
|
320
|
+
unless errata_filters.blacklist.empty?
|
321
|
+
all_included_errata, all_excluded_errata = filtered_errata(errata_filters, source_repo_ids)
|
322
|
+
additional_included_errata = all_included_errata - all_excluded_errata
|
323
|
+
end
|
324
|
+
|
308
325
|
filter_list_map = { whitelist_ids: [], blacklist_ids: [] }
|
309
|
-
filter_list_map = add_filter_content(source_repo_ids, filters, filter_list_map)
|
326
|
+
filter_list_map = add_filter_content(source_repo_ids, filters, filter_list_map, additional_included_errata)
|
310
327
|
filter_list_map = add_un_modular_rpms(source_repo_ids, filters, filter_list_map)
|
311
328
|
filter_list_map = add_modular_content(source_repo_ids, filters, modular_filters, filter_list_map)
|
312
329
|
|
@@ -320,7 +337,7 @@ module Katello
|
|
320
337
|
|
321
338
|
if content_unit_hrefs.any?
|
322
339
|
source_repo_ids.each do |source_repo_id|
|
323
|
-
content_unit_hrefs += additional_content_hrefs(::Katello::Repository.find(source_repo_id), content_unit_hrefs)
|
340
|
+
content_unit_hrefs += additional_content_hrefs(::Katello::Repository.find(source_repo_id), content_unit_hrefs, all_excluded_errata)
|
324
341
|
end
|
325
342
|
end
|
326
343
|
|
@@ -331,29 +348,68 @@ module Katello
|
|
331
348
|
|
332
349
|
multi_copy_units(repo_id_map, dependency_solving)
|
333
350
|
end
|
351
|
+
# rubocop:enable Metrics/MethodLength
|
352
|
+
|
353
|
+
# Calculate errata that should be included and excluded.
|
354
|
+
# https://projects.theforeman.org/issues/34437
|
355
|
+
def filtered_errata(errata_filters, source_repository_ids)
|
356
|
+
if errata_filters.whitelist.empty?
|
357
|
+
all_included_errata = ::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
|
358
|
+
joins("inner join katello_repositories on katello_repositories.id = katello_repository_errata.repository_id").
|
359
|
+
where("katello_repositories.id in (?)", source_repository_ids)
|
360
|
+
else
|
361
|
+
all_included_errata = errata_filters.whitelist.collect do |filter|
|
362
|
+
::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
|
363
|
+
where(filter.generate_clauses(nil)).where("katello_repository_errata.repository_id in (?)", source_repository_ids)
|
364
|
+
end
|
365
|
+
all_included_errata.flatten!
|
366
|
+
end
|
367
|
+
all_excluded_errata = errata_filters.blacklist.collect do |filter|
|
368
|
+
::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
|
369
|
+
where(filter.generate_clauses(nil)).where("katello_repository_errata.repository_id in (?)", source_repository_ids)
|
370
|
+
end
|
371
|
+
all_excluded_errata.flatten!
|
372
|
+
return all_included_errata, all_excluded_errata
|
373
|
+
end
|
334
374
|
|
335
|
-
|
336
|
-
|
375
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
|
376
|
+
def copy_content_for_source(source_repository, options = {})
|
377
|
+
package_filters = [ContentViewPackageGroupFilter, ContentViewPackageFilter].collect do |filter_class|
|
337
378
|
filter_class.where(:id => options[:filter_ids])
|
338
379
|
end
|
380
|
+
package_filters.flatten!.compact!
|
381
|
+
|
382
|
+
errata_filters = ContentViewErratumFilter.where(:id => options[:filter_ids])
|
339
383
|
|
340
|
-
filters.flatten!.compact!
|
341
384
|
whitelist_ids = []
|
342
385
|
blacklist_ids = []
|
343
|
-
|
386
|
+
|
387
|
+
# Only filter out RPMs & modules via an erratum filter if they're not included in other allowed errata.
|
388
|
+
# Begin this by calculating all the errata that should be copied.
|
389
|
+
# If there are exclude filters, send the errata to the relevant methods to ensure their contents aren't excluded.
|
390
|
+
additional_included_errata = []
|
391
|
+
all_excluded_errata = []
|
392
|
+
unless errata_filters.blacklist.empty?
|
393
|
+
all_included_errata, all_excluded_errata = filtered_errata(errata_filters, [source_repository.id])
|
394
|
+
additional_included_errata = all_included_errata - all_excluded_errata
|
395
|
+
end
|
396
|
+
|
397
|
+
(errata_filters + package_filters).each do |filter|
|
344
398
|
if filter.inclusion
|
345
399
|
whitelist_ids += filter.content_unit_pulp_ids(source_repository)
|
400
|
+
elsif filter.class == ContentViewErratumFilter
|
401
|
+
blacklist_ids += filter.content_unit_pulp_ids(source_repository, additional_included_errata)
|
346
402
|
else
|
347
403
|
blacklist_ids += filter.content_unit_pulp_ids(source_repository)
|
348
404
|
end
|
349
405
|
end
|
350
406
|
|
351
|
-
whitelist_ids = source_repository.rpms.where(:modular => false).pluck(:pulp_id).sort if (whitelist_ids.empty? &&
|
407
|
+
whitelist_ids = source_repository.rpms.where(:modular => false).pluck(:pulp_id).sort if (whitelist_ids.empty? && (errata_filters + package_filters).select { |filter| filter.inclusion }.empty?)
|
352
408
|
|
353
409
|
modular_filters = ContentViewModuleStreamFilter.where(:id => options[:filter_ids])
|
354
410
|
inclusion_modular_filters = modular_filters.select { |filter| filter.inclusion }
|
355
411
|
exclusion_modular_filters = modular_filters - inclusion_modular_filters
|
356
|
-
if inclusion_modular_filters.empty? &&
|
412
|
+
if inclusion_modular_filters.empty? && errata_filters.whitelist.empty?
|
357
413
|
whitelist_ids += source_repository.rpms.where(:modular => true).pluck(:pulp_id).sort
|
358
414
|
whitelist_ids += source_repository.module_streams.pluck(:pulp_id).sort
|
359
415
|
end
|
@@ -362,10 +418,11 @@ module Katello
|
|
362
418
|
content_unit_hrefs = whitelist_ids - blacklist_ids
|
363
419
|
content_unit_hrefs += source_repository.srpms.pluck(:pulp_id)
|
364
420
|
if content_unit_hrefs.any?
|
365
|
-
content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs)
|
421
|
+
content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs, all_excluded_errata)
|
366
422
|
end
|
367
423
|
copy_units(source_repository, content_unit_hrefs.uniq, options[:remove_all])
|
368
424
|
end
|
425
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
|
369
426
|
|
370
427
|
def modular_packages(source_repository, filters)
|
371
428
|
list_ids = []
|
@@ -375,13 +432,14 @@ module Katello
|
|
375
432
|
list_ids
|
376
433
|
end
|
377
434
|
|
378
|
-
def additional_content_hrefs(source_repository, content_unit_hrefs)
|
435
|
+
def additional_content_hrefs(source_repository, content_unit_hrefs, all_excluded_errata)
|
379
436
|
repo_service = source_repository.backend_service(SmartProxy.pulp_primary)
|
380
437
|
options = { :repository_version => source_repository.version_href }
|
381
438
|
|
382
439
|
errata_to_include = filter_errata_by_pulp_href(source_repository.errata, content_unit_hrefs,
|
383
440
|
source_repository.rpms.pluck(:filename) +
|
384
|
-
source_repository.srpms.pluck(:filename))
|
441
|
+
source_repository.srpms.pluck(:filename)) -
|
442
|
+
all_excluded_errata
|
385
443
|
content_unit_hrefs += errata_to_include.collect do |erratum|
|
386
444
|
erratum.repository_errata.where(repository_id: source_repository.id).pluck(:erratum_pulp3_href)
|
387
445
|
end
|
@@ -4,6 +4,7 @@ module Katello
|
|
4
4
|
module Pulp3
|
5
5
|
class Repository
|
6
6
|
include Katello::Util::HttpProxy
|
7
|
+
include Katello::Pulp3::ServiceCommon
|
7
8
|
attr_accessor :repo
|
8
9
|
attr_accessor :smart_proxy
|
9
10
|
delegate :root, to: :repo
|
@@ -49,13 +50,6 @@ module Katello
|
|
49
50
|
@api ||= self.class.api(smart_proxy, repo.content_type)
|
50
51
|
end
|
51
52
|
|
52
|
-
def ignore_404_exception(*)
|
53
|
-
yield
|
54
|
-
rescue api.api_exception_class => e
|
55
|
-
raise e unless e.code == 404
|
56
|
-
nil
|
57
|
-
end
|
58
|
-
|
59
53
|
def published?
|
60
54
|
!repo.publication_href.nil?
|
61
55
|
end
|
@@ -74,56 +68,8 @@ module Katello
|
|
74
68
|
end
|
75
69
|
|
76
70
|
def create_remote
|
77
|
-
|
78
|
-
|
79
|
-
else
|
80
|
-
remote_file_data = api.remote_class.new(remote_options)
|
81
|
-
end
|
82
|
-
reformat_api_exception do
|
83
|
-
if remote_options[:url]&.start_with?('uln')
|
84
|
-
response = api.remotes_uln_api.create(remote_file_data)
|
85
|
-
else
|
86
|
-
response = api.remotes_api.create(remote_file_data)
|
87
|
-
end
|
88
|
-
repo.update!(:remote_href => response.pulp_href)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
# When updating a repository, we need to update the remote, but this is
|
93
|
-
# an async task. If some validation occurs, we won't know about it until
|
94
|
-
# the task runs. Errors during a repository update task are very difficult to
|
95
|
-
# handle once the task is in its run phase, so this creates a test remote
|
96
|
-
# with a random name in order to validate the remote's configuration
|
97
|
-
def create_test_remote
|
98
|
-
test_remote_options = remote_options
|
99
|
-
test_remote_options[:name] = test_remote_name
|
100
|
-
if remote_options[:url]&.start_with?('uln')
|
101
|
-
remote_file_data = api.class.remote_uln_class.new(test_remote_options)
|
102
|
-
else
|
103
|
-
remote_file_data = api.remote_class.new(test_remote_options)
|
104
|
-
end
|
105
|
-
|
106
|
-
reformat_api_exception do
|
107
|
-
if remote_options[:url]&.start_with?('uln')
|
108
|
-
response = api.remotes_uln_api.create(remote_file_data)
|
109
|
-
else
|
110
|
-
response = api.remotes_api.create(remote_file_data)
|
111
|
-
end
|
112
|
-
#delete is async, but if its not properly deleted, orphan cleanup will take care of it later
|
113
|
-
delete_remote(response.pulp_href)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_remote_name
|
118
|
-
"test_remote_#{SecureRandom.uuid}"
|
119
|
-
end
|
120
|
-
|
121
|
-
def reformat_api_exception
|
122
|
-
yield
|
123
|
-
rescue api.client_module::ApiError => exception
|
124
|
-
body = JSON.parse(exception.response_body) rescue body
|
125
|
-
body = body.values.join(',') if body.respond_to?(:values)
|
126
|
-
raise ::Katello::Errors::Pulp3Error, body
|
71
|
+
response = super
|
72
|
+
repo.update!(:remote_href => response.pulp_href)
|
127
73
|
end
|
128
74
|
|
129
75
|
def update_remote
|
@@ -436,10 +382,8 @@ module Katello
|
|
436
382
|
}
|
437
383
|
remote_options[:url] = root.url unless root.url.blank?
|
438
384
|
remote_options[:download_concurrency] = root.download_concurrency unless root.download_concurrency.blank?
|
439
|
-
|
440
|
-
|
441
|
-
password: root.upstream_password)
|
442
|
-
end
|
385
|
+
remote_options.merge!(username: root&.upstream_username,
|
386
|
+
password: root&.upstream_password)
|
443
387
|
remote_options.merge!(ssl_remote_options)
|
444
388
|
end
|
445
389
|
|
@@ -479,7 +423,7 @@ module Katello
|
|
479
423
|
client_key: root.product.key,
|
480
424
|
ca_cert: Katello::Repository.feed_ca_cert(root.url)
|
481
425
|
}
|
482
|
-
elsif root.redhat? && root.cdn_configuration.
|
426
|
+
elsif root.redhat? && root.cdn_configuration.network_sync?
|
483
427
|
{
|
484
428
|
client_cert: root.cdn_configuration.ssl_cert,
|
485
429
|
client_key: root.cdn_configuration.ssl_key,
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Katello
|
2
|
+
module Pulp3
|
3
|
+
module ServiceCommon
|
4
|
+
def create_remote
|
5
|
+
response = nil
|
6
|
+
if remote_options[:url]&.start_with?('uln')
|
7
|
+
remote_file_data = api.class.remote_uln_class.new(remote_options)
|
8
|
+
else
|
9
|
+
remote_file_data = api.remote_class.new(remote_options)
|
10
|
+
end
|
11
|
+
reformat_api_exception do
|
12
|
+
if remote_options[:url]&.start_with?('uln')
|
13
|
+
response = api.remotes_uln_api.create(remote_file_data)
|
14
|
+
else
|
15
|
+
response = api.remotes_api.create(remote_file_data)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
response
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_remote_name
|
22
|
+
"test_remote_#{SecureRandom.uuid}"
|
23
|
+
end
|
24
|
+
|
25
|
+
# When updating a repository, we need to update the remote, but this is
|
26
|
+
# an async task. If some validation occurs, we won't know about it until
|
27
|
+
# the task runs. Errors during a repository update task are very difficult to
|
28
|
+
# handle once the task is in its run phase, so this creates a test remote
|
29
|
+
# with a random name in order to validate the remote's configuration
|
30
|
+
def create_test_remote
|
31
|
+
test_remote_options = remote_options
|
32
|
+
test_remote_options[:name] = test_remote_name
|
33
|
+
if remote_options[:url]&.start_with?('uln')
|
34
|
+
remote_file_data = api.class.remote_uln_class.new(test_remote_options)
|
35
|
+
else
|
36
|
+
remote_file_data = api.remote_class.new(test_remote_options)
|
37
|
+
end
|
38
|
+
|
39
|
+
reformat_api_exception do
|
40
|
+
if remote_options[:url]&.start_with?('uln')
|
41
|
+
response = api.remotes_uln_api.create(remote_file_data)
|
42
|
+
else
|
43
|
+
response = api.remotes_api.create(remote_file_data)
|
44
|
+
end
|
45
|
+
#delete is async, but if its not properly deleted, orphan cleanup will take care of it later
|
46
|
+
delete_remote(response.pulp_href)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def ignore_404_exception(*)
|
51
|
+
yield
|
52
|
+
rescue api.api_exception_class => e
|
53
|
+
raise e unless e.code == 404
|
54
|
+
nil
|
55
|
+
end
|
56
|
+
|
57
|
+
def reformat_api_exception
|
58
|
+
yield
|
59
|
+
rescue api.client_module::ApiError => exception
|
60
|
+
body = JSON.parse(exception.response_body) rescue body
|
61
|
+
body = body.values.join(',') if body.respond_to?(:values)
|
62
|
+
raise ::Katello::Errors::Pulp3Error, body
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -76,12 +76,15 @@ module Katello
|
|
76
76
|
def delete_orphan_remotes
|
77
77
|
tasks = []
|
78
78
|
repo_names = Katello::Repository.pluck(:pulp_id)
|
79
|
+
acs_remotes = Katello::SmartProxyAlternateContentSource.pluck(:remote_href)
|
79
80
|
pulp3_enabled_repo_types.each do |repo_type|
|
80
81
|
api = repo_type.pulp3_api(smart_proxy)
|
81
82
|
remotes = api.remotes_list
|
82
83
|
|
83
84
|
remotes.each do |remote|
|
84
|
-
|
85
|
+
if !repo_names.include?(remote.name) && !acs_remotes.include?(remote.pulp_href)
|
86
|
+
tasks << api.delete_remote(remote.pulp_href)
|
87
|
+
end
|
85
88
|
end
|
86
89
|
end
|
87
90
|
tasks
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Katello
|
2
|
+
module UINotifications
|
3
|
+
module ContentView
|
4
|
+
class DelelteLatestVersionFailure < ::UINotifications::Base
|
5
|
+
private
|
6
|
+
|
7
|
+
def create
|
8
|
+
Notification.create!(
|
9
|
+
subject: subject,
|
10
|
+
initiator: initiator,
|
11
|
+
audience: ::Notification::AUDIENCE_ADMIN,
|
12
|
+
notification_blueprint: blueprint
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
def blueprint
|
17
|
+
@blueprint ||= NotificationBlueprint.find_by(name: 'content_view_auto_publish_error')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Install Errata - Katello
|
3
|
+
name: Install Errata - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install errata %{errata}'
|
6
6
|
feature: katello_errata_install
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: errata
|
10
10
|
description: A comma-separated list of errata to install
|
11
11
|
input_type: user
|
12
12
|
required: true
|
13
13
|
foreign_input_sets:
|
14
|
-
- template: Package Action -
|
14
|
+
- template: Package Action - Script Default
|
15
15
|
exclude: action,package
|
16
16
|
%>
|
17
17
|
<% if @host.operatingsystem.family == 'Suse' -%>
|
18
18
|
<% advisories = input(:errata).split(',').join(' ') %>
|
19
|
-
<%= render_template('Package Action -
|
19
|
+
<%= render_template('Package Action - Script Default', :action => 'install -n -t patch', :package => advisories) %>
|
20
20
|
<% else %>
|
21
21
|
<% advisories = input(:errata).split(',').map { |e| "--advisory=#{e}" }.join(' ') %>
|
22
|
-
<%= render_template('Package Action -
|
22
|
+
<%= render_template('Package Action - Script Default', :action => 'update-minimal', :package => advisories) %>
|
23
23
|
<% end %>
|
@@ -1,26 +1,28 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Install errata by search query - Katello
|
3
|
+
name: Install errata by search query - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install errata %{Errata search query}'
|
6
6
|
feature: katello_errata_install_by_search
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: Errata search query
|
10
10
|
description: Filter criteria for errata to be installed.
|
11
11
|
input_type: user
|
12
12
|
required: false
|
13
13
|
foreign_input_sets:
|
14
|
-
- template: Package Action -
|
14
|
+
- template: Package Action - Script Default
|
15
15
|
exclude: action,package
|
16
16
|
%>
|
17
17
|
|
18
|
+
<% advisory_ids = @host.advisory_ids(search: input("Errata search query")) %>
|
19
|
+
# RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
|
20
|
+
|
18
21
|
<% if @host.operatingsystem.family == 'Suse' -%>
|
19
|
-
|
20
|
-
<%= render_template('Package Action - SSH Default', :action => 'install -n -t patch', :package => advisories) %>
|
22
|
+
<%= render_template('Package Action - Script Default', :action => 'install -n -t patch', :package => advisory_ids.join(' ')) %>
|
21
23
|
<% else %>
|
22
|
-
<%
|
24
|
+
<% raise "No errata matching given search query" if !input("Errata search query").blank? && advisory_ids.empty? %>
|
23
25
|
|
24
26
|
<% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') %>
|
25
|
-
<%= render_template('Package Action -
|
26
|
-
<% end %>
|
27
|
+
<%= render_template('Package Action - Script Default', :action => 'update-minimal', :package => advisories) %>
|
28
|
+
<% end %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Install Group - Katello
|
3
|
+
name: Install Group - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install package group(s) %{package}'
|
6
6
|
feature: katello_group_install
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'group install') %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Install Package - Katello
|
3
|
+
name: Install Package - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install package(s) %{package}'
|
6
6
|
feature: katello_package_install
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'install') %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Install packages by search query - Katello
|
3
|
+
name: Install packages by search query - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install package(s) %{Package search query}'
|
6
6
|
feature: katello_package_install_by_search
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: Package search query
|
10
10
|
description: Filter criteria for packages to be installed. IMPORTANT- If left blank, the job will attempt to install all possible packages.
|
@@ -16,4 +16,4 @@ template_inputs:
|
|
16
16
|
search: input('Package search query')
|
17
17
|
) -%>
|
18
18
|
|
19
|
-
<%= render_template('Package Action -
|
19
|
+
<%= render_template('Package Action - Script Default', :action => 'install', :package => package_names.join(' ')) %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Remove Group - Katello
|
3
|
+
name: Remove Group - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Remove package group(s) %{package}'
|
6
6
|
feature: katello_group_remove
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'group remove') %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Remove Package - Katello
|
3
|
+
name: Remove Package - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Remove package(s) %{package}'
|
6
6
|
feature: katello_package_remove
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'remove') %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Remove Packages by search query - Katello
|
3
|
+
name: Remove Packages by search query - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Remove packages %{Packages search query}'
|
6
6
|
feature: katello_packages_remove_by_search
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: Packages search query
|
10
10
|
description: Filter criteria for packages to be removed.
|
@@ -16,4 +16,4 @@ template_inputs:
|
|
16
16
|
search: input('Packages search query')
|
17
17
|
) -%>
|
18
18
|
|
19
|
-
<%= render_template('Package Action -
|
19
|
+
<%= render_template('Package Action - Script Default', :action => 'remove', :package => package_names.join(' ')) %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Resolve Traces - Katello
|
3
|
+
name: Resolve Traces - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Resolve Traces'
|
6
6
|
feature: katello_host_tracer_resolve
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: Traces search query
|
10
10
|
description: Search query to provide traces to resolve
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Restart Services - Katello
|
3
|
+
name: Restart Services - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Restart Services'
|
6
6
|
feature: katello_service_restart
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: helper
|
10
10
|
description: A comma separated list of commands to run to restart services
|
@@ -19,5 +19,5 @@ reboot = commands.delete('reboot')
|
|
19
19
|
<%= commands.join("\n") %>
|
20
20
|
katello-tracer-upload
|
21
21
|
<% if reboot -%>
|
22
|
-
<%= render_template('Power Action -
|
22
|
+
<%= render_template('Power Action - Script Default', action: 'restart') %>
|
23
23
|
<% end %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Update Group - Katello
|
3
|
+
name: Update Group - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Install package group(s) %{package}'
|
6
6
|
feature: katello_group_update
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'group update') %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Update Package - Katello
|
3
|
+
name: Update Package - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Update package(s) %{package}'
|
6
6
|
feature: katello_package_update
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
foreign_input_sets:
|
9
|
-
- template: Package Action -
|
9
|
+
- template: Package Action - Script Default
|
10
10
|
exclude: action
|
11
11
|
%>
|
12
12
|
|
13
|
-
<%= render_template('Package Action -
|
13
|
+
<%= render_template('Package Action - Script Default', :action => 'update') %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%#
|
2
2
|
kind: job_template
|
3
|
-
name: Update Packages by search query - Katello
|
3
|
+
name: Update Packages by search query - Katello Script Default
|
4
4
|
job_category: Katello
|
5
5
|
description_format: 'Update package(s) %{Packages search query}'
|
6
6
|
feature: katello_packages_update_by_search
|
7
|
-
provider_type:
|
7
|
+
provider_type: script
|
8
8
|
template_inputs:
|
9
9
|
- name: Packages search query
|
10
10
|
description: Filter criteria for packages to be updated.
|
@@ -16,4 +16,4 @@ template_inputs:
|
|
16
16
|
search: input('Packages search query')
|
17
17
|
) -%>
|
18
18
|
|
19
|
-
<%= render_template('Package Action -
|
19
|
+
<%= render_template('Package Action - Script Default', :action => 'update', :package => package_names.join(' ')) %>
|