katello 4.18.0 → 4.19.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/locale/bn/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ca/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/cs/katello.js +53 -350
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +54 -351
- data/app/assets/javascripts/katello/locale/de/katello.js +56 -353
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/el/katello.js +54 -351
- data/app/assets/javascripts/katello/locale/en/katello.js +53 -350
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +53 -350
- data/app/assets/javascripts/katello/locale/en_US/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/es/katello.js +56 -353
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/fr/katello.js +138 -435
- data/app/assets/javascripts/katello/locale/gl/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/gu/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/hi/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/id/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/it/katello.js +53 -350
- data/app/assets/javascripts/katello/locale/ja/katello.js +142 -439
- data/app/assets/javascripts/katello/locale/ka/katello.js +56 -353
- data/app/assets/javascripts/katello/locale/kn/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ko/katello.js +135 -432
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/mr/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/or/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/pa/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/pl/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/pt/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +56 -353
- data/app/assets/javascripts/katello/locale/ro/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ru/katello.js +54 -351
- data/app/assets/javascripts/katello/locale/sl/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ta/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/te/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/tr/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/vi/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/zh/katello.js +52 -349
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +135 -432
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +54 -351
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +46 -13
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +3 -65
- data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +56 -34
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_views_controller.rb +18 -3
- data/app/controllers/katello/api/v2/debs_controller.rb +21 -11
- data/app/controllers/katello/api/v2/docker_tags_controller.rb +7 -0
- data/app/controllers/katello/api/v2/errata_controller.rb +4 -4
- data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +21 -19
- data/app/controllers/katello/api/v2/host_debs_controller.rb +16 -1
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +3 -60
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +10 -53
- data/app/controllers/katello/api/v2/repositories_controller.rb +0 -1
- data/app/controllers/katello/concerns/organizations_controller_extensions.rb +3 -0
- data/app/lib/actions/candlepin/activation_key/create.rb +0 -2
- data/app/lib/actions/candlepin/activation_key/update.rb +0 -2
- data/app/lib/actions/candlepin/product/content_create.rb +3 -5
- data/app/lib/actions/candlepin/product/content_update.rb +2 -3
- data/app/lib/actions/helpers/rolling_cv_repos.rb +1 -1
- data/app/lib/actions/katello/activation_key/create.rb +0 -1
- data/app/lib/actions/katello/activation_key/update.rb +0 -2
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -6
- data/app/lib/actions/katello/content_credential/update.rb +1 -1
- data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +18 -24
- data/app/lib/actions/katello/content_view/create.rb +9 -4
- data/app/lib/actions/katello/content_view/publish.rb +7 -7
- data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +6 -1
- data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +16 -11
- data/app/lib/actions/katello/content_view/update.rb +34 -7
- data/app/lib/actions/katello/product/content_create.rb +2 -2
- data/app/lib/actions/katello/product/content_destroy.rb +1 -1
- data/app/lib/actions/katello/repository/check_matching_content.rb +1 -1
- data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
- data/app/lib/actions/katello/repository/create.rb +1 -1
- data/app/lib/actions/katello/repository/destroy.rb +4 -4
- data/app/lib/actions/katello/repository/finish_upload.rb +1 -1
- data/app/lib/actions/katello/repository/sync.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +2 -2
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/repository/multi_copy_all_units.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_publication.rb +3 -1
- data/app/lib/actions/pulp3/repository/save_version.rb +45 -24
- data/app/lib/actions/pulp3/repository/save_versions.rb +2 -1
- data/app/lib/katello/resources/candlepin/activation_key.rb +3 -4
- data/app/lib/katello/resources/candlepin/upstream_job.rb +9 -1
- data/app/lib/katello/resources/candlepin.rb +4 -0
- data/app/models/katello/authorization/repository.rb +17 -4
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -7
- data/app/models/katello/content_view_deb_filter.rb +10 -0
- data/app/models/katello/content_view_deb_filter_rule.rb +7 -0
- data/app/models/katello/deb.rb +10 -12
- data/app/models/katello/erratum.rb +1 -1
- data/app/models/katello/glue/provider.rb +14 -3
- data/app/models/katello/host/content_facet.rb +1 -1
- data/app/models/katello/host/subscription_facet.rb +1 -7
- data/app/models/katello/product_content.rb +2 -2
- data/app/models/katello/repository.rb +4 -23
- data/app/models/katello/root_repository.rb +2 -5
- data/app/services/katello/candlepin/event_handler.rb +0 -33
- data/app/services/katello/candlepin/message_handler.rb +0 -41
- data/app/services/katello/content_unit_indexer.rb +59 -13
- data/app/services/katello/product_content_finder.rb +16 -7
- data/app/services/katello/pulp3/alternate_content_source.rb +2 -2
- data/app/services/katello/pulp3/ansible_collection.rb +1 -0
- data/app/services/katello/pulp3/api/content_guard.rb +5 -5
- data/app/services/katello/pulp3/api/core.rb +10 -0
- data/app/services/katello/pulp3/content_view_version/export.rb +25 -10
- data/app/services/katello/pulp3/deb.rb +1 -0
- data/app/services/katello/pulp3/docker_manifest.rb +1 -0
- data/app/services/katello/pulp3/docker_manifest_list.rb +1 -0
- data/app/services/katello/pulp3/docker_tag.rb +1 -0
- data/app/services/katello/pulp3/file_unit.rb +1 -0
- data/app/services/katello/pulp3/generic_content_unit.rb +1 -0
- data/app/services/katello/pulp3/module_stream.rb +1 -0
- data/app/services/katello/pulp3/package_group.rb +1 -0
- data/app/services/katello/pulp3/repository/apt.rb +30 -13
- data/app/services/katello/pulp3/repository.rb +59 -10
- data/app/services/katello/pulp3/rpm.rb +3 -2
- data/app/services/katello/pulp3/srpm.rb +3 -2
- data/app/services/katello/pulp3/task_group.rb +1 -1
- data/app/services/katello/registration_manager.rb +19 -17
- data/app/services/katello/repository_type_manager.rb +7 -5
- data/app/services/katello/smart_proxy_helper.rb +1 -6
- data/app/views/foreman/job_templates/upload_profile.erb +5 -0
- data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
- data/app/views/katello/api/v2/debs/thindex.json.rabl +6 -0
- data/app/views/katello/api/v2/docker_tags/_base.json.rabl +32 -0
- data/app/views/katello/api/v2/docker_tags/show.json.rabl +0 -5
- data/app/views/katello/api/v2/flatpak_remotes/index.json.rabl +6 -0
- data/app/views/katello/api/v2/host_debs/installed_debs.json.rabl +6 -0
- data/app/views/katello/api/v2/hosts_bulk_actions/applicable_errata.json.rabl +1 -1
- data/app/views/katello/api/v2/hosts_bulk_actions/applicable_erratum.json.rabl +9 -0
- data/app/views/katello/api/v2/hosts_bulk_actions/installable_errata.json.rabl +1 -1
- data/app/views/katello/api/v2/hosts_bulk_actions/{erratum.json.rabl → installable_erratum.json.rabl} +3 -3
- data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
- data/config/initializers/monkeys.rb +1 -0
- data/config/routes/api/v2.rb +2 -2
- data/config/routes/overrides.rb +2 -7
- data/config/routes.rb +2 -0
- data/db/migrate/20211019192121_create_cdn_configuration.katello.rb +1 -1
- data/db/migrate/20250912000000_add_pulp_prn_fields.rb +73 -0
- data/db/migrate/20250912000001_populate_pulp_prn_fields.rb +403 -0
- data/db/migrate/20251009142516_remove_auto_attach_from_activation_keys.rb +5 -0
- data/db/migrate/20251009142517_remove_autoheal_from_subscription_facets.rb +5 -0
- data/db/seeds.d/111-upgrade_tasks.rb +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +5 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +5 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +5 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +4 -4
- data/lib/katello/permission_creator.rb +2 -2
- data/lib/katello/permissions/host_permissions.rb +0 -6
- data/lib/katello/plugin.rb +16 -8
- data/lib/katello/tasks/jenkins.rake +1 -1
- data/lib/katello/tasks/upgrades/4.19/enable_structured_apt_for_deb.rake +87 -0
- data/lib/katello/tasks/upgrades/4.19/populate_repository_version_prns.rake +32 -0
- data/lib/katello/version.rb +1 -1
- data/lib/monkeys/fix_rpm_repository_gpgcheck.rb +38 -0
- data/locale/bn/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn/katello.po +52 -349
- data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn_IN/katello.po +52 -349
- data/locale/ca/LC_MESSAGES/katello.mo +0 -0
- data/locale/ca/katello.po +52 -349
- data/locale/cs/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs/katello.po +54 -350
- data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs_CZ/katello.po +54 -351
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +56 -353
- data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_AT/katello.po +52 -349
- data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_DE/katello.po +52 -349
- data/locale/el/LC_MESSAGES/katello.mo +0 -0
- data/locale/el/katello.po +55 -352
- data/locale/en/LC_MESSAGES/katello.mo +0 -0
- data/locale/en/katello.po +54 -350
- data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_GB/katello.po +53 -350
- data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_US/katello.po +52 -349
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +56 -353
- data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
- data/locale/et_EE/katello.po +52 -349
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +139 -435
- data/locale/gl/LC_MESSAGES/katello.mo +0 -0
- data/locale/gl/katello.po +52 -349
- data/locale/gu/LC_MESSAGES/katello.mo +0 -0
- data/locale/gu/katello.po +52 -349
- data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
- data/locale/he_IL/katello.po +52 -349
- data/locale/hi/LC_MESSAGES/katello.mo +0 -0
- data/locale/hi/katello.po +52 -349
- data/locale/id/LC_MESSAGES/katello.mo +0 -0
- data/locale/id/katello.po +52 -349
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +53 -350
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +143 -439
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +56 -353
- data/locale/katello.pot +695 -1152
- data/locale/kn/LC_MESSAGES/katello.mo +0 -0
- data/locale/kn/katello.po +52 -349
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +136 -432
- data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ml_IN/katello.po +52 -349
- data/locale/mr/LC_MESSAGES/katello.mo +0 -0
- data/locale/mr/katello.po +52 -349
- data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
- data/locale/nl_NL/katello.po +52 -349
- data/locale/or/LC_MESSAGES/katello.mo +0 -0
- data/locale/or/katello.po +52 -349
- data/locale/pa/LC_MESSAGES/katello.mo +0 -0
- data/locale/pa/katello.po +52 -349
- data/locale/pl/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl/katello.po +52 -349
- data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl_PL/katello.po +52 -349
- data/locale/pt/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt/katello.po +52 -349
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +56 -353
- data/locale/ro/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro/katello.po +52 -349
- data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro_RO/katello.po +52 -349
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +54 -351
- data/locale/sl/LC_MESSAGES/katello.mo +0 -0
- data/locale/sl/katello.po +52 -349
- data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
- data/locale/sv_SE/katello.po +52 -349
- data/locale/ta/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta/katello.po +52 -349
- data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta_IN/katello.po +52 -349
- data/locale/te/LC_MESSAGES/katello.mo +0 -0
- data/locale/te/katello.po +52 -349
- data/locale/tr/LC_MESSAGES/katello.mo +0 -0
- data/locale/tr/katello.po +52 -349
- data/locale/vi/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi/katello.po +52 -349
- data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi_VN/katello.po +52 -349
- data/locale/zh/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh/katello.po +52 -349
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +136 -432
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +54 -351
- data/webpack/components/Content/Details/__tests__/__snapshots__/ContentDetails.test.js.snap +2 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +0 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +0 -2
- data/webpack/components/extensions/Hosts/ActionsBar/index.js +1 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkActionsConstants.js +7 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/BulkChangeHostCollectionsModal.js +388 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/__tests__/BulkChangeHostCollectionsModal.test.js +640 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/actions.js +28 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCollectionsModal/index.js +71 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +1 -1
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +10 -3
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +51 -24
- data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +7 -0
- data/webpack/containers/Application/config.js +11 -1
- data/webpack/global_index.js +3 -0
- data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesConstants.js +1 -1
- data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/BootedContainerImagesPage.js +7 -43
- data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImagesPage.test.js +1 -1
- data/webpack/scenes/ContainerImages/ContainerImagesPage.js +86 -0
- data/webpack/scenes/ContainerImages/LabelsAnnotationsModal.js +105 -0
- data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetails.js +218 -0
- data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsActions.js +15 -0
- data/webpack/scenes/ContainerImages/Synced/Details/ManifestDetailsSelectors.js +16 -0
- data/webpack/scenes/ContainerImages/Synced/Details/__tests__/ManifestDetails.test.js +395 -0
- data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestDetails.fixtures.json +43 -0
- data/webpack/scenes/ContainerImages/Synced/Details/__tests__/manifestList.fixtures.json +58 -0
- data/webpack/scenes/ContainerImages/Synced/Details/index.js +4 -0
- data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.js +359 -0
- data/webpack/scenes/ContainerImages/Synced/SyncedContainerImagesPage.scss +21 -0
- data/webpack/scenes/ContainerImages/Synced/__tests__/LabelsAnnotationsModal.test.js +69 -0
- data/webpack/scenes/ContainerImages/Synced/__tests__/SyncedContainerImagesPage.test.js +335 -0
- data/webpack/scenes/ContainerImages/Synced/__tests__/syncedContainerImages.fixtures.json +105 -0
- data/webpack/scenes/ContainerImages/TableEmptyState.js +67 -0
- data/webpack/scenes/ContainerImages/containerImagesHelpers.js +48 -0
- data/webpack/scenes/ContainerImages/index.js +4 -0
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +29 -3
- data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +45 -1
- data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +0 -1
- data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +59 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +164 -24
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVDebFilterContent.test.js +268 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterDetail.fixtures.json +95 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvDebFilterRules.fixtures.json +31 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/emptyCVDebFilterRules.fixtures.json +10 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +0 -1
- data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +0 -1
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +15 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +9 -0
- data/webpack/scenes/FlatpakRemotes/CreateEdit/CreateFlatpakRemoteModal.js +5 -3
- data/webpack/scenes/FlatpakRemotes/CreateEdit/EditFlatpakRemotesModal.js +1 -1
- data/webpack/scenes/FlatpakRemotes/CreateEdit/FlatpakRemoteform.js +35 -3
- data/webpack/scenes/FlatpakRemotes/Details/FlatpakRemoteDetails.js +1 -1
- data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.css +3 -0
- data/webpack/scenes/FlatpakRemotes/Details/RemoteRepositories/RemoteRepositoriesTable.js +63 -132
- data/webpack/scenes/FlatpakRemotes/FlatpakRemotesPage.js +67 -143
- data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +10 -2
- data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +13 -2
- data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -0
- data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +8 -2
- data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +67 -1
- data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +2 -2
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +0 -2
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +2 -2
- metadata +83 -55
- data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -59
- data/app/lib/actions/katello/host/auto_attach_subscriptions.rb +0 -22
- data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -50
- data/app/lib/actions/katello/organization/simple_content_access/disable.rb +0 -25
- data/app/lib/actions/katello/organization/simple_content_access/enable.rb +0 -25
- data/app/lib/actions/katello/organization/simple_content_access/toggle.rb +0 -42
- data/lib/katello/tasks/migrate_structure_content_for_deb.rake +0 -105
- data/lib/katello/tasks/upgrades/4.2/remove_checksum_values.rake +0 -17
- data/locale/action_names.rb +0 -186
- /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/__tests__/bootedContainerImages.fixtures.js +0 -0
- /data/webpack/scenes/{BootedContainerImages → ContainerImages/Booted}/index.js +0 -0
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
|
|
2
|
+
class PopulatePulpPrnFields < ActiveRecord::Migration[7.0]
|
|
3
|
+
def up
|
|
4
|
+
# Content Guards - RHSM cert guards
|
|
5
|
+
Katello::Pulp3::ContentGuard.where.not(pulp_href: nil).update_all(
|
|
6
|
+
"pulp_prn = CASE
|
|
7
|
+
WHEN pulp_href ~ '/contentguards/certguard/rhsm/' THEN
|
|
8
|
+
'prn:certguard.rhsmcertguard:' ||
|
|
9
|
+
regexp_replace(pulp_href, '^.*/([^/]+)/?$', '\\1')
|
|
10
|
+
ELSE NULL
|
|
11
|
+
END"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
# Repositories - remote_prn
|
|
15
|
+
Katello::Repository.where.not(remote_href: nil).update_all(
|
|
16
|
+
"remote_prn = CASE
|
|
17
|
+
WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
|
|
18
|
+
'prn:rpm.rpmremote:' ||
|
|
19
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
20
|
+
WHEN remote_href ~ '/remotes/rpm/uln/' THEN
|
|
21
|
+
'prn:rpm.ulnremote:' ||
|
|
22
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
23
|
+
WHEN remote_href ~ '/remotes/deb/apt/' THEN
|
|
24
|
+
'prn:deb.aptremote:' ||
|
|
25
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
26
|
+
WHEN remote_href ~ '/remotes/container/container/' THEN
|
|
27
|
+
'prn:container.containerremote:' ||
|
|
28
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
29
|
+
WHEN remote_href ~ '/remotes/ansible/collection/' THEN
|
|
30
|
+
'prn:ansible.collectionremote:' ||
|
|
31
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
32
|
+
WHEN remote_href ~ '/remotes/python/python/' THEN
|
|
33
|
+
'prn:python.pythonremote:' ||
|
|
34
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
35
|
+
WHEN remote_href ~ '/remotes/file/file/' THEN
|
|
36
|
+
'prn:file.fileremote:' ||
|
|
37
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
38
|
+
WHEN remote_href ~ '/remotes/ostree/ostree/' THEN
|
|
39
|
+
'prn:ostree.ostreeremote:' ||
|
|
40
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
41
|
+
ELSE NULL
|
|
42
|
+
END"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Repositories - publication_prn
|
|
46
|
+
Katello::Repository.where.not(publication_href: nil).update_all(
|
|
47
|
+
"publication_prn = CASE
|
|
48
|
+
WHEN publication_href ~ '/publications/rpm/rpm/' THEN
|
|
49
|
+
'prn:rpm.rpmpublication:' ||
|
|
50
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
51
|
+
WHEN publication_href ~ '/publications/deb/apt/' THEN
|
|
52
|
+
'prn:deb.aptpublication:' ||
|
|
53
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
54
|
+
WHEN publication_href ~ '/publications/container/container/' THEN
|
|
55
|
+
'prn:container.containerpublication:' ||
|
|
56
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
57
|
+
WHEN publication_href ~ '/publications/ansible/ansible/' THEN
|
|
58
|
+
'prn:ansible.ansiblepublication:' ||
|
|
59
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
60
|
+
WHEN publication_href ~ '/publications/python/pypi/' THEN
|
|
61
|
+
'prn:python.pythonpublication:' ||
|
|
62
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
63
|
+
WHEN publication_href ~ '/publications/file/file/' THEN
|
|
64
|
+
'prn:file.filepublication:' ||
|
|
65
|
+
regexp_replace(publication_href, '^.*/([^/]+)/?$', '\\1')
|
|
66
|
+
ELSE NULL
|
|
67
|
+
END"
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
# Ansible Collections - Process in batches due to potentially large number of records
|
|
71
|
+
Katello::AnsibleCollection.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
72
|
+
batch.update_all(
|
|
73
|
+
"pulp_prn = CASE
|
|
74
|
+
WHEN pulp_id ~ '/content/ansible/collection_versions/' THEN
|
|
75
|
+
'prn:ansible.collectionversion:' ||
|
|
76
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
77
|
+
ELSE NULL
|
|
78
|
+
END"
|
|
79
|
+
)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Generic Content Units - Process in batches due to potentially large number of records
|
|
83
|
+
Katello::GenericContentUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
84
|
+
batch.update_all(
|
|
85
|
+
"pulp_prn = CASE
|
|
86
|
+
WHEN pulp_id ~ '/content/python/packages/' THEN
|
|
87
|
+
'prn:python.pythonpackagecontent:' ||
|
|
88
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
89
|
+
WHEN pulp_id ~ '/content/ostree/refs/' THEN
|
|
90
|
+
'prn:ostree.ostreeref:' ||
|
|
91
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
92
|
+
ELSE NULL
|
|
93
|
+
END"
|
|
94
|
+
)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Module Streams - Process in batches due to potentially large number of records
|
|
98
|
+
Katello::ModuleStream.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
99
|
+
batch.update_all(
|
|
100
|
+
"pulp_prn = CASE
|
|
101
|
+
WHEN pulp_id ~ '/content/rpm/modulemds/' THEN
|
|
102
|
+
'prn:rpm.modulemd:' ||
|
|
103
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
104
|
+
ELSE NULL
|
|
105
|
+
END"
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Docker Manifest Lists - Process in batches due to potentially large number of records
|
|
110
|
+
Katello::DockerManifestList.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
111
|
+
batch.update_all(
|
|
112
|
+
"pulp_prn = CASE
|
|
113
|
+
WHEN pulp_id ~ '/content/container/manifests/' THEN
|
|
114
|
+
'prn:container.manifest:' ||
|
|
115
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
116
|
+
ELSE NULL
|
|
117
|
+
END"
|
|
118
|
+
)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# Docker Manifests - Process in batches due to potentially large number of records
|
|
122
|
+
Katello::DockerManifest.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
123
|
+
batch.update_all(
|
|
124
|
+
"pulp_prn = CASE
|
|
125
|
+
WHEN pulp_id ~ '/content/container/manifests/' THEN
|
|
126
|
+
'prn:container.manifest:' ||
|
|
127
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
128
|
+
ELSE NULL
|
|
129
|
+
END"
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Docker Tags - Process in batches due to potentially large number of records
|
|
134
|
+
Katello::DockerTag.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
135
|
+
batch.update_all(
|
|
136
|
+
"pulp_prn = CASE
|
|
137
|
+
WHEN pulp_id ~ '/content/container/tags/' THEN
|
|
138
|
+
'prn:container.tag:' ||
|
|
139
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
140
|
+
ELSE NULL
|
|
141
|
+
END"
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# RPMs - Process in batches due to potentially millions of records
|
|
146
|
+
Katello::Rpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
147
|
+
batch.update_all(
|
|
148
|
+
"pulp_prn = CASE
|
|
149
|
+
WHEN pulp_id ~ '/content/rpm/packages/' THEN
|
|
150
|
+
'prn:rpm.package:' ||
|
|
151
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
152
|
+
ELSE NULL
|
|
153
|
+
END"
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# SRPMs - Process in batches due to potentially large number of records
|
|
158
|
+
Katello::Srpm.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
159
|
+
batch.update_all(
|
|
160
|
+
"pulp_prn = CASE
|
|
161
|
+
WHEN pulp_id ~ '/content/rpm/packages/' THEN
|
|
162
|
+
'prn:rpm.package:' ||
|
|
163
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
164
|
+
ELSE NULL
|
|
165
|
+
END"
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Files (FileUnit uses table_name 'katello_files') - Process in batches due to potentially large number of records
|
|
170
|
+
Katello::FileUnit.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
171
|
+
batch.update_all(
|
|
172
|
+
"pulp_prn = CASE
|
|
173
|
+
WHEN pulp_id ~ '/content/file/files/' THEN
|
|
174
|
+
'prn:file.filecontent:' ||
|
|
175
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
176
|
+
ELSE NULL
|
|
177
|
+
END"
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Package Groups - Process in batches due to potentially large number of records
|
|
182
|
+
Katello::PackageGroup.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
183
|
+
batch.update_all(
|
|
184
|
+
"pulp_prn = CASE
|
|
185
|
+
WHEN pulp_id ~ '/content/rpm/packagegroups/' THEN
|
|
186
|
+
'prn:rpm.packagegroup:' ||
|
|
187
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
188
|
+
ELSE NULL
|
|
189
|
+
END"
|
|
190
|
+
)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
# Debs - Process in batches due to potentially large number of records
|
|
194
|
+
Katello::Deb.where.not(pulp_id: nil).in_batches(of: 10_000) do |batch|
|
|
195
|
+
batch.update_all(
|
|
196
|
+
"pulp_prn = CASE
|
|
197
|
+
WHEN pulp_id ~ '/content/deb/packages/' THEN
|
|
198
|
+
'prn:deb.package:' ||
|
|
199
|
+
regexp_replace(pulp_id, '^.*/([^/]+)/?$', '\\1')
|
|
200
|
+
ELSE NULL
|
|
201
|
+
END"
|
|
202
|
+
)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# Distribution References - prn
|
|
206
|
+
Katello::Pulp3::DistributionReference.where.not(href: nil).update_all(
|
|
207
|
+
"prn = CASE
|
|
208
|
+
WHEN href ~ '/distributions/rpm/rpm/' THEN
|
|
209
|
+
'prn:rpm.rpmdistribution:' ||
|
|
210
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
211
|
+
WHEN href ~ '/distributions/deb/apt/' THEN
|
|
212
|
+
'prn:deb.aptdistribution:' ||
|
|
213
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
214
|
+
WHEN href ~ '/distributions/container/container/' THEN
|
|
215
|
+
'prn:container.containerdistribution:' ||
|
|
216
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
217
|
+
WHEN href ~ '/distributions/ansible/ansible/' THEN
|
|
218
|
+
'prn:ansible.ansibledistribution:' ||
|
|
219
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
220
|
+
WHEN href ~ '/distributions/python/pypi/' THEN
|
|
221
|
+
'prn:python.pythondistribution:' ||
|
|
222
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
223
|
+
WHEN href ~ '/distributions/file/file/' THEN
|
|
224
|
+
'prn:file.filedistribution:' ||
|
|
225
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
226
|
+
WHEN href ~ '/distributions/ostree/ostree/' THEN
|
|
227
|
+
'prn:ostree.ostreedistribution:' ||
|
|
228
|
+
regexp_replace(href, '^.*/([^/]+)/?$', '\\1')
|
|
229
|
+
ELSE NULL
|
|
230
|
+
END"
|
|
231
|
+
)
|
|
232
|
+
|
|
233
|
+
# Distribution References - content_guard_prn
|
|
234
|
+
Katello::Pulp3::DistributionReference.where.not(content_guard_href: nil).update_all(
|
|
235
|
+
"content_guard_prn = CASE
|
|
236
|
+
WHEN content_guard_href ~ '/contentguards/certguard/rhsm/' THEN
|
|
237
|
+
'prn:certguard.rhsmcertguard:' ||
|
|
238
|
+
regexp_replace(content_guard_href, '^.*/([^/]+)/?$', '\\1')
|
|
239
|
+
ELSE NULL
|
|
240
|
+
END"
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
# Repository References - repository_prn
|
|
244
|
+
Katello::Pulp3::RepositoryReference.where.not(repository_href: nil).update_all(
|
|
245
|
+
"repository_prn = CASE
|
|
246
|
+
WHEN repository_href ~ '/repositories/rpm/rpm/' THEN
|
|
247
|
+
'prn:rpm.rpmrepository:' ||
|
|
248
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
249
|
+
WHEN repository_href ~ '/repositories/deb/apt/' THEN
|
|
250
|
+
'prn:deb.aptrepository:' ||
|
|
251
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
252
|
+
WHEN repository_href ~ '/repositories/container/container/' THEN
|
|
253
|
+
'prn:container.containerrepository:' ||
|
|
254
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
255
|
+
WHEN repository_href ~ '/repositories/ansible/ansible/' THEN
|
|
256
|
+
'prn:ansible.ansiblerepository:' ||
|
|
257
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
258
|
+
WHEN repository_href ~ '/repositories/python/python/' THEN
|
|
259
|
+
'prn:python.pythonrepository:' ||
|
|
260
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
261
|
+
WHEN repository_href ~ '/repositories/file/file/' THEN
|
|
262
|
+
'prn:file.filerepository:' ||
|
|
263
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
264
|
+
WHEN repository_href ~ '/repositories/ostree/ostree/' THEN
|
|
265
|
+
'prn:ostree.ostreerepository:' ||
|
|
266
|
+
regexp_replace(repository_href, '^.*/([^/]+)/?$', '\\1')
|
|
267
|
+
ELSE NULL
|
|
268
|
+
END"
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
# Repository Errata - erratum_prn
|
|
272
|
+
Katello::RepositoryErratum.where.not(erratum_pulp3_href: nil).update_all(
|
|
273
|
+
"erratum_prn = CASE
|
|
274
|
+
WHEN erratum_pulp3_href ~ '/content/rpm/advisories/' THEN
|
|
275
|
+
'prn:rpm.updaterecord:' ||
|
|
276
|
+
regexp_replace(erratum_pulp3_href, '^.*/([^/]+)/?$', '\\1')
|
|
277
|
+
ELSE NULL
|
|
278
|
+
END"
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
# Smart Proxy Alternate Content Sources - remote_prn
|
|
282
|
+
Katello::SmartProxyAlternateContentSource.where.not(remote_href: nil).update_all(
|
|
283
|
+
"remote_prn = CASE
|
|
284
|
+
WHEN remote_href ~ '/remotes/rpm/rpm/' THEN
|
|
285
|
+
'prn:rpm.rpmremote:' ||
|
|
286
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
287
|
+
WHEN remote_href ~ '/remotes/rpm/uln/' THEN
|
|
288
|
+
'prn:rpm.ulnremote:' ||
|
|
289
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
290
|
+
WHEN remote_href ~ '/remotes/deb/apt/' THEN
|
|
291
|
+
'prn:deb.aptremote:' ||
|
|
292
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
293
|
+
WHEN remote_href ~ '/remotes/container/container/' THEN
|
|
294
|
+
'prn:container.containerremote:' ||
|
|
295
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
296
|
+
WHEN remote_href ~ '/remotes/ansible/collection/' THEN
|
|
297
|
+
'prn:ansible.collectionremote:' ||
|
|
298
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
299
|
+
WHEN remote_href ~ '/remotes/python/python/' THEN
|
|
300
|
+
'prn:python.pythonremote:' ||
|
|
301
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
302
|
+
WHEN remote_href ~ '/remotes/file/file/' THEN
|
|
303
|
+
'prn:file.fileremote:' ||
|
|
304
|
+
regexp_replace(remote_href, '^.*/([^/]+)/?$', '\\1')
|
|
305
|
+
ELSE NULL
|
|
306
|
+
END"
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
# Smart Proxy Alternate Content Sources - alternate_content_source_prn
|
|
310
|
+
Katello::SmartProxyAlternateContentSource.where.not(alternate_content_source_href: nil).update_all(
|
|
311
|
+
"alternate_content_source_prn = CASE
|
|
312
|
+
WHEN alternate_content_source_href ~ '/acs/rpm/rpm/' THEN
|
|
313
|
+
'prn:rpm.rpmalternatecontentsource:' ||
|
|
314
|
+
regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
|
|
315
|
+
WHEN alternate_content_source_href ~ '/acs/file/file/' THEN
|
|
316
|
+
'prn:file.filealternatecontentsource:' ||
|
|
317
|
+
regexp_replace(alternate_content_source_href, '^.*/([^/]+)/?$', '\\1')
|
|
318
|
+
ELSE NULL
|
|
319
|
+
END"
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
# # Add NOT NULL constraints to PRN fields that correspond to required href fields
|
|
323
|
+
# # These constraints match the NOT NULL constraints on their corresponding href fields
|
|
324
|
+
# change_column_null :katello_content_guards, :pulp_prn, false
|
|
325
|
+
# change_column_null :katello_repository_references, :repository_prn, false
|
|
326
|
+
#
|
|
327
|
+
# # Add NOT NULL constraints to all pulp_prn fields for content tables
|
|
328
|
+
# change_column_null :katello_ansible_collections, :pulp_prn, false
|
|
329
|
+
# change_column_null :katello_generic_content_units, :pulp_prn, false
|
|
330
|
+
# change_column_null :katello_module_streams, :pulp_prn, false
|
|
331
|
+
# change_column_null :katello_docker_manifest_lists, :pulp_prn, false
|
|
332
|
+
# change_column_null :katello_docker_manifests, :pulp_prn, false
|
|
333
|
+
# change_column_null :katello_docker_tags, :pulp_prn, false
|
|
334
|
+
# change_column_null :katello_rpms, :pulp_prn, false
|
|
335
|
+
# change_column_null :katello_srpms, :pulp_prn, false
|
|
336
|
+
# change_column_null :katello_files, :pulp_prn, false
|
|
337
|
+
# change_column_null :katello_package_groups, :pulp_prn, false
|
|
338
|
+
# change_column_null :katello_debs, :pulp_prn, false
|
|
339
|
+
#
|
|
340
|
+
# # Add unique indexes for all pulp_prn fields for content tables
|
|
341
|
+
# add_index :katello_ansible_collections, :pulp_prn, unique: true
|
|
342
|
+
# add_index :katello_generic_content_units, :pulp_prn, unique: true
|
|
343
|
+
# add_index :katello_module_streams, :pulp_prn, unique: true
|
|
344
|
+
# add_index :katello_docker_manifest_lists, :pulp_prn, unique: true
|
|
345
|
+
# add_index :katello_docker_manifests, :pulp_prn, unique: true
|
|
346
|
+
# add_index :katello_docker_tags, :pulp_prn, unique: true
|
|
347
|
+
# add_index :katello_rpms, :pulp_prn, unique: true
|
|
348
|
+
# add_index :katello_srpms, :pulp_prn, unique: true
|
|
349
|
+
# add_index :katello_files, :pulp_prn, unique: true
|
|
350
|
+
# add_index :katello_package_groups, :pulp_prn, unique: true
|
|
351
|
+
# add_index :katello_debs, :pulp_prn, unique: true
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
def down
|
|
355
|
+
# # Remove unique indexes before clearing data
|
|
356
|
+
# remove_index :katello_ansible_collections, :pulp_prn
|
|
357
|
+
# remove_index :katello_generic_content_units, :pulp_prn
|
|
358
|
+
# remove_index :katello_module_streams, :pulp_prn
|
|
359
|
+
# remove_index :katello_docker_manifest_lists, :pulp_prn
|
|
360
|
+
# remove_index :katello_docker_manifests, :pulp_prn
|
|
361
|
+
# remove_index :katello_docker_tags, :pulp_prn
|
|
362
|
+
# remove_index :katello_rpms, :pulp_prn
|
|
363
|
+
# remove_index :katello_srpms, :pulp_prn
|
|
364
|
+
# remove_index :katello_files, :pulp_prn
|
|
365
|
+
# remove_index :katello_package_groups, :pulp_prn
|
|
366
|
+
# remove_index :katello_debs, :pulp_prn
|
|
367
|
+
#
|
|
368
|
+
# # Remove NOT NULL constraints before clearing data
|
|
369
|
+
# change_column_null :katello_content_guards, :pulp_prn, true
|
|
370
|
+
# change_column_null :katello_repository_references, :repository_prn, true
|
|
371
|
+
# change_column_null :katello_ansible_collections, :pulp_prn, true
|
|
372
|
+
# change_column_null :katello_generic_content_units, :pulp_prn, true
|
|
373
|
+
# change_column_null :katello_module_streams, :pulp_prn, true
|
|
374
|
+
# change_column_null :katello_docker_manifest_lists, :pulp_prn, true
|
|
375
|
+
# change_column_null :katello_docker_manifests, :pulp_prn, true
|
|
376
|
+
# change_column_null :katello_docker_tags, :pulp_prn, true
|
|
377
|
+
# change_column_null :katello_rpms, :pulp_prn, true
|
|
378
|
+
# change_column_null :katello_srpms, :pulp_prn, true
|
|
379
|
+
# change_column_null :katello_files, :pulp_prn, true
|
|
380
|
+
# change_column_null :katello_package_groups, :pulp_prn, true
|
|
381
|
+
# change_column_null :katello_debs, :pulp_prn, true
|
|
382
|
+
|
|
383
|
+
# Clear all PRN fields
|
|
384
|
+
execute "UPDATE katello_content_guards SET pulp_prn = NULL"
|
|
385
|
+
execute "UPDATE katello_repositories SET remote_prn = NULL, publication_prn = NULL, version_prn = NULL"
|
|
386
|
+
execute "UPDATE katello_ansible_collections SET pulp_prn = NULL"
|
|
387
|
+
execute "UPDATE katello_generic_content_units SET pulp_prn = NULL"
|
|
388
|
+
execute "UPDATE katello_module_streams SET pulp_prn = NULL"
|
|
389
|
+
execute "UPDATE katello_docker_manifest_lists SET pulp_prn = NULL"
|
|
390
|
+
execute "UPDATE katello_docker_manifests SET pulp_prn = NULL"
|
|
391
|
+
execute "UPDATE katello_docker_tags SET pulp_prn = NULL"
|
|
392
|
+
execute "UPDATE katello_rpms SET pulp_prn = NULL"
|
|
393
|
+
execute "UPDATE katello_srpms SET pulp_prn = NULL"
|
|
394
|
+
execute "UPDATE katello_files SET pulp_prn = NULL"
|
|
395
|
+
execute "UPDATE katello_package_groups SET pulp_prn = NULL"
|
|
396
|
+
execute "UPDATE katello_debs SET pulp_prn = NULL"
|
|
397
|
+
execute "UPDATE katello_distribution_references SET prn = NULL, content_guard_prn = NULL"
|
|
398
|
+
execute "UPDATE katello_repository_references SET repository_prn = NULL"
|
|
399
|
+
execute "UPDATE katello_repository_errata SET erratum_prn = NULL"
|
|
400
|
+
execute "UPDATE katello_smart_proxy_alternate_content_sources SET remote_prn = NULL, alternate_content_source_prn = NULL"
|
|
401
|
+
end
|
|
402
|
+
end
|
|
403
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/ClassLength
|
|
@@ -11,5 +11,7 @@ UpgradeTask.define_tasks(:katello) do
|
|
|
11
11
|
{:name => 'katello:upgrades:4.8:fix_incorrect_providers'},
|
|
12
12
|
{:name => 'katello:upgrades:4.8:regenerate_imported_repository_metadata'},
|
|
13
13
|
{:name => 'katello:upgrades:4.12:update_content_access_modes'},
|
|
14
|
+
{:name => 'katello:upgrades:4.19:populate_repository_version_prns'},
|
|
15
|
+
{:name => 'katello:upgrades:4.19:enable_structured_apt_for_deb', :long_running => true, :skip_failure => true},
|
|
14
16
|
]
|
|
15
17
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Translators:
|
|
3
|
-
# Efstathios Iosifidis <
|
|
3
|
+
# Efstathios Iosifidis <eiosifidis@gmail.com>, 2023
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: \n"
|
|
8
|
-
"Last-Translator: Efstathios Iosifidis <
|
|
8
|
+
"Last-Translator: Efstathios Iosifidis <eiosifidis@gmail.com>, 2023\n"
|
|
9
9
|
"Language-Team: Greek (https://app.transifex.com/foreman/teams/114/el/)\n"
|
|
10
10
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
11
11
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
# Baptiste Agasse <baptiste.agasse@gmail.com>, 2023
|
|
11
11
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2025
|
|
12
12
|
# Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
|
|
13
|
+
# Ondřej Gajdušek, 2025
|
|
13
14
|
#
|
|
14
15
|
msgid ""
|
|
15
16
|
msgstr ""
|
|
16
17
|
"Project-Id-Version: \n"
|
|
17
|
-
"Last-Translator:
|
|
18
|
+
"Last-Translator: Ondřej Gajdušek, 2025\n"
|
|
18
19
|
"Language-Team: French (https://app.transifex.com/foreman/teams/114/fr/)\n"
|
|
19
20
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
20
21
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -331,6 +332,8 @@ msgid ""
|
|
|
331
332
|
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
332
333
|
" Host' | translate}} </span>"
|
|
333
334
|
msgstr ""
|
|
335
|
+
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
336
|
+
" Host' | translate}} </span>"
|
|
334
337
|
|
|
335
338
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
|
336
339
|
msgid "1 Content Host"
|
|
@@ -3604,6 +3607,8 @@ msgid ""
|
|
|
3604
3607
|
"Please select a lifecycle environment. Lifecycle environment and content "
|
|
3605
3608
|
"view must be provided together."
|
|
3606
3609
|
msgstr ""
|
|
3610
|
+
"Veuillez sélectionner un environnement de cycle de vie. L'environnement de "
|
|
3611
|
+
"cycle de vie et la vue de contenu doivent être fournis ensemble."
|
|
3607
3612
|
|
|
3608
3613
|
#: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
|
|
3609
3614
|
msgid "Please select an environment."
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
# Amit Upadhye <aupadhye@redhat.com>, 2023
|
|
5
5
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2023
|
|
6
6
|
# Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
|
|
7
|
+
# Ondřej Gajdušek, 2025
|
|
7
8
|
#
|
|
8
9
|
msgid ""
|
|
9
10
|
msgstr ""
|
|
10
11
|
"Project-Id-Version: \n"
|
|
11
|
-
"Last-Translator:
|
|
12
|
+
"Last-Translator: Ondřej Gajdušek, 2025\n"
|
|
12
13
|
"Language-Team: Japanese (https://app.transifex.com/foreman/teams/114/ja/)\n"
|
|
13
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
14
15
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -314,6 +315,8 @@ msgid ""
|
|
|
314
315
|
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
315
316
|
" Host' | translate}} </span>"
|
|
316
317
|
msgstr ""
|
|
318
|
+
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
319
|
+
" Host' | translate}} </span>"
|
|
317
320
|
|
|
318
321
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
|
319
322
|
msgid "1 Content Host"
|
|
@@ -3367,7 +3370,7 @@ msgstr "コンテンツビューが選択されていることを確認してく
|
|
|
3367
3370
|
msgid ""
|
|
3368
3371
|
"Please select a lifecycle environment. Lifecycle environment and content "
|
|
3369
3372
|
"view must be provided together."
|
|
3370
|
-
msgstr ""
|
|
3373
|
+
msgstr "ライフサイクル環境を選択してください。ライフサイクル環境とコンテンツビューは一緒に提供する必要があります。"
|
|
3371
3374
|
|
|
3372
3375
|
#: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
|
|
3373
3376
|
msgid "Please select an environment."
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
# 0868a4d1af5275b3f70b0a6dac4c99a4, 2023
|
|
5
5
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2023
|
|
6
6
|
# Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
|
|
7
|
+
# Ondřej Gajdušek, 2025
|
|
7
8
|
#
|
|
8
9
|
msgid ""
|
|
9
10
|
msgstr ""
|
|
10
11
|
"Project-Id-Version: \n"
|
|
11
|
-
"Last-Translator:
|
|
12
|
+
"Last-Translator: Ondřej Gajdušek, 2025\n"
|
|
12
13
|
"Language-Team: Korean (https://app.transifex.com/foreman/teams/114/ko/)\n"
|
|
13
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
14
15
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -310,6 +311,8 @@ msgid ""
|
|
|
310
311
|
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
311
312
|
" Host' | translate}} </span>"
|
|
312
313
|
msgstr ""
|
|
314
|
+
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
315
|
+
" Host' | translate}} </span>"
|
|
313
316
|
|
|
314
317
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
|
315
318
|
msgid "1 Content Host"
|
|
@@ -3360,7 +3363,7 @@ msgstr "컨텐츠 보기가 선택되어 있는지 확인하십시오."
|
|
|
3360
3363
|
msgid ""
|
|
3361
3364
|
"Please select a lifecycle environment. Lifecycle environment and content "
|
|
3362
3365
|
"view must be provided together."
|
|
3363
|
-
msgstr ""
|
|
3366
|
+
msgstr "라이프사이클 환경을 선택하세요. 라이프사이클 환경과 콘텐츠 뷰는 함께 제공되어야 합니다."
|
|
3364
3367
|
|
|
3365
3368
|
#: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
|
|
3366
3369
|
msgid "Please select an environment."
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2023
|
|
7
7
|
# Amit Upadhye <aupadhye@redhat.com>, 2025
|
|
8
8
|
# Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
|
|
9
|
+
# Ondřej Gajdušek, 2025
|
|
9
10
|
#
|
|
10
11
|
msgid ""
|
|
11
12
|
msgstr ""
|
|
12
13
|
"Project-Id-Version: \n"
|
|
13
|
-
"Last-Translator:
|
|
14
|
+
"Last-Translator: Ondřej Gajdušek, 2025\n"
|
|
14
15
|
"Language-Team: Chinese (China) (https://app.transifex.com/foreman/teams/114/zh_CN/)\n"
|
|
15
16
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
16
17
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -310,6 +311,8 @@ msgid ""
|
|
|
310
311
|
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
311
312
|
" Host' | translate}} </span>"
|
|
312
313
|
msgstr ""
|
|
314
|
+
"<span> {{table.numSelected > 1? 'Register Content Hosts':'Register Content"
|
|
315
|
+
" Host' | translate}} </span>"
|
|
313
316
|
|
|
314
317
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
|
315
318
|
msgid "1 Content Host"
|
|
@@ -3320,7 +3323,7 @@ msgstr "请确保选择了内容视图。"
|
|
|
3320
3323
|
msgid ""
|
|
3321
3324
|
"Please select a lifecycle environment. Lifecycle environment and content "
|
|
3322
3325
|
"view must be provided together."
|
|
3323
|
-
msgstr ""
|
|
3326
|
+
msgstr "请选择一个生命周期环境。生命周期环境和内容视图必须一起提供。"
|
|
3324
3327
|
|
|
3325
3328
|
#: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html
|
|
3326
3329
|
msgid "Please select an environment."
|