katello 4.4.2.2 → 4.5.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +5 -1
- data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +98 -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_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 +9 -3
- 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/update.rb +41 -0
- data/app/lib/actions/katello/cdn_configuration/update.rb +2 -2
- 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 +7 -9
- 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/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/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 +18 -0
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +23 -0
- data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +18 -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/refresh_distribution.rb +4 -1
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -0
- data/app/lib/katello/api/v2/error_handling.rb +1 -0
- 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 +66 -0
- data/app/models/katello/authorization/alternate_content_source.rb +33 -0
- data/app/models/katello/authorization/repository.rb +3 -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 -5
- 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/content_unit_indexer.rb +2 -1
- data/app/services/katello/product_content_finder.rb +12 -2
- data/app/services/katello/pulp3/alternate_content_source.rb +117 -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 +97 -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 +88 -39
- 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 +7 -91
- 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 +7 -6
- 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 +15 -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_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/sync_management/_repo.html.erb +8 -29
- data/config/routes/api/v2.rb +7 -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 +10 -12
- 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/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/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/details/activation-key-details.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +10 -5
- 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-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 -9
- 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 +32 -4
- data/lib/katello/plugin.rb +378 -4
- 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/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 +18 -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/TableHooks.js +63 -19
- data/webpack/components/Table/TableWrapper.js +4 -2
- data/webpack/components/Table/components/SortableColumnHeaders.js +19 -0
- data/webpack/components/Table/components/TranslatedPlural.js +57 -0
- data/webpack/components/TypeAhead/TypeAhead.js +8 -0
- data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +13 -11
- data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +5 -2
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +27 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +256 -0
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +202 -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 +187 -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 +110 -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/RegistrationCard.js +107 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +38 -0
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +62 -39
- 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 +486 -116
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/moduleStreamsTab.test.js +147 -1
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/modules.fixtures.json +6 -3
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -7
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +2 -1
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +48 -19
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +35 -47
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -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 +269 -132
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +47 -11
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +30 -42
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +36 -1
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +94 -46
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +18 -2
- data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +6 -0
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/global_index.js +30 -7
- data/webpack/global_test_setup.js +13 -0
- data/webpack/redux/actions/RedHatRepositories/enabled.js +2 -1
- data/webpack/redux/actions/RedHatRepositories/helpers.js +9 -8
- data/webpack/scenes/AlternateContentSources/ACSActions.js +53 -0
- data/webpack/scenes/AlternateContentSources/ACSConstants.js +4 -0
- data/webpack/scenes/AlternateContentSources/ACSIndexPage.js +23 -0
- data/webpack/scenes/AlternateContentSources/ACSSelectors.js +15 -0
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +152 -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/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 +4 -3
- data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +1 -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 +3 -3
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +4 -4
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +3 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +4 -4
- 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 +17 -3
- 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/__tests__/contentViewPage.test.js +4 -4
- data/webpack/scenes/ContentViews/components/ContentViewIcon.js +14 -3
- data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +1 -1
- data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +9 -5
- 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/DetailsExpansion.js +2 -2
- data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +1 -1
- data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +4 -4
- data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +1 -1
- 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/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 +33 -5
- data/webpack/utils/helpers.js +2 -0
- metadata +158 -40
- data/app/models/setting/content.rb +0 -201
- data/webpack/components/Table/__test__/useBulkSelect.test.js +0 -99
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +0 -96
- data/webpack/scenes/ContentViews/Details/DetailsContainer.js +0 -36
@@ -1,403 +1,4 @@
|
|
1
1
|
class MigrateContentHosts < ActiveRecord::Migration[4.2]
|
2
|
-
HYPERVISOR_CLASS = 'Katello::Hypervisor'.freeze
|
3
|
-
|
4
|
-
class Location < ApplicationRecord
|
5
|
-
self.table_name = "taxonomies"
|
6
|
-
|
7
|
-
def self.default_location
|
8
|
-
location = MigrateContentHosts::Location.where(:katello_default => true).first
|
9
|
-
location.becomes(MigrateContentHosts::Location)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Organization < ApplicationRecord
|
14
|
-
self.table_name = "taxonomies"
|
15
|
-
|
16
|
-
has_many :kt_environments, :class_name => "MigrateContentHosts::KTEnvironment",
|
17
|
-
:dependent => :restrict_with_exception, :inverse_of => :organization
|
18
|
-
end
|
19
|
-
|
20
|
-
class SmartProxy < ApplicationRecord
|
21
|
-
self.table_name = "smart_proxies"
|
22
|
-
|
23
|
-
belongs_to :content_host, :class_name => "MigrateContentHosts::System", :inverse_of => :capsule
|
24
|
-
end
|
25
|
-
|
26
|
-
class KTEnvironment < ApplicationRecord
|
27
|
-
self.table_name = "katello_environments"
|
28
|
-
|
29
|
-
belongs_to :organization, :class_name => "MigrateContentHosts::Organization", :inverse_of => :kt_environments
|
30
|
-
|
31
|
-
has_many :content_facets, :class_name => "MigrateContentHosts::ContentFacet", :foreign_key => :lifecycle_environment_id,
|
32
|
-
:inverse_of => :lifecycle_environment, :dependent => :restrict_with_exception
|
33
|
-
has_many :systems, :class_name => "MigrateContentHosts::System", :inverse_of => :environment,
|
34
|
-
:dependent => :restrict_with_exception, :foreign_key => :environment_id
|
35
|
-
end
|
36
|
-
|
37
|
-
class ContentView < ApplicationRecord
|
38
|
-
self.table_name = "katello_content_views"
|
39
|
-
|
40
|
-
has_many :systems, :class_name => "MigrateContentHosts::System", :dependent => :restrict_with_exception
|
41
|
-
has_many :content_facets, :class_name => "MigrateContentHosts::ContentFacet",
|
42
|
-
:inverse_of => :content_view, :dependent => :restrict_with_exception
|
43
|
-
end
|
44
|
-
|
45
|
-
class Repository < ApplicationRecord
|
46
|
-
self.table_name = "katello_repositories"
|
47
|
-
|
48
|
-
has_many :content_facet_repositories, :class_name => "MigrateContentHosts::ContentFacetRepository", :dependent => :destroy
|
49
|
-
has_many :content_facets, :through => :content_facet_repositories
|
50
|
-
|
51
|
-
has_many :system_repositories, :class_name => "MigrateContentHosts::SystemRepository", :dependent => :destroy
|
52
|
-
has_many :systems, :through => :system_repositories
|
53
|
-
end
|
54
|
-
|
55
|
-
class SystemRepository < ApplicationRecord
|
56
|
-
self.table_name = "katello_system_repositories"
|
57
|
-
belongs_to :system, :inverse_of => :system_repositories, :class_name => 'MigrateContentHosts::System'
|
58
|
-
belongs_to :repository, :inverse_of => :system_repositories, :class_name => 'MigrateContentHosts::Repository'
|
59
|
-
end
|
60
|
-
|
61
|
-
class HostCollection < ApplicationRecord
|
62
|
-
self.table_name = "katello_host_collection"
|
63
|
-
|
64
|
-
has_many :system_host_collections, :class_name => "MigrateContentHosts::SystemHostCollection", :dependent => :destroy
|
65
|
-
has_many :systems, :through => :system_host_collections, :class_name => "MigrateContentHosts::System"
|
66
|
-
end
|
67
|
-
|
68
|
-
class SystemHostCollections < ApplicationRecord
|
69
|
-
self.table_name = "katello_system_host_collections"
|
70
|
-
|
71
|
-
belongs_to :system, :inverse_of => :system_host_collections, :class_name => 'MigrateContentHosts::System'
|
72
|
-
belongs_to :host_collection, :inverse_of => :system_host_collections
|
73
|
-
end
|
74
|
-
|
75
|
-
class Erratum < ApplicationRecord
|
76
|
-
self.table_name = "katello_errata"
|
77
|
-
|
78
|
-
has_many :systems_applicable, :through => :system_errata, :class_name => "MigrateContentHosts::System", :source => :system
|
79
|
-
has_many :content_facet_errata, :class_name => "MigrateContentHosts::ContentFacetErratum", :source => :erratum
|
80
|
-
end
|
81
|
-
|
82
|
-
class SystemErratum < ApplicationRecord
|
83
|
-
self.table_name = "katello_system_errata"
|
84
|
-
|
85
|
-
belongs_to :system, :inverse_of => :system_errata, :class_name => 'MigrateContentHosts::System'
|
86
|
-
belongs_to :erratum, :inverse_of => :system_errata, :class_name => 'MigrateContentHosts::Erratum'
|
87
|
-
end
|
88
|
-
|
89
|
-
class ActivationKey < ApplicationRecord
|
90
|
-
self.table_name = "katello_activation_keys"
|
91
|
-
|
92
|
-
has_many :system_activation_keys, :class_name => "MigrateContentHosts::SystemActivationKey", :dependent => :destroy
|
93
|
-
has_many :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::SubscriptionFacetActivationKey", :dependent => :destroy
|
94
|
-
has_many :subscription_facets, :through => :subscription_facet_activation_keys
|
95
|
-
end
|
96
|
-
|
97
|
-
class SystemActivationKey < ApplicationRecord
|
98
|
-
self.table_name = "katello_system_activation_keys"
|
99
|
-
|
100
|
-
belongs_to :system, :inverse_of => :system_activation_keys
|
101
|
-
belongs_to :activation_key, :inverse_of => :system_activation_keys
|
102
|
-
end
|
103
|
-
|
104
|
-
class Host < ApplicationRecord
|
105
|
-
self.table_name = "hosts"
|
106
|
-
self.inheritance_column = nil
|
107
|
-
|
108
|
-
has_one :content_facet, :class_name => "MigrateContentHosts::ContentFacet", :dependent => :destroy
|
109
|
-
has_one :subscription_facet, :class_name => "MigrateContentHosts::SubscriptionFacet", :dependent => :destroy
|
110
|
-
|
111
|
-
belongs_to :organization, :class_name => "MigrateContentHosts::Organization"
|
112
|
-
belongs_to :location, :class_name => "MigrateContentHosts::Location"
|
113
|
-
end
|
114
|
-
|
115
|
-
class System < ApplicationRecord
|
116
|
-
self.table_name = "katello_systems"
|
117
|
-
self.inheritance_column = nil
|
118
|
-
|
119
|
-
def backend_data
|
120
|
-
@data ||= ::Katello::Resources::Candlepin::Consumer.get(uuid)
|
121
|
-
end
|
122
|
-
|
123
|
-
def facts
|
124
|
-
backend_data[:facts]
|
125
|
-
end
|
126
|
-
|
127
|
-
belongs_to :content_view, :inverse_of => :systems, :class_name => "MigrateContentHosts::ContentView"
|
128
|
-
belongs_to :environment, :class_name => "MigrateContentHosts::KTEnvironment", :inverse_of => :systems
|
129
|
-
|
130
|
-
has_many :system_activation_keys, :class_name => "MigrateContentHosts::SystemActivationKey", :dependent => :destroy
|
131
|
-
has_many :activation_keys, :through => :system_activation_keys
|
132
|
-
has_many :system_host_collections, :class_name => "MigrateContentHosts::SystemHostCollections", :dependent => :destroy
|
133
|
-
has_many :host_collections, :through => :system_host_collections
|
134
|
-
has_many :applicable_errata, :through => :system_errata, :class_name => "MigrateContentHosts::Erratum", :source => :erratum
|
135
|
-
has_many :system_errata, :class_name => "MigrateContentHosts::SystemErratum", :dependent => :destroy, :inverse_of => :system
|
136
|
-
has_many :bound_repositories, :through => :system_repositories, :class_name => "MigrateContentHosts::Repository", :source => :repository
|
137
|
-
has_many :system_repositories, :class_name => "MigrateContentHosts::SystemRepository", :dependent => :destroy, :inverse_of => :system
|
138
|
-
|
139
|
-
has_one :capsule, :class_name => "MigrateContentHosts::SmartProxy", :inverse_of => :content_host, :foreign_key => :content_host_id, :dependent => :nullify
|
140
|
-
end
|
141
|
-
|
142
|
-
class ContentFacet < ApplicationRecord
|
143
|
-
self.table_name = "katello_content_facets"
|
144
|
-
|
145
|
-
belongs_to :host, :inverse_of => :content_facet, :class_name => "MigrateContentHosts::Host"
|
146
|
-
belongs_to :content_view, :inverse_of => :content_facets, :class_name => "MigrateContentHosts::ContentView"
|
147
|
-
belongs_to :lifecycle_environment, :inverse_of => :content_facets, :class_name => "MigrateContentHosts::KTEnvironment"
|
148
|
-
|
149
|
-
has_many :content_facet_repositories, :class_name => "MigrateContentHosts::ContentFacetRepository", :dependent => :destroy, :inverse_of => :content_facet
|
150
|
-
has_many :bound_repositories, :through => :content_facet_repositories, :class_name => "MigrateContentHosts::Repository", :source => :repository
|
151
|
-
has_many :applicable_errata, :through => :content_facet_errata, :class_name => "MigrateContentHosts::Erratum", :source => :erratum
|
152
|
-
has_many :content_facet_errata, :class_name => "MigrateContentHosts::ContentFacetErratum", :dependent => :destroy, :inverse_of => :content_facet
|
153
|
-
end
|
154
|
-
|
155
|
-
class ContentFacetRepository < ApplicationRecord
|
156
|
-
self.table_name = "katello_content_facet_repositories"
|
157
|
-
|
158
|
-
belongs_to :content_facet, :inverse_of => :content_facet_repositories, :class_name => 'MigrateContentHosts::ContentFacet'
|
159
|
-
belongs_to :repository, :inverse_of => :content_facet_repositories, :class_name => 'MigrateContentHosts::Repository'
|
160
|
-
end
|
161
|
-
|
162
|
-
class ContentFacetErratum < ApplicationRecord
|
163
|
-
self.table_name = "katello_content_facet_errata"
|
164
|
-
|
165
|
-
belongs_to :content_facet, :inverse_of => :content_facet_errata, :class_name => 'MigrateContentHosts::ContentFacet'
|
166
|
-
belongs_to :erratum, :inverse_of => :content_facet_errata, :class_name => 'MigrateContentHosts::Erratum'
|
167
|
-
end
|
168
|
-
|
169
|
-
class SubscriptionFacet < ApplicationRecord
|
170
|
-
self.table_name = "katello_subscription_facets"
|
171
|
-
|
172
|
-
belongs_to :host, :inverse_of => :subscription_facet, :class_name => "MigrateContentHosts::Host"
|
173
|
-
has_many :activation_keys, :through => :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::ActivationKey"
|
174
|
-
has_many :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::SubscriptionFacetActivationKey", :dependent => :destroy, :inverse_of => :subscription_facet
|
175
|
-
end
|
176
|
-
|
177
|
-
class SubscriptionFacetActivationKey < ApplicationRecord
|
178
|
-
self.table_name = "katello_subscription_facet_activation_keys"
|
179
|
-
|
180
|
-
belongs_to :subscription_facet, :inverse_of => :subscription_facet_activation_keys, :class_name => 'MigrateContentHosts::SubscriptionFacet'
|
181
|
-
belongs_to :activation_key, :inverse_of => :subscription_facet_activation_keys, :class_name => 'MigrateContentHosts::ActivationKey'
|
182
|
-
end
|
183
|
-
|
184
|
-
def logger
|
185
|
-
Rails.logger
|
186
|
-
end
|
187
|
-
|
188
|
-
def create_content_facet(host, system, include_env_and_view_only = false)
|
189
|
-
logger.info("Creating content facet for host #{host.name}.")
|
190
|
-
content_facet = host.content_facet = MigrateContentHosts::ContentFacet.new(:content_view => system.content_view,
|
191
|
-
:lifecycle_environment => system.environment)
|
192
|
-
unless include_env_and_view_only
|
193
|
-
content_facet.uuid = system.uuid
|
194
|
-
content_facet.bound_repositories = system.bound_repositories
|
195
|
-
content_facet.applicable_errata = system.applicable_errata
|
196
|
-
end
|
197
|
-
content_facet.save!
|
198
|
-
end
|
199
|
-
|
200
|
-
def create_subscription_facet(host, system)
|
201
|
-
logger.info("Creating subscription facet for host #{host.name}.")
|
202
|
-
subscription_facet = host.subscription_facet = MigrateContentHosts::SubscriptionFacet.new
|
203
|
-
subscription_facet.activation_keys = system.activation_keys.uniq
|
204
|
-
subscription_facet.uuid = system.uuid
|
205
|
-
subscription_facet.save!
|
206
|
-
end
|
207
|
-
|
208
|
-
def get_systems_with_facts(systems)
|
209
|
-
systems_to_remove = []
|
210
|
-
systems = systems.to_a
|
211
|
-
|
212
|
-
systems.each do |system|
|
213
|
-
facts = system.facts
|
214
|
-
unless facts
|
215
|
-
systems_to_remove.push(system)
|
216
|
-
end
|
217
|
-
rescue RestClient::Exception
|
218
|
-
systems_to_remove.push(system)
|
219
|
-
end
|
220
|
-
|
221
|
-
systems_to_remove.each do |system|
|
222
|
-
logger.info("Content Host #{system.uuid} doesn't have candlepin information, unregistering.")
|
223
|
-
if (system_proxy = SmartProxy.find_by_content_host_id(system.id))
|
224
|
-
system_proxy.content_host_id = nil
|
225
|
-
system_proxy.save
|
226
|
-
end
|
227
|
-
systems.delete(system)
|
228
|
-
unregister_system(system)
|
229
|
-
end
|
230
|
-
|
231
|
-
systems
|
232
|
-
end
|
233
|
-
|
234
|
-
def group_systems_by_hostname(systems)
|
235
|
-
system_hostnames = {}
|
236
|
-
|
237
|
-
systems.each do |system|
|
238
|
-
hostname = system.facts['network.hostname']
|
239
|
-
|
240
|
-
if system_hostnames[hostname]
|
241
|
-
system_hostnames[hostname].push(system)
|
242
|
-
else
|
243
|
-
system_hostnames[hostname] = [system]
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
system_hostnames
|
248
|
-
end
|
249
|
-
|
250
|
-
def ensure_one_system_per_hostname(systems)
|
251
|
-
# ensure only one system exists per hostname and unregister all except the last registered
|
252
|
-
systems = get_systems_with_facts(systems)
|
253
|
-
system_hostnames = group_systems_by_hostname(systems)
|
254
|
-
|
255
|
-
system_hostnames.each do |hostname, duplicate_systems|
|
256
|
-
if duplicate_systems.count > 1
|
257
|
-
logger.warn("Multiple content hosts with the hostname #{hostname} found, unregistering all except last registered.")
|
258
|
-
unregister_all_but_last_system(duplicate_systems)
|
259
|
-
end
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
def unregister_system(system)
|
264
|
-
logger.warn("Unregistering content host with UUID: #{system.uuid}")
|
265
|
-
|
266
|
-
begin
|
267
|
-
logger.info("Removing Candlepin consumer #{system.uuid}")
|
268
|
-
Katello::Resources::Candlepin::Consumer.destroy(system.uuid)
|
269
|
-
rescue RestClient::Exception => e
|
270
|
-
logger.warn("Exception when destroying candlepin consumer #{system.uuid}:#{e.inspect}")
|
271
|
-
end
|
272
|
-
|
273
|
-
begin
|
274
|
-
logger.info("Removing Pulp consumer #{system.uuid}")
|
275
|
-
Katello.pulp_server.extensions.consumer.delete(system.uuid)
|
276
|
-
rescue RestClient::ResourceNotFound
|
277
|
-
logger.warn("Pulp consumer not found for consumer #{system.uuid} proceeding.")
|
278
|
-
#do nothing
|
279
|
-
rescue RestClient::Exception => e
|
280
|
-
logger.warn("Exception when destroying pulp consumer #{system.uuid}:#{e.inspect}")
|
281
|
-
end
|
282
|
-
|
283
|
-
logger.info("Removing system #{system.uuid}")
|
284
|
-
system.destroy
|
285
|
-
end
|
286
|
-
|
287
|
-
def unregister_all_but_last_system(systems)
|
288
|
-
systems_by_created_date = systems.sort_by(&:created_at)
|
289
|
-
system = systems_by_created_date.pop
|
290
|
-
|
291
|
-
systems_by_created_date.each do |system_to_remove|
|
292
|
-
unregister_system(system_to_remove)
|
293
|
-
end
|
294
|
-
|
295
|
-
system
|
296
|
-
end
|
297
|
-
|
298
|
-
def handle_hypervisors
|
299
|
-
MigrateContentHosts::System.where(:type => HYPERVISOR_CLASS).find_each do |hypervisor|
|
300
|
-
org = hypervisor.environment.organization
|
301
|
-
name = "virt-who-#{hypervisor.name}-#{org.id}"
|
302
|
-
|
303
|
-
host = ::Host.find_by(:name => name)
|
304
|
-
if host.nil?
|
305
|
-
host = MigrateContentHosts::Host.create!(:name => name, :organization => org.becomes(MigrateContentHosts::Organization), :managed => false,
|
306
|
-
:type => "Host::Managed", :location => MigrateContentHosts::Location.default_location)
|
307
|
-
elsif host.organization != org
|
308
|
-
logger.warn("Found host with name #{name} but it's in org #{host.organization.name} instead of #{org.name}.")
|
309
|
-
unregister_system(hypervisor)
|
310
|
-
next
|
311
|
-
end
|
312
|
-
hypervisor.host_id = host.id
|
313
|
-
hypervisor.save!
|
314
|
-
create_subscription_facet(host, hypervisor) unless host.subscription_facet
|
315
|
-
update_hypervisor_consumer(hypervisor)
|
316
|
-
end
|
317
|
-
end
|
318
|
-
|
319
|
-
def update_hypervisor_consumer(hypervisor)
|
320
|
-
org = hypervisor.environment.organization
|
321
|
-
hypervisor.content_view = org.default_content_view.becomes(MigrateContentHosts::ContentView)
|
322
|
-
hypervisor.environment = org.library.becomes(MigrateContentHosts::KTEnvironment)
|
323
|
-
hypervisor.save!
|
324
|
-
|
325
|
-
candlepin_environment_id = org.default_content_view.content_view_environments.first.cp_id
|
326
|
-
::Katello::Resources::Candlepin::Consumer.update(hypervisor.uuid, 'environment' => {'id' => candlepin_environment_id})
|
327
|
-
end
|
328
|
-
|
329
|
-
# rubocop:disable Metrics/MethodLength
|
330
|
-
# rubocop:disable Metrics/AbcSize
|
331
2
|
def up
|
332
|
-
unless User.unscoped.where(:login => User::ANONYMOUS_API_ADMIN).exists?
|
333
|
-
logger.warn("Foreman anonymous admin does not exist, skipping content host migration.")
|
334
|
-
return
|
335
|
-
end
|
336
|
-
|
337
|
-
User.current = User.anonymous_api_admin
|
338
|
-
system_count = ::MigrateContentHosts::System.all.count
|
339
|
-
|
340
|
-
return true if system_count == 0
|
341
|
-
|
342
|
-
ping = ::Katello::Ping.ping
|
343
|
-
if ping[:status] != ::Katello::Ping::OK_RETURN_CODE
|
344
|
-
fail _("Some backend services are not running: %s") % ping.inspect
|
345
|
-
end
|
346
|
-
|
347
|
-
::MigrateContentHosts::System.where(:uuid => nil).destroy_all
|
348
|
-
|
349
|
-
ensure_one_system_per_hostname(MigrateContentHosts::System.where("type != '#{HYPERVISOR_CLASS}'").all)
|
350
|
-
|
351
|
-
systems = get_systems_with_facts(MigrateContentHosts::System.where("type != '#{HYPERVISOR_CLASS}'").all)
|
352
|
-
|
353
|
-
systems.each do |system|
|
354
|
-
system.environment.organization = system.environment.organization.becomes(MigrateContentHosts::Organization)
|
355
|
-
hostname = system.facts['network.hostname']
|
356
|
-
|
357
|
-
logger.info("Processing content host #{system.uuid} #{hostname}")
|
358
|
-
|
359
|
-
if hostname.nil?
|
360
|
-
logger.warn("Content host #{system.uuid} does not have a hostname, removing.")
|
361
|
-
unregister_system(system)
|
362
|
-
next
|
363
|
-
end
|
364
|
-
|
365
|
-
MigrateContentHosts::Host.reset_column_information
|
366
|
-
hosts = MigrateContentHosts::Host.where(:name => hostname)
|
367
|
-
if hosts.empty? # no host exists
|
368
|
-
logger.info("No host exists with hostname #{hostname}, creating new host.")
|
369
|
-
host = MigrateContentHosts::Host.new(:name => system.facts['network.hostname'], :organization => system.environment.organization,
|
370
|
-
:type => "Host::Managed", :location => MigrateContentHosts::Location.default_location, :managed => false)
|
371
|
-
host.save!
|
372
|
-
|
373
|
-
create_content_facet(host, system)
|
374
|
-
create_subscription_facet(host, system)
|
375
|
-
|
376
|
-
elsif hosts.where(:organization_id => system.environment.organization.id).empty? # host is not in the correct org
|
377
|
-
if hosts[0].organization
|
378
|
-
logger.warn("Found host with hostname #{hostname} but it's in org #{hosts[0].organization.name} instead of #{system.environment.organization.name}.")
|
379
|
-
else
|
380
|
-
logger.warn("Found host with hostname #{hostname} but it is not in an org, and should be in #{system.environment.organization.name}.")
|
381
|
-
end
|
382
|
-
host = hosts.first
|
383
|
-
|
384
|
-
create_content_facet(host, system, true) unless host.content_facet
|
385
|
-
unregister_system(system)
|
386
|
-
|
387
|
-
else #host exists in the correct org
|
388
|
-
logger.info("Found host with hostname #{hostname}.")
|
389
|
-
host = hosts.first
|
390
|
-
|
391
|
-
create_content_facet(host, system) unless host.content_facet
|
392
|
-
create_subscription_facet(host, system) unless host.subscription_facet
|
393
|
-
end
|
394
|
-
|
395
|
-
unless system.destroyed? # if the system was unregistered, it will no longer exist
|
396
|
-
system.host_id = host.id
|
397
|
-
system.save!
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
handle_hypervisors
|
402
3
|
end
|
403
4
|
end
|
@@ -43,7 +43,7 @@ class CleanupInstalledPackages < ActiveRecord::Migration[4.2]
|
|
43
43
|
# Now do new things
|
44
44
|
add_index :katello_installed_packages, [:nvra], :unique => true
|
45
45
|
add_index :katello_host_installed_packages, [:host_id, :installed_package_id], :unique => true, :name => :katello_host_installed_packages_h_id_ip_id
|
46
|
-
Setting.where(:name => 'bulk_query_installed_packages'
|
46
|
+
Setting.where(:name => 'bulk_query_installed_packages').delete_all
|
47
47
|
end
|
48
48
|
|
49
49
|
def down
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class RemoveDependencySolvingAlgorithmSetting < ActiveRecord::Migration[6.0]
|
2
2
|
def change
|
3
|
-
Setting.where(:name => 'dependency_solving_algorithm'
|
3
|
+
Setting.where(:name => 'dependency_solving_algorithm').delete_all
|
4
4
|
end
|
5
5
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
|
2
2
|
def find_duplicate_groups(model, fields)
|
3
|
-
model.having("count(*) > 1").group(*fields).pluck("string_agg(id::TEXT, ',')
|
3
|
+
model.having("count(*) > 1").group(*fields).pluck(Arel.sql("string_agg(id::TEXT, ',')")).map do |ids|
|
4
4
|
ids.split(',').map(&:to_i)
|
5
5
|
end
|
6
6
|
end
|
@@ -20,7 +20,7 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
|
|
20
20
|
to_delete = []
|
21
21
|
to_update = []
|
22
22
|
duplicate_models.each do |duplicate|
|
23
|
-
query = {
|
23
|
+
query = {new_id_field => new_id}
|
24
24
|
unique_fields.each do |field|
|
25
25
|
query[field] = duplicate.send(field)
|
26
26
|
end
|
@@ -52,25 +52,28 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
|
|
52
52
|
def up
|
53
53
|
handle_null_pulp_ids
|
54
54
|
add_foreign_keys
|
55
|
-
delete_deprecated_models
|
56
55
|
|
57
56
|
handle_duplicate(Katello::ModuleStream,
|
58
57
|
'module_stream_id',
|
59
58
|
[:pulp_id],
|
60
|
-
associated_models: {
|
59
|
+
associated_models: {Katello::RepositoryModuleStream => :repository_id},
|
61
60
|
child_models: [Katello::ContentViewModuleStreamFilterRule,
|
62
61
|
Katello::ContentFacetApplicableModuleStream,
|
63
62
|
Katello::ModuleProfile,
|
64
63
|
Katello::ModuleStreamArtifact,
|
65
64
|
Katello::ModuleStreamErratumPackage,
|
66
65
|
Katello::ModuleStreamRpm])
|
67
|
-
|
68
66
|
add_index :katello_module_streams, :pulp_id, :unique => true
|
67
|
+
|
68
|
+
handle_duplicate(Katello::ModuleProfile, 'module_profile_id', [:module_stream_id, :name],
|
69
|
+
child_models: [Katello::ModuleProfileRpm])
|
69
70
|
add_index :katello_module_profiles, [:module_stream_id, :name], :unique => true
|
71
|
+
|
72
|
+
handle_duplicate(Katello::ModuleProfileRpm, 'module_profile_rpm_id', [:module_profile_id, :name])
|
70
73
|
add_index :katello_module_profile_rpms, [:module_profile_id, :name], :unique => true
|
71
74
|
|
72
75
|
handle_duplicate(Katello::AnsibleTag, 'ansible_tag_id', [:name],
|
73
|
-
associated_models: {
|
76
|
+
associated_models: {Katello::AnsibleCollectionTag => :ansible_collection_id})
|
74
77
|
add_index :katello_ansible_tags, [:name], :unique => true
|
75
78
|
|
76
79
|
handle_duplicate(Katello::AnsibleCollectionTag, 'ansible_collection_tag_id', [:ansible_collection_id, :ansible_tag_id])
|
@@ -80,7 +83,7 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
|
|
80
83
|
handle_duplicate(Katello::GenericContentUnit,
|
81
84
|
'generic_content_unit_id',
|
82
85
|
[:pulp_id],
|
83
|
-
associated_models: {
|
86
|
+
associated_models: {Katello::RepositoryGenericContentUnit => :repository_id})
|
84
87
|
add_index :katello_generic_content_units, :pulp_id, :unique => true
|
85
88
|
|
86
89
|
handle_duplicate(Katello::DockerManifestList, 'docker_manifest_list_id', [:pulp_id],
|
@@ -109,11 +112,6 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
|
|
109
112
|
change_column :katello_docker_manifests, :pulp_id, :string, :null => false
|
110
113
|
end
|
111
114
|
|
112
|
-
def delete_deprecated_models
|
113
|
-
Katello::ModuleProfileRpm.delete_all
|
114
|
-
Katello::ModuleProfile.delete_all
|
115
|
-
end
|
116
|
-
|
117
115
|
def add_foreign_keys
|
118
116
|
Katello::DockerManifestListManifest.where.not(docker_manifest_list_id: Katello::DockerManifestList.pluck(:id)).delete_all
|
119
117
|
add_foreign_key :katello_docker_manifest_list_manifests, :katello_docker_manifest_lists, column: :docker_manifest_list_id
|
@@ -1,20 +1,20 @@
|
|
1
1
|
class UpdateDisconnectedSettings < ActiveRecord::Migration[6.0]
|
2
2
|
def up
|
3
|
-
setting_disconnected = Setting.find_by(name: 'content_disconnected'
|
4
|
-
setting = Setting.find_by(name: 'subscription_connection_enabled'
|
3
|
+
setting_disconnected = Setting.find_by(name: 'content_disconnected')
|
4
|
+
setting = Setting.find_by(name: 'subscription_connection_enabled')
|
5
5
|
|
6
6
|
setting&.update!(
|
7
7
|
value: !setting_disconnected&.value
|
8
8
|
)
|
9
|
-
Setting.where(:name => 'content_disconnected'
|
9
|
+
Setting.where(:name => 'content_disconnected').delete_all
|
10
10
|
end
|
11
11
|
|
12
12
|
def down
|
13
13
|
remove_column :katello_cdn_configurations, :airgapped
|
14
|
-
setting_disconnected = Setting.find_by(name: 'subscription_connection_enabled'
|
14
|
+
setting_disconnected = Setting.find_by(name: 'subscription_connection_enabled')
|
15
15
|
Setting.set('content_disconnected', N_("A server operating in disconnected mode does not communicate with the Red Hat CDN."),
|
16
16
|
!setting_disconnected.value, N_('Disconnected mode'))
|
17
17
|
|
18
|
-
Setting.where(:name => 'subscription_connection_enabled'
|
18
|
+
Setting.where(:name => 'subscription_connection_enabled').delete_all
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# rubocop:disable Metrics/MethodLength
|
2
|
+
class AddAlternateContentSources < ActiveRecord::Migration[6.0]
|
3
|
+
def up
|
4
|
+
create_table :katello_alternate_content_sources do |t|
|
5
|
+
t.string :name, limit: 255, null: false
|
6
|
+
t.string :label, limit: 255, null: false
|
7
|
+
t.text :description
|
8
|
+
t.integer :ssl_ca_cert_id
|
9
|
+
t.integer :ssl_client_cert_id
|
10
|
+
t.integer :ssl_client_key_id
|
11
|
+
t.integer :http_proxy_id
|
12
|
+
t.string :base_url, limit: 1024
|
13
|
+
t.string :subpaths, array: true, default: []
|
14
|
+
t.string :content_type, limit: 255, default: 'yum'
|
15
|
+
t.string :alternate_content_source_type, limit: 255, default: 'custom', null: false
|
16
|
+
t.boolean :verify_ssl, default: true
|
17
|
+
t.string 'upstream_username', limit: 255
|
18
|
+
t.string 'upstream_password', limit: 1024
|
19
|
+
end
|
20
|
+
|
21
|
+
add_index :katello_alternate_content_sources, :name, :unique => true
|
22
|
+
add_index :katello_alternate_content_sources, :label, :unique => true
|
23
|
+
|
24
|
+
add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_ca_cert_id, :column => :ssl_ca_cert_id
|
25
|
+
add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_client_cert_id, :column => :ssl_client_cert_id
|
26
|
+
add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_client_key_id, :column => :ssl_client_key_id
|
27
|
+
add_foreign_key :katello_alternate_content_sources, :http_proxies, :name => :katello_alternate_content_sources_http_proxy_id, :column => :http_proxy_id
|
28
|
+
|
29
|
+
create_table :katello_smart_proxy_alternate_content_sources do |t|
|
30
|
+
t.references :alternate_content_source, :null => false, index: false
|
31
|
+
t.references :smart_proxy, :null => false, index: false
|
32
|
+
t.string :remote_href
|
33
|
+
t.string :alternate_content_source_href
|
34
|
+
t.timestamps
|
35
|
+
end
|
36
|
+
|
37
|
+
add_index :katello_smart_proxy_alternate_content_sources, [:alternate_content_source_id, :smart_proxy_id], :unique => true,
|
38
|
+
:name => :index_katello_smart_proxy_acss_on_acs_id_and_smart_proxy_id
|
39
|
+
|
40
|
+
add_foreign_key :katello_smart_proxy_alternate_content_sources, :katello_alternate_content_sources, :column => :alternate_content_source_id
|
41
|
+
add_foreign_key :katello_smart_proxy_alternate_content_sources, :smart_proxies, :column => :smart_proxy_id
|
42
|
+
end
|
43
|
+
|
44
|
+
def down
|
45
|
+
drop_table :katello_smart_proxy_alternate_content_sources
|
46
|
+
drop_table :katello_alternate_content_sources
|
47
|
+
end
|
48
|
+
end
|
@@ -1,15 +1,20 @@
|
|
1
1
|
class AddTypeToCdnConfiguration < ActiveRecord::Migration[6.0]
|
2
|
+
class FakeCdnConfiguration < Katello::Model
|
3
|
+
self.table_name = 'katello_cdn_configurations'
|
4
|
+
self.inheritance_column = nil
|
5
|
+
end
|
6
|
+
|
2
7
|
def change
|
3
8
|
add_index :katello_cdn_configurations, :organization_id, unique: true
|
4
|
-
add_column :katello_cdn_configurations, :type, :string, default:
|
9
|
+
add_column :katello_cdn_configurations, :type, :string, default: 'redhat_cdn'
|
5
10
|
|
6
|
-
|
7
|
-
|
11
|
+
FakeCdnConfiguration.reset_column_information
|
12
|
+
FakeCdnConfiguration.all.each do |config|
|
8
13
|
unless config.username.blank? ||
|
9
14
|
config.password.blank? ||
|
10
15
|
config.upstream_organization_label.blank? ||
|
11
16
|
config.ssl_ca_credential_id.blank?
|
12
|
-
config.update!(type:
|
17
|
+
config.update!(type: 'upstream_server')
|
13
18
|
end
|
14
19
|
end
|
15
20
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddGeneratedForToContentViews < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
add_column :katello_content_views, :generated_for, :integer, :default => 0, :null => false
|
4
|
+
::Katello::ContentView.reset_column_information
|
5
|
+
::Katello::ContentView.
|
6
|
+
where(label: ::Katello::ContentView::IMPORT_LIBRARY).
|
7
|
+
update(generated_for: :library_import)
|
8
|
+
|
9
|
+
::Katello::ContentView.
|
10
|
+
where('label like ?', "#{::Katello::ContentView::EXPORT_LIBRARY}%").
|
11
|
+
update(generated_for: :library_export)
|
12
|
+
end
|
13
|
+
end
|
@@ -1,20 +1,20 @@
|
|
1
1
|
class ExpandSyncTimeoutSettings < ActiveRecord::Migration[6.0]
|
2
2
|
def up
|
3
|
-
old_timeout_setting = Setting.find_by(name: 'sync_connect_timeout'
|
3
|
+
old_timeout_setting = Setting.find_by(name: 'sync_connect_timeout')
|
4
4
|
if old_timeout_setting && (old_timeout_setting&.value != old_timeout_setting&.default)
|
5
5
|
Setting.find_by(name: 'sync_total_timeout')&.update(value: old_timeout_setting&.value)
|
6
6
|
Setting.find_by(name: 'sync_sock_read_timeout')&.update(value: old_timeout_setting&.value)
|
7
7
|
end
|
8
|
-
Setting.where(name: 'sync_connect_timeout'
|
8
|
+
Setting.where(name: 'sync_connect_timeout').delete_all
|
9
9
|
end
|
10
10
|
|
11
11
|
def down
|
12
|
-
timeout = Setting.find_by(name: 'sync_total_timeout'
|
12
|
+
timeout = Setting.find_by(name: 'sync_total_timeout')&.value
|
13
13
|
|
14
|
-
Setting.where(name: 'sync_total_timeout'
|
15
|
-
Setting.where(name: 'sync_connect_timeout_v2'
|
16
|
-
Setting.where(name: 'sync_sock_connect_timeout'
|
17
|
-
Setting.where(name: 'sync_sock_read_timeout'
|
14
|
+
Setting.where(name: 'sync_total_timeout').delete_all
|
15
|
+
Setting.where(name: 'sync_connect_timeout_v2').delete_all
|
16
|
+
Setting.where(name: 'sync_sock_connect_timeout').delete_all
|
17
|
+
Setting.where(name: 'sync_sock_read_timeout').delete_all
|
18
18
|
|
19
19
|
Setting.create(Setting.set('sync_connect_timeout', N_("Timeout in seconds for downloads when syncing"),
|
20
20
|
300, N_('Sync Connection Timeout')))
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class RemoveDrpmFromIgnorableContent < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
Katello::RootRepository.select { |r| r&.ignorable_content&.include? "drpm" }.each do |root|
|
4
|
+
root.ignorable_content = root.ignorable_content - ["drpm"]
|
5
|
+
root.save!
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
fail ActiveRecord::IrreversibleMigration
|
11
|
+
end
|
12
|
+
end
|