katello 4.16.1 → 4.17.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +5 -3
- data/app/assets/javascripts/katello/locale/bn/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ca/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/cs/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/de/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/el/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/en/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +84 -33
- data/app/assets/javascripts/katello/locale/en_US/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/es/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/fr/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/gl/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/gu/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/hi/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/id/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/it/katello.js +84 -33
- data/app/assets/javascripts/katello/locale/ja/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/ka/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/kn/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ko/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/mr/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/or/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/pa/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/pl/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/pt/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ro/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ru/katello.js +84 -33
- data/app/assets/javascripts/katello/locale/sl/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/ta/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/te/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/tr/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/vi/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/zh/katello.js +82 -31
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +83 -32
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +84 -33
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -3
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +6 -6
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
- data/app/controllers/katello/api/v2/content_views_controller.rb +12 -1
- data/app/controllers/katello/api/v2/exports_controller.rb +3 -0
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -14
- data/app/controllers/katello/api/v2/organizations_controller.rb +10 -10
- data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +8 -2
- data/app/lib/actions/helpers/rolling_cv_repos.rb +25 -0
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +6 -1
- data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +39 -0
- data/app/lib/actions/katello/content_view/create.rb +3 -0
- data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +40 -0
- data/app/lib/actions/katello/content_view/remove.rb +8 -4
- data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +28 -0
- data/app/lib/actions/katello/content_view/update.rb +8 -0
- data/app/lib/actions/katello/repository/check_matching_content.rb +1 -8
- data/app/lib/actions/katello/repository/import_upload.rb +5 -0
- data/app/lib/actions/katello/repository/sync.rb +8 -4
- data/app/lib/actions/katello/repository/upload_files.rb +7 -1
- data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +3 -2
- data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb +8 -1
- data/app/lib/katello/errors.rb +8 -0
- data/app/lib/katello/validators/container_image_name_validator.rb +3 -2
- data/app/models/katello/authorization/repository.rb +11 -1
- data/app/models/katello/concerns/host_managed_extensions.rb +2 -2
- data/app/models/katello/concerns/pulp_database_unit.rb +12 -42
- data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -0
- data/app/models/katello/content_view.rb +14 -1
- data/app/models/katello/content_view_component.rb +4 -0
- data/app/models/katello/content_view_environment.rb +1 -0
- data/app/models/katello/content_view_version.rb +3 -2
- data/app/models/katello/host/content_facet.rb +18 -5
- data/app/models/katello/product_content.rb +3 -1
- data/app/models/katello/repository.rb +3 -3
- data/app/services/katello/content_unit_indexer.rb +1 -1
- data/app/services/katello/pulp3/api/content_guard.rb +1 -1
- data/app/services/katello/pulp3/api/core.rb +6 -0
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +58 -1
- data/app/services/katello/pulp3/smart_proxy_repository.rb +67 -3
- data/app/services/katello/smart_proxy_helper.rb +6 -1
- data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +15 -2
- data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +21 -2
- data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +20 -1
- data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +15 -2
- data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +17 -1
- data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -0
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -1
- data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -0
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -0
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
- data/app/views/katello/api/v2/environments/show.json.rabl +14 -0
- data/app/views/katello/api/v2/hosts/base.json.rabl +1 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +2 -0
- data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
- data/db/migrate/20190930192813_add_pulp3_hrefs_to_content_types.rb +1 -1
- data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
- data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
- data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
- data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
- data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +93 -60
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +94 -35
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +93 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +254 -192
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +90 -35
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +113 -52
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +93 -34
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +101 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +93 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +91 -34
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +90 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +99 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +92 -33
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +14 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
- data/lib/katello/engine.rb +9 -1
- data/lib/katello/repository_types/python.rb +1 -1
- data/lib/katello/tasks/repository.rake +1 -1
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +186 -0
- data/locale/bn/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn/katello.po +82 -31
- data/locale/bn/katello.po.time_stamp +0 -0
- data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn_IN/katello.po +82 -31
- data/locale/bn_IN/katello.po.time_stamp +0 -0
- data/locale/ca/LC_MESSAGES/katello.mo +0 -0
- data/locale/ca/katello.po +82 -31
- data/locale/ca/katello.po.time_stamp +0 -0
- data/locale/cs/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs/katello.po +82 -31
- data/locale/cs/katello.po.time_stamp +0 -0
- data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs_CZ/katello.po +83 -32
- data/locale/cs_CZ/katello.po.time_stamp +0 -0
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +82 -31
- data/locale/de/katello.po.time_stamp +0 -0
- data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_AT/katello.po +82 -31
- data/locale/de_AT/katello.po.time_stamp +0 -0
- data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_DE/katello.po +82 -31
- data/locale/de_DE/katello.po.time_stamp +0 -0
- data/locale/el/LC_MESSAGES/katello.mo +0 -0
- data/locale/el/katello.po +82 -31
- data/locale/el/katello.po.time_stamp +0 -0
- data/locale/en/LC_MESSAGES/katello.mo +0 -0
- data/locale/en/katello.po +82 -31
- data/locale/en/katello.po.time_stamp +0 -0
- data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_GB/katello.po +84 -33
- data/locale/en_GB/katello.po.time_stamp +0 -0
- data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_US/katello.po +82 -31
- data/locale/en_US/katello.po.time_stamp +0 -0
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +82 -31
- data/locale/es/katello.po.time_stamp +0 -0
- data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
- data/locale/et_EE/katello.po +82 -31
- data/locale/et_EE/katello.po.time_stamp +0 -0
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +83 -32
- data/locale/fr/katello.po.time_stamp +0 -0
- data/locale/gl/LC_MESSAGES/katello.mo +0 -0
- data/locale/gl/katello.po +82 -31
- data/locale/gl/katello.po.time_stamp +0 -0
- data/locale/gu/LC_MESSAGES/katello.mo +0 -0
- data/locale/gu/katello.po +84 -33
- data/locale/gu/katello.po.time_stamp +0 -0
- data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
- data/locale/he_IL/katello.po +82 -31
- data/locale/he_IL/katello.po.time_stamp +0 -0
- data/locale/hi/LC_MESSAGES/katello.mo +0 -0
- data/locale/hi/katello.po +82 -31
- data/locale/hi/katello.po.time_stamp +0 -0
- data/locale/id/LC_MESSAGES/katello.mo +0 -0
- data/locale/id/katello.po +82 -31
- data/locale/id/katello.po.time_stamp +0 -0
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +85 -34
- data/locale/it/katello.po.time_stamp +0 -0
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +83 -32
- data/locale/ja/katello.po.time_stamp +0 -0
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +82 -31
- data/locale/ka/katello.po.time_stamp +0 -0
- data/locale/katello.pot +1232 -1140
- data/locale/kn/LC_MESSAGES/katello.mo +0 -0
- data/locale/kn/katello.po +82 -31
- data/locale/kn/katello.po.time_stamp +0 -0
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +82 -31
- data/locale/ko/katello.po.time_stamp +0 -0
- data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ml_IN/katello.po +82 -31
- data/locale/ml_IN/katello.po.time_stamp +0 -0
- data/locale/mr/LC_MESSAGES/katello.mo +0 -0
- data/locale/mr/katello.po +82 -31
- data/locale/mr/katello.po.time_stamp +0 -0
- data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
- data/locale/nl_NL/katello.po +82 -31
- data/locale/nl_NL/katello.po.time_stamp +0 -0
- data/locale/or/LC_MESSAGES/katello.mo +0 -0
- data/locale/or/katello.po +82 -31
- data/locale/or/katello.po.time_stamp +0 -0
- data/locale/pa/LC_MESSAGES/katello.mo +0 -0
- data/locale/pa/katello.po +82 -31
- data/locale/pa/katello.po.time_stamp +0 -0
- data/locale/pl/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl/katello.po +84 -33
- data/locale/pl/katello.po.time_stamp +0 -0
- data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl_PL/katello.po +82 -31
- data/locale/pl_PL/katello.po.time_stamp +0 -0
- data/locale/pt/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt/katello.po +82 -31
- 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 +82 -31
- data/locale/pt_BR/katello.po.time_stamp +0 -0
- data/locale/ro/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro/katello.po +82 -31
- data/locale/ro/katello.po.time_stamp +0 -0
- data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro_RO/katello.po +82 -31
- data/locale/ro_RO/katello.po.time_stamp +0 -0
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +85 -34
- data/locale/ru/katello.po.time_stamp +0 -0
- data/locale/sl/LC_MESSAGES/katello.mo +0 -0
- data/locale/sl/katello.po +82 -31
- data/locale/sl/katello.po.time_stamp +0 -0
- data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
- data/locale/sv_SE/katello.po +84 -33
- data/locale/sv_SE/katello.po.time_stamp +0 -0
- data/locale/ta/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta/katello.po +82 -31
- data/locale/ta/katello.po.time_stamp +0 -0
- data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta_IN/katello.po +82 -31
- data/locale/ta_IN/katello.po.time_stamp +0 -0
- data/locale/te/LC_MESSAGES/katello.mo +0 -0
- data/locale/te/katello.po +82 -31
- data/locale/te/katello.po.time_stamp +0 -0
- data/locale/tr/LC_MESSAGES/katello.mo +0 -0
- data/locale/tr/katello.po +82 -31
- data/locale/tr/katello.po.time_stamp +0 -0
- data/locale/vi/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi/katello.po +82 -31
- data/locale/vi/katello.po.time_stamp +0 -0
- data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi_VN/katello.po +82 -31
- data/locale/vi_VN/katello.po.time_stamp +0 -0
- data/locale/zh/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh/katello.po +82 -31
- data/locale/zh/katello.po.time_stamp +0 -0
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +83 -32
- 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 +85 -34
- data/locale/zh_TW/katello.po.time_stamp +0 -0
- data/webpack/ForemanColumnExtensions/index.js +12 -4
- data/webpack/components/ActivationKeysSearch/index.js +6 -7
- data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
- data/webpack/components/Bookmark/Bookmark.scss +3 -3
- data/webpack/components/Bookmark/index.js +7 -2
- data/webpack/components/EditableSwitch.js +1 -1
- data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
- data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
- data/webpack/components/Errata/index.js +1 -24
- data/webpack/components/Loading.js +10 -6
- data/webpack/components/Packages/index.js +2 -1
- data/webpack/components/SelectAllCheckbox/index.js +7 -3
- data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
- data/webpack/components/Table/EmptyStateMessage.js +12 -14
- data/webpack/components/Table/MainTable.js +8 -7
- data/webpack/components/Table/MainTable.scss +4 -4
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
- data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
- data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
- data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
- data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
- data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
- data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
- data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
- data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
- data/webpack/containers/Application/overrides.scss +7 -7
- data/webpack/ouia_id_check.js +15 -11
- data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
- data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
- data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
- data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
- data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
- data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
- data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
- data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
- data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
- data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
- data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
- data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
- data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
- data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
- data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
- data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
- data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
- data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
- data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
- data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
- data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
- data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
- data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
- data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
- data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
- data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
- data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
- data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
- data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
- data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
- data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
- data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
- data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
- data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
- data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
- data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
- data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
- data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
- data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
- data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
- data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
- data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
- data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
- data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
- data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
- data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
- data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
- data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
- data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
- data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
- data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
- data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
- data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
- data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
- data/webpack/scenes/RedHatRepositories/index.scss +1 -1
- data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
- data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
- data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
- data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
- metadata +125 -53
- data/app/models/katello/yum_metadata_file.rb +0 -22
- data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import React, { useContext, useState } from 'react';
|
2
2
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
3
|
-
import { Alert, Checkbox, EmptyState, EmptyStateVariant,
|
4
|
-
import { TableVariant,
|
3
|
+
import { Alert, Checkbox, EmptyState, EmptyStateVariant, EmptyStateBody, AlertActionCloseButton, EmptyStateHeader } from '@patternfly/react-core';
|
4
|
+
import { TableVariant, Table /* data-codemods */, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
|
5
5
|
import { translate as __ } from 'foremanReact/common/I18n';
|
6
6
|
import DeleteContext from '../DeleteContext';
|
7
7
|
|
@@ -25,9 +25,15 @@ const CVEnvironmentSelectionForm = () => {
|
|
25
25
|
|
26
26
|
// Based on env selected for removal, decide if we need to reassign hosts and activation keys.
|
27
27
|
useDeepCompareEffect(() => {
|
28
|
-
const
|
29
|
-
|
30
|
-
|
28
|
+
const selectedEnvironments = versionEnvironments.filter(env => selectedEnvSet.has(env.id));
|
29
|
+
|
30
|
+
const needsHostReassignment = selectedEnvironments.some(env =>
|
31
|
+
(env.host_count || 0) > (env.multi_env_host_count || 0));
|
32
|
+
setAffectedHosts(needsHostReassignment);
|
33
|
+
|
34
|
+
const needsAKReassignment = selectedEnvironments.some(env =>
|
35
|
+
(env.activation_key_count || 0) > (env.multi_env_ak_count || 0));
|
36
|
+
setAffectedActivationKeys(needsAKReassignment);
|
31
37
|
}, [setAffectedActivationKeys, setAffectedHosts,
|
32
38
|
versionEnvironments, selectedEnvSet, selectedEnvSet.size]);
|
33
39
|
|
@@ -73,12 +79,12 @@ const CVEnvironmentSelectionForm = () => {
|
|
73
79
|
id="delete_version"
|
74
80
|
label={__('Delete version')}
|
75
81
|
isChecked={removeDeletionFlow}
|
76
|
-
onChange={checked => setRemoveDeletionFlow(checked)}
|
82
|
+
onChange={(_event, checked) => setRemoveDeletionFlow(checked)}
|
77
83
|
style={{ margin: 0 }}
|
78
84
|
/>
|
79
85
|
</Alert>)}
|
80
86
|
{(versionEnvironments.length !== 0) &&
|
81
|
-
<
|
87
|
+
<Table ouiaId="version-delete-env-table" variant={TableVariant.compact}>
|
82
88
|
<Thead>
|
83
89
|
<Tr ouiaId="version-delete-env-table-header">
|
84
90
|
<Td
|
@@ -86,7 +92,7 @@ const CVEnvironmentSelectionForm = () => {
|
|
86
92
|
rowIndex: 0,
|
87
93
|
onSelect: onSelectAll,
|
88
94
|
isSelected: areAllSelected() || deleteFlow || removeDeletionFlow,
|
89
|
-
|
95
|
+
isDisabled: deleteFlow || removeDeletionFlow,
|
90
96
|
}}
|
91
97
|
/>
|
92
98
|
{columnHeaders.map(col =>
|
@@ -106,7 +112,7 @@ const CVEnvironmentSelectionForm = () => {
|
|
106
112
|
rowIndex,
|
107
113
|
onSelect: (event, isSelected) => onSelect(event, isSelected, id),
|
108
114
|
isSelected: selectedEnvSet.has(id) || deleteFlow || removeDeletionFlow,
|
109
|
-
|
115
|
+
isDisabled: deleteFlow || removeDeletionFlow,
|
110
116
|
}}
|
111
117
|
/>
|
112
118
|
<Td>
|
@@ -118,12 +124,10 @@ const CVEnvironmentSelectionForm = () => {
|
|
118
124
|
))
|
119
125
|
}
|
120
126
|
</Tbody>
|
121
|
-
</
|
127
|
+
</Table>}
|
122
128
|
{(versionEnvironments.length === 0) &&
|
123
129
|
<EmptyState variant={EmptyStateVariant.xs}>
|
124
|
-
<
|
125
|
-
{__('This version has not been promoted to any environments.')}
|
126
|
-
</Title>
|
130
|
+
<EmptyStateHeader titleText={<>{__('This version has not been promoted to any environments.')}</>} headingLevel="h4" />
|
127
131
|
<EmptyStateBody>
|
128
132
|
{versionEnvironmentsEmptyInfo}
|
129
133
|
</EmptyStateBody>
|
data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
import React, { useState, useContext } from 'react';
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
3
3
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
4
|
-
import {
|
4
|
+
import {
|
5
|
+
ExpandableSection, Alert, AlertActionCloseButton,
|
6
|
+
} from '@patternfly/react-core';
|
7
|
+
import {
|
8
|
+
SelectOption,
|
9
|
+
} from '@patternfly/react-core/deprecated';
|
5
10
|
import { STATUS } from 'foremanReact/constants';
|
6
11
|
import { translate as __ } from 'foremanReact/common/I18n';
|
7
12
|
import EnvironmentPaths from '../../../../components/EnvironmentPaths/EnvironmentPaths';
|
@@ -75,7 +80,7 @@ const CVReassignActivationKeysForm = () => {
|
|
75
80
|
contentViewsInEnvError, selectedEnvForAK, setSelectedCVForAK, setSelectedCVNameForAK,
|
76
81
|
cvInEnvLoading, selectedCVForAK, cvId, versionEnvironments, selectedEnvSet]);
|
77
82
|
|
78
|
-
const
|
83
|
+
const multiCVInfo = activationKeysResponse?.results?.some?.(key =>
|
79
84
|
key.multi_content_view_environment);
|
80
85
|
|
81
86
|
const fetchSelectedCVName = (id) => {
|
@@ -112,12 +117,12 @@ const CVReassignActivationKeysForm = () => {
|
|
112
117
|
|
113
118
|
return (
|
114
119
|
<>
|
115
|
-
{!alertDismissed &&
|
120
|
+
{!alertDismissed && multiCVInfo && (
|
116
121
|
<Alert
|
117
|
-
ouiaId="multi-cv-
|
118
|
-
variant="
|
122
|
+
ouiaId="multi-cv-info-alert"
|
123
|
+
variant="info"
|
119
124
|
isInline
|
120
|
-
title={__('
|
125
|
+
title={__('Multi-environment activation key(s) affected')}
|
121
126
|
actionClose={<AlertActionCloseButton onClose={() => setAlertDismissed(true)} />}
|
122
127
|
>
|
123
128
|
<p>{multiCVRemovalInfo}</p>
|
@@ -145,7 +150,7 @@ const CVReassignActivationKeysForm = () => {
|
|
145
150
|
toggleText={showActivationKeys ?
|
146
151
|
'Hide activation keys' :
|
147
152
|
'Show activation keys'}
|
148
|
-
onToggle={expanded => setShowActivationKeys(expanded)}
|
153
|
+
onToggle={(_event, expanded) => setShowActivationKeys(expanded)}
|
149
154
|
isExpanded={showActivationKeys}
|
150
155
|
>
|
151
156
|
<AffectedActivationKeys
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import React, { useState, useContext } from 'react';
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
3
3
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
4
|
-
import { ExpandableSection,
|
4
|
+
import { ExpandableSection, Alert, AlertActionCloseButton } from '@patternfly/react-core';
|
5
|
+
import { SelectOption } from '@patternfly/react-core/deprecated';
|
5
6
|
import { STATUS } from 'foremanReact/constants';
|
6
7
|
import { translate as __ } from 'foremanReact/common/I18n';
|
8
|
+
import { FormattedMessage } from 'react-intl';
|
7
9
|
import EnvironmentPaths from '../../../../components/EnvironmentPaths/EnvironmentPaths';
|
8
10
|
import getContentViews from '../../../../ContentViewsActions';
|
9
11
|
import { selectContentViewError, selectContentViews, selectContentViewStatus } from '../../../../ContentViewSelectors';
|
@@ -12,6 +14,7 @@ import AffectedHosts from '../affectedHosts';
|
|
12
14
|
import DeleteContext from '../DeleteContext';
|
13
15
|
import ContentViewSelect from '../../../../components/ContentViewSelect/ContentViewSelect';
|
14
16
|
import { getCVPlaceholderText, shouldDisableCVSelect } from '../../../../components/ContentViewSelect/helpers';
|
17
|
+
import { selectEnvironmentPaths } from '../../../../components/EnvironmentPaths/EnvironmentPathSelectors';
|
15
18
|
|
16
19
|
const CVReassignHostsForm = () => {
|
17
20
|
const dispatch = useDispatch();
|
@@ -28,8 +31,40 @@ const CVReassignHostsForm = () => {
|
|
28
31
|
} = useContext(DeleteContext);
|
29
32
|
const [alertDismissed, setAlertDismissed] = useState(false);
|
30
33
|
const hostResponse = useSelector(selectCVHosts);
|
34
|
+
const environmentPathResponse = useSelector(state => selectEnvironmentPaths(state));
|
31
35
|
|
32
|
-
const
|
36
|
+
const contentSourceIds = new Set((hostResponse?.results || [])
|
37
|
+
.map(host => host.content_facet_attributes?.content_source_id)
|
38
|
+
.filter(id => id));
|
39
|
+
|
40
|
+
const lifecycleEnvironments = environmentPathResponse?.results?.map(path =>
|
41
|
+
path.environments).flat() || [];
|
42
|
+
|
43
|
+
const enabledLifecycleEnvironmentIds = new Set();
|
44
|
+
|
45
|
+
if (lifecycleEnvironments) {
|
46
|
+
lifecycleEnvironments.forEach((env) => {
|
47
|
+
if (env.capsules) {
|
48
|
+
env.capsules.forEach((capsule) => {
|
49
|
+
if (contentSourceIds.has(capsule.id) && capsule.lifecycle_environments) {
|
50
|
+
capsule.lifecycle_environments.forEach((le) => {
|
51
|
+
enabledLifecycleEnvironmentIds.add(le.id);
|
52
|
+
});
|
53
|
+
}
|
54
|
+
});
|
55
|
+
}
|
56
|
+
});
|
57
|
+
}
|
58
|
+
|
59
|
+
const disabledEnvs = enabledLifecycleEnvironmentIds.size
|
60
|
+
? lifecycleEnvironments.filter(env => !enabledLifecycleEnvironmentIds.has(env.id))
|
61
|
+
: [];
|
62
|
+
|
63
|
+
const showAlert = disabledEnvs.length > 0;
|
64
|
+
|
65
|
+
const affectedHostIds = (hostResponse?.results || []).map(host => host.id).join(',');
|
66
|
+
|
67
|
+
const multiCVInfo = hostResponse?.results?.some?.(host =>
|
33
68
|
host.content_facet_attributes?.multi_content_view_environment);
|
34
69
|
|
35
70
|
const multiCVRemovalInfo = __('This content view version is used in one or more multi-environment hosts. The version will simply be removed from the multi-environment hosts. The content view and lifecycle environment you select here will only apply to single-environment hosts. See hammer activation-key --help for more details.');
|
@@ -111,23 +146,45 @@ const CVReassignHostsForm = () => {
|
|
111
146
|
|
112
147
|
return (
|
113
148
|
<>
|
114
|
-
{!alertDismissed &&
|
149
|
+
{!alertDismissed && multiCVInfo && (
|
115
150
|
<Alert
|
116
|
-
ouiaId="multi-cv-
|
117
|
-
variant="
|
151
|
+
ouiaId="multi-cv-info-alert"
|
152
|
+
variant="info"
|
118
153
|
isInline
|
119
|
-
title={__('
|
154
|
+
title={__('Multi-environment host(s) affected')}
|
120
155
|
actionClose={<AlertActionCloseButton onClose={() => setAlertDismissed(true)} />}
|
121
156
|
>
|
122
157
|
<p>{multiCVRemovalInfo}</p>
|
123
158
|
</Alert>
|
124
159
|
)}
|
160
|
+
{showAlert && (
|
161
|
+
<Alert
|
162
|
+
variant="info"
|
163
|
+
ouiaId="disabled-environments-alert"
|
164
|
+
isInline
|
165
|
+
title={__('Some environments are disabled because they are not associated with all of the affected hosts\' content sources.')}
|
166
|
+
style={{ marginBottom: '1rem' }}
|
167
|
+
>
|
168
|
+
<FormattedMessage
|
169
|
+
id="hosts.changeContentSourcePrompt"
|
170
|
+
defaultMessage="To enable them, add the environment to the hosts' content sources, or {link}."
|
171
|
+
values={{
|
172
|
+
link: (
|
173
|
+
<a href={`/change_host_content_source?search=id ^ (${affectedHostIds})`}>
|
174
|
+
{__('assign a new content source to the hosts')}
|
175
|
+
</a>
|
176
|
+
),
|
177
|
+
}}
|
178
|
+
/>
|
179
|
+
</Alert>
|
180
|
+
)}
|
125
181
|
<EnvironmentPaths
|
126
182
|
userCheckedItems={selectedEnvForHost}
|
127
183
|
setUserCheckedItems={setSelectedEnvForHost}
|
128
184
|
publishing={false}
|
129
185
|
headerText={__('Select lifecycle environment')}
|
130
186
|
multiSelect={false}
|
187
|
+
enabledLifecycleEnvironmentIds={enabledLifecycleEnvironmentIds}
|
131
188
|
/>
|
132
189
|
<ContentViewSelect
|
133
190
|
onClear={onClear}
|
@@ -146,7 +203,7 @@ const CVReassignHostsForm = () => {
|
|
146
203
|
</ContentViewSelect>
|
147
204
|
<ExpandableSection
|
148
205
|
toggleText={showHosts ? 'Hide hosts' : 'Show hosts'}
|
149
|
-
onToggle={expanded => setShowHosts(expanded)}
|
206
|
+
onToggle={(_event, expanded) => setShowHosts(expanded)}
|
150
207
|
isExpanded={showHosts}
|
151
208
|
>
|
152
209
|
<AffectedHosts
|
data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
import React, { useContext, useState } from 'react';
|
2
2
|
import { useSelector } from 'react-redux';
|
3
|
-
import { Alert, Flex, FlexItem, Label, AlertActionCloseButton } from '@patternfly/react-core';
|
3
|
+
import { Alert, Flex, FlexItem, Label, AlertActionCloseButton, ExpandableSection } from '@patternfly/react-core';
|
4
4
|
import { ExclamationTriangleIcon } from '@patternfly/react-icons';
|
5
5
|
import { FormattedMessage } from 'react-intl';
|
6
6
|
import { translate as __ } from 'foremanReact/common/I18n';
|
7
|
-
import {
|
7
|
+
import { selectCVVersions } from '../../../ContentViewDetailSelectors';
|
8
8
|
import DeleteContext from '../DeleteContext';
|
9
9
|
import WizardHeader from '../../../../components/WizardHeader';
|
10
|
+
import AffectedHosts from '../affectedHosts';
|
11
|
+
import AffectedActivationKeys from '../affectedActivationKeys';
|
10
12
|
|
11
13
|
const CVVersionRemoveReview = () => {
|
12
14
|
const [alertDismissed, setAlertDismissed] = useState(false);
|
15
|
+
const [showHosts, setShowHosts] = useState(false);
|
16
|
+
const [showAKs, setShowAKs] = useState(false);
|
13
17
|
const {
|
14
|
-
cvId, versionIdToRemove, versionNameToRemove, selectedEnvSet,
|
18
|
+
cvId, versionEnvironments, versionIdToRemove, versionNameToRemove, selectedEnvSet,
|
15
19
|
selectedEnvForAK, selectedCVNameForAK, selectedCVNameForHosts,
|
16
|
-
selectedEnvForHost,
|
20
|
+
selectedEnvForHost, deleteFlow, removeDeletionFlow,
|
17
21
|
} = useContext(DeleteContext);
|
18
|
-
const activationKeysResponse = useSelector(state => selectCVActivationKeys(state, cvId));
|
19
|
-
const hostsResponse = useSelector(state => selectCVHosts(state, cvId));
|
20
|
-
const { results: hostResponse = [] } = hostsResponse || {};
|
21
|
-
const { results: akResponse = [] } = activationKeysResponse || {};
|
22
22
|
const cvVersions = useSelector(state => selectCVVersions(state, cvId));
|
23
23
|
const versionDeleteInfo = __(`Version ${versionNameToRemove} will be deleted from all environments. It will no longer be available for promotion.`);
|
24
24
|
const removalNotice = __(`Version ${versionNameToRemove} will be removed from the environments listed below, and will remain available for later promotion. ` +
|
@@ -29,16 +29,19 @@ const CVVersionRemoveReview = () => {
|
|
29
29
|
.flatMap(cv => cv.content_view_environments || [])
|
30
30
|
.filter(env => selectedEnvSet.has(env.environment_id));
|
31
31
|
|
32
|
-
const
|
33
|
-
host.content_facet_attributes?.multi_content_view_environment) || [];
|
34
|
-
const multiCVHostsCount = multiCVHosts.length;
|
32
|
+
const selectedEnvs = versionEnvironments.filter(env => selectedEnvSet.has(env.id));
|
35
33
|
|
36
|
-
const
|
34
|
+
const hostCount = selectedEnvs.reduce((sum, env) =>
|
35
|
+
sum + (env.host_count || 0), 0);
|
36
|
+
const multiCVHostsCount = selectedEnvs.reduce((sum, env) =>
|
37
|
+
sum + (env.multi_env_host_count || 0), 0);
|
38
|
+
const singleCVHostsCount = hostCount - multiCVHostsCount;
|
37
39
|
|
38
|
-
const
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
const akCount = selectedEnvs.reduce((sum, env) =>
|
41
|
+
sum + (env.activation_key_count || 0), 0);
|
42
|
+
const multiCVActivationKeysCount = selectedEnvs.reduce((sum, env) =>
|
43
|
+
sum + (env.multi_env_ak_count || 0), 0);
|
44
|
+
const singleCVActivationKeysCount = akCount - multiCVActivationKeysCount;
|
42
45
|
|
43
46
|
return (
|
44
47
|
<>
|
@@ -63,10 +66,10 @@ const CVVersionRemoveReview = () => {
|
|
63
66
|
</Flex>
|
64
67
|
<Flex>
|
65
68
|
{selectedCVE?.map(({ environment_name: name, environment_id: id }) =>
|
66
|
-
<FlexItem key={name}><Label
|
69
|
+
<FlexItem key={name}><Label color="purple" href={`/lifecycle_environments/${id}`}>{name}</Label></FlexItem>)}
|
67
70
|
</Flex>
|
68
71
|
</>}
|
69
|
-
{
|
72
|
+
{hostCount > 0 &&
|
70
73
|
<>
|
71
74
|
<h3>{__('Content hosts')}</h3>
|
72
75
|
{singleCVHostsCount > 0 && (
|
@@ -82,7 +85,7 @@ const CVVersionRemoveReview = () => {
|
|
82
85
|
plural: __('hosts'),
|
83
86
|
cvName: selectedCVNameForHosts,
|
84
87
|
envName: selectedEnvForHost[0] && (
|
85
|
-
<Label
|
88
|
+
<Label color="purple" href={`/lifecycle_environments/${selectedEnvForHost[0].id}`}>
|
86
89
|
{selectedEnvForHost[0].name}
|
87
90
|
</Label>
|
88
91
|
),
|
@@ -121,8 +124,22 @@ const CVVersionRemoveReview = () => {
|
|
121
124
|
</FlexItem>
|
122
125
|
</Flex>
|
123
126
|
)}
|
127
|
+
<ExpandableSection
|
128
|
+
toggleText={showHosts ? 'Hide hosts' : 'Show hosts'}
|
129
|
+
onToggle={() => setShowHosts(prev => !prev)}
|
130
|
+
isExpanded={showHosts}
|
131
|
+
>
|
132
|
+
<AffectedHosts
|
133
|
+
{...{
|
134
|
+
cvId,
|
135
|
+
versionEnvironments,
|
136
|
+
selectedEnvSet,
|
137
|
+
}}
|
138
|
+
deleteCV={false}
|
139
|
+
/>
|
140
|
+
</ExpandableSection>
|
124
141
|
</>}
|
125
|
-
{
|
142
|
+
{akCount > 0 &&
|
126
143
|
<>
|
127
144
|
<h3>{__('Activation keys')}</h3>
|
128
145
|
{singleCVActivationKeysCount > 0 && (
|
@@ -138,7 +155,7 @@ const CVVersionRemoveReview = () => {
|
|
138
155
|
plural: __('activation keys'),
|
139
156
|
cvName: selectedCVNameForAK,
|
140
157
|
envName: selectedEnvForAK[0] && (
|
141
|
-
<Label
|
158
|
+
<Label color="purple" href={`/lifecycle_environments/${selectedEnvForAK[0].id}`}>
|
142
159
|
{selectedEnvForAK[0].name}
|
143
160
|
</Label>
|
144
161
|
),
|
@@ -177,6 +194,20 @@ const CVVersionRemoveReview = () => {
|
|
177
194
|
</FlexItem>
|
178
195
|
</Flex>
|
179
196
|
)}
|
197
|
+
<ExpandableSection
|
198
|
+
toggleText={showAKs ? 'Hide activation keys' : 'Show activation keys'}
|
199
|
+
onToggle={() => setShowAKs(prev => !prev)}
|
200
|
+
isExpanded={showAKs}
|
201
|
+
>
|
202
|
+
<AffectedActivationKeys
|
203
|
+
{...{
|
204
|
+
cvId,
|
205
|
+
versionEnvironments,
|
206
|
+
selectedEnvSet,
|
207
|
+
}}
|
208
|
+
deleteCV={false}
|
209
|
+
/>
|
210
|
+
</ExpandableSection>
|
180
211
|
</>}
|
181
212
|
</>
|
182
213
|
);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { renderWithRedux, patientlyWaitFor, fireEvent } from 'react-testing-lib-wrapper';
|
3
|
-
import { nockInstance, assertNockRequest, mockAutocomplete
|
3
|
+
import { nockInstance, assertNockRequest, mockAutocomplete } from '../../../../../../test-utils/nockWrapper';
|
4
4
|
import api, { foremanApi } from '../../../../../../services/api';
|
5
5
|
import CONTENT_VIEWS_KEY from '../../../../ContentViewsConstants';
|
6
6
|
import ContentViewVersions from '../../ContentViewVersions';
|
@@ -61,7 +61,8 @@ test('Can call API and show versions on page load', async (done) => {
|
|
61
61
|
expect(getByText(`Version ${firstVersion.version}`)).toBeTruthy();
|
62
62
|
});
|
63
63
|
assertNockRequest(autocompleteScope);
|
64
|
-
assertNockRequest(scope
|
64
|
+
assertNockRequest(scope);
|
65
|
+
done();
|
65
66
|
});
|
66
67
|
|
67
68
|
test('Can open Remove wizard and remove version from simple environment', async (done) => {
|
@@ -97,9 +98,9 @@ test('Can open Remove wizard and remove version from simple environment', async
|
|
97
98
|
expect(getByText(`Version ${firstVersion.version}`)).toBeTruthy();
|
98
99
|
});
|
99
100
|
// Expand Row Action
|
100
|
-
expect(getAllByLabelText('
|
101
|
-
fireEvent.click(getAllByLabelText('
|
102
|
-
expect(getAllByLabelText('
|
101
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'false');
|
102
|
+
fireEvent.click(getAllByLabelText('Kebab toggle')[0]);
|
103
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'true');
|
103
104
|
fireEvent.click(getByText('Remove from environments'));
|
104
105
|
await patientlyWaitFor(() => {
|
105
106
|
expect(getByText('Remove Version')).toBeInTheDocument();
|
@@ -115,13 +116,18 @@ test('Can open Remove wizard and remove version from simple environment', async
|
|
115
116
|
assertNockRequest(scope);
|
116
117
|
assertNockRequest(autocompleteScope);
|
117
118
|
assertNockRequest(envPathRemovalScope);
|
118
|
-
assertNockRequest(versionRemovalScope
|
119
|
+
assertNockRequest(versionRemovalScope);
|
120
|
+
done();
|
119
121
|
});
|
120
122
|
|
121
123
|
test('Can open Remove wizard and remove version from environment with hosts', async (done) => {
|
122
124
|
const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
|
123
125
|
const hostAutocompleteUrl = '/hosts/auto_complete_search';
|
124
|
-
const hostAutocompleteScope =
|
126
|
+
const hostAutocompleteScope = nockInstance
|
127
|
+
.get(foremanApi.getApiUrl(hostAutocompleteUrl))
|
128
|
+
.query(true)
|
129
|
+
.times(2)
|
130
|
+
.reply(200, []);
|
125
131
|
|
126
132
|
const scope = nockInstance
|
127
133
|
.get(cvVersions)
|
@@ -136,6 +142,7 @@ test('Can open Remove wizard and remove version from environment with hosts', as
|
|
136
142
|
const hostScope = nockInstance
|
137
143
|
.get(hostURL)
|
138
144
|
.query(true)
|
145
|
+
.times(2)
|
139
146
|
.reply(200, affectedHostData);
|
140
147
|
|
141
148
|
const cVDropDownOptionsScope = nockInstance
|
@@ -166,9 +173,9 @@ test('Can open Remove wizard and remove version from environment with hosts', as
|
|
166
173
|
expect(getByText(`Version ${firstVersion.version}`)).toBeTruthy();
|
167
174
|
});
|
168
175
|
// Expand Row Action
|
169
|
-
expect(getAllByLabelText('
|
170
|
-
fireEvent.click(getAllByLabelText('
|
171
|
-
expect(getAllByLabelText('
|
176
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'false');
|
177
|
+
fireEvent.click(getAllByLabelText('Kebab toggle')[0]);
|
178
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'true');
|
172
179
|
fireEvent.click(getByText('Remove from environments'));
|
173
180
|
await patientlyWaitFor(() => {
|
174
181
|
expect(getByText('Remove Version')).toBeInTheDocument();
|
@@ -202,13 +209,18 @@ test('Can open Remove wizard and remove version from environment with hosts', as
|
|
202
209
|
assertNockRequest(hostScope);
|
203
210
|
assertNockRequest(cVDropDownOptionsScope);
|
204
211
|
assertNockRequest(envPathRemovalScope);
|
205
|
-
assertNockRequest(versionRemovalScope
|
212
|
+
assertNockRequest(versionRemovalScope);
|
213
|
+
done();
|
206
214
|
});
|
207
215
|
|
208
216
|
test('Can open Remove wizard and remove version from environment with activation keys', async (done) => {
|
209
217
|
const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
|
210
218
|
const akAutocompleteUrl = '/activation_keys/auto_complete_search';
|
211
|
-
const akAutocompleteScope =
|
219
|
+
const akAutocompleteScope = nockInstance
|
220
|
+
.get(api.getApiUrl(akAutocompleteUrl))
|
221
|
+
.query(true)
|
222
|
+
.times(2)
|
223
|
+
.reply(200, []);
|
212
224
|
|
213
225
|
const scope = nockInstance
|
214
226
|
.get(cvVersions)
|
@@ -223,6 +235,7 @@ test('Can open Remove wizard and remove version from environment with activation
|
|
223
235
|
const activationKeysScope = nockInstance
|
224
236
|
.get(activationKeyURL)
|
225
237
|
.query(true)
|
238
|
+
.times(2)
|
226
239
|
.reply(200, affectedActivationKeysData);
|
227
240
|
|
228
241
|
const cVDropDownOptionsScope = nockInstance
|
@@ -253,9 +266,9 @@ test('Can open Remove wizard and remove version from environment with activation
|
|
253
266
|
expect(getByText(`Version ${firstVersion.version}`)).toBeTruthy();
|
254
267
|
});
|
255
268
|
// Expand Row Action
|
256
|
-
expect(getAllByLabelText('
|
257
|
-
fireEvent.click(getAllByLabelText('
|
258
|
-
expect(getAllByLabelText('
|
269
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'false');
|
270
|
+
fireEvent.click(getAllByLabelText('Kebab toggle')[0]);
|
271
|
+
expect(getAllByLabelText('Kebab toggle')[0]).toHaveAttribute('aria-expanded', 'true');
|
259
272
|
fireEvent.click(getByText('Remove from environments'));
|
260
273
|
await patientlyWaitFor(() => {
|
261
274
|
expect(getByText('Remove Version')).toBeInTheDocument();
|
@@ -290,5 +303,6 @@ test('Can open Remove wizard and remove version from environment with activation
|
|
290
303
|
assertNockRequest(activationKeysScope);
|
291
304
|
assertNockRequest(cVDropDownOptionsScope);
|
292
305
|
assertNockRequest(envPathRemovalScope);
|
293
|
-
assertNockRequest(versionRemovalScope
|
306
|
+
assertNockRequest(versionRemovalScope);
|
307
|
+
done();
|
294
308
|
});
|
data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
.content-view-header-content {
|
2
2
|
padding-top: 24px;
|
3
3
|
|
4
|
-
.pf-c-content {
|
4
|
+
.pf-v5-c-content {
|
5
5
|
dl {
|
6
6
|
margin: 0;
|
7
7
|
}
|
8
8
|
}
|
9
9
|
|
10
|
-
.pf-l-flex {
|
10
|
+
.pf-v5-l-flex {
|
11
11
|
padding-top: 24px;
|
12
12
|
}
|
13
13
|
}
|
@@ -17,30 +17,30 @@
|
|
17
17
|
margin-top: 24px;
|
18
18
|
display: flex;
|
19
19
|
|
20
|
-
.pf-c-tabs.pf-m-vertical {
|
20
|
+
.pf-v5-c-tabs.pf-m-vertical {
|
21
21
|
max-width: 230px;
|
22
22
|
border-right: 1px solid #d2d2d2;
|
23
23
|
|
24
|
-
.pf-c-tabs__item {
|
24
|
+
.pf-v5-c-tabs__item {
|
25
25
|
margin-top: 0;
|
26
26
|
|
27
27
|
button {
|
28
28
|
align-items: center;
|
29
29
|
|
30
|
-
.pf-c-label__content {
|
30
|
+
.pf-v5-c-label__content {
|
31
31
|
&::before {
|
32
32
|
border: none;
|
33
33
|
}
|
34
34
|
}
|
35
35
|
}
|
36
36
|
|
37
|
-
&.pf-m-current .pf-c-label__content {
|
37
|
+
&.pf-m-current .pf-v5-c-label__content {
|
38
38
|
font-weight: bold;
|
39
39
|
}
|
40
40
|
}
|
41
41
|
}
|
42
42
|
|
43
|
-
.pf-l-grid.pf-m-gutter {
|
43
|
+
.pf-v5-l-grid.pf-m-gutter {
|
44
44
|
display: initial;
|
45
45
|
width: 100%;
|
46
46
|
}
|
data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js
CHANGED
@@ -11,11 +11,13 @@ import {
|
|
11
11
|
Label,
|
12
12
|
Flex,
|
13
13
|
FlexItem,
|
14
|
+
} from '@patternfly/react-core';
|
15
|
+
import {
|
14
16
|
Dropdown,
|
15
17
|
DropdownItem,
|
16
18
|
KebabToggle,
|
17
19
|
DropdownPosition,
|
18
|
-
} from '@patternfly/react-core';
|
20
|
+
} from '@patternfly/react-core/deprecated';
|
19
21
|
import { useHistory } from 'react-router-dom';
|
20
22
|
import { translate as __ } from 'foremanReact/common/I18n';
|
21
23
|
import { hasPermission } from '../../../helpers';
|
@@ -131,7 +133,7 @@ const ContentViewVersionDetailsHeader = ({
|
|
131
133
|
style={{ width: 'inherit' }}
|
132
134
|
position={DropdownPosition.right}
|
133
135
|
toggle={
|
134
|
-
<KebabToggle onToggle={setDropdownOpen} id="toggle-dropdown" />
|
136
|
+
<KebabToggle onToggle={(_event, val) => setDropdownOpen(val)} id="toggle-dropdown" />
|
135
137
|
}
|
136
138
|
isOpen={dropdownOpen}
|
137
139
|
dropdownItems={dropDownItems}
|
@@ -153,7 +155,7 @@ const ContentViewVersionDetailsHeader = ({
|
|
153
155
|
<Flex>
|
154
156
|
{environments?.map(({ name, id: envId }) => (
|
155
157
|
<FlexItem key={name}>
|
156
|
-
<Label
|
158
|
+
<Label color="purple" href={`/lifecycle_environments/${envId}`}>{name}</Label>
|
157
159
|
</FlexItem>))}
|
158
160
|
</Flex>
|
159
161
|
</GridItem>
|
data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js
CHANGED
@@ -9,10 +9,12 @@ import {
|
|
9
9
|
} from 'react-redux';
|
10
10
|
import {
|
11
11
|
Grid,
|
12
|
+
} from '@patternfly/react-core';
|
13
|
+
import {
|
12
14
|
Select,
|
13
15
|
SelectOption,
|
14
16
|
SelectVariant,
|
15
|
-
} from '@patternfly/react-core';
|
17
|
+
} from '@patternfly/react-core/deprecated';
|
16
18
|
import {
|
17
19
|
TableVariant,
|
18
20
|
Tbody,
|
@@ -94,7 +96,7 @@ const ContentViewVersionDetailsTable = ({
|
|
94
96
|
actionButtons={
|
95
97
|
repoType &&
|
96
98
|
<Select
|
97
|
-
onToggle={setOpen}
|
99
|
+
onToggle={(_event, val) => setOpen(val)}
|
98
100
|
isOpen={open}
|
99
101
|
ouiaId="repo-type-selector"
|
100
102
|
variant={SelectVariant.single}
|
@@ -108,7 +108,8 @@ test('Can show versions details - Components Tab', async (done) => {
|
|
108
108
|
|
109
109
|
assertNockRequest(scope);
|
110
110
|
assertNockRequest(scope);
|
111
|
-
assertNockRequest(componentScope
|
111
|
+
assertNockRequest(componentScope);
|
112
|
+
done();
|
112
113
|
});
|
113
114
|
|
114
115
|
const testConfig = [
|
@@ -255,7 +256,8 @@ testConfig.forEach(({
|
|
255
256
|
assertNockRequest(autocompleteScope);
|
256
257
|
assertNockRequest(scope);
|
257
258
|
assertNockRequest(tabScope);
|
258
|
-
assertNockRequest(scope
|
259
|
+
assertNockRequest(scope);
|
260
|
+
done();
|
259
261
|
}));
|
260
262
|
|
261
263
|
test('Can change repository selector', async (done) => {
|
@@ -317,5 +319,6 @@ test('Can change repository selector', async (done) => {
|
|
317
319
|
assertNockRequest(autocompleteScope);
|
318
320
|
assertNockRequest(scope);
|
319
321
|
assertNockRequest(tabScope);
|
320
|
-
assertNockRequest(scope
|
322
|
+
assertNockRequest(scope);
|
323
|
+
done();
|
321
324
|
});
|
@@ -59,6 +59,7 @@ test('Can show versions detail header', async (done) => {
|
|
59
59
|
await patientlyWaitFor(() => {
|
60
60
|
expect(getByText(`Version ${version}`)).toBeInTheDocument();
|
61
61
|
});
|
62
|
-
assertNockRequest(scope
|
62
|
+
assertNockRequest(scope);
|
63
|
+
done();
|
63
64
|
act(done);// Need to tell the test to stahp!
|
64
65
|
});
|