katello 3.17.0.rc1 → 3.17.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +5 -3
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +1 -1
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
- data/app/controllers/katello/api/v2/api_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_uploads_controller.rb +5 -5
- data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +47 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +50 -19
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_tracer_controller.rb +0 -5
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +15 -0
- data/app/controllers/katello/api/v2/repositories_controller.rb +24 -14
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
- data/app/controllers/katello/concerns/api/v2/{associations_permission_check.rb → authorization.rb} +20 -2
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +11 -5
- data/app/helpers/katello/content_view_helper.rb +1 -1
- data/app/lib/actions/candlepin/product/content_add.rb +1 -2
- data/app/lib/actions/katello/capsule_content/refresh_repos.rb +1 -1
- data/app/lib/actions/katello/capsule_content/sync.rb +2 -2
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +17 -3
- data/app/lib/actions/katello/content_view/capsule_sync.rb +1 -1
- data/app/lib/actions/katello/content_view/destroy.rb +2 -2
- data/app/lib/actions/katello/content_view/incremental_updates.rb +1 -1
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -0
- data/app/lib/actions/katello/content_view/publish.rb +12 -7
- data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +1 -1
- data/app/lib/actions/katello/content_view_puppet_environment/create.rb +2 -2
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +4 -4
- data/app/lib/actions/katello/organization/manifest_delete.rb +1 -0
- data/app/lib/actions/katello/organization/manifest_import.rb +1 -0
- data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -0
- data/app/lib/actions/katello/product/content_create.rb +3 -3
- data/app/lib/actions/katello/product/destroy.rb +25 -4
- data/app/lib/actions/katello/repository/clone_contents.rb +3 -3
- data/app/lib/actions/katello/repository/clone_to_environment.rb +2 -2
- data/app/lib/actions/katello/repository/clone_to_version.rb +1 -1
- data/app/lib/actions/katello/repository/create.rb +1 -1
- data/app/lib/actions/katello/repository/destroy.rb +10 -4
- data/app/lib/actions/katello/repository/export.rb +3 -3
- data/app/lib/actions/katello/repository/finish_upload.rb +2 -2
- data/app/lib/actions/katello/repository/import_upload.rb +3 -3
- data/app/lib/actions/katello/repository/metadata_generate.rb +1 -1
- data/app/lib/actions/katello/repository/multi_clone_contents.rb +6 -10
- data/app/lib/actions/katello/repository/purge_empty_content.rb +1 -1
- data/app/lib/actions/katello/repository/remove_content.rb +1 -1
- data/app/lib/actions/katello/repository/sync.rb +35 -25
- data/app/lib/actions/katello/repository/update.rb +30 -19
- data/app/lib/actions/katello/repository/update_http_proxy_details.rb +1 -1
- data/app/lib/actions/katello/repository/update_metadata_sync.rb +1 -1
- data/app/lib/actions/katello/repository/upload_files.rb +2 -2
- data/app/lib/actions/katello/repository/verify_checksum.rb +28 -0
- data/app/lib/actions/pulp/content_view_puppet_environment/copy_contents.rb +1 -1
- data/app/lib/actions/pulp/orchestration/orphan_cleanup/remove_orphans.rb +1 -1
- data/app/lib/actions/pulp/orchestration/repository/sync.rb +2 -1
- data/app/lib/actions/pulp/repository/copy_all_units.rb +1 -1
- data/app/lib/actions/pulp/repository/copy_units.rb +1 -1
- data/app/lib/actions/pulp/repository/create.rb +1 -1
- data/app/lib/actions/pulp/repository/destroy.rb +1 -1
- data/app/lib/actions/pulp/repository/remove_units.rb +2 -2
- data/app/lib/actions/pulp/repository/sync.rb +3 -2
- data/app/lib/actions/pulp3/capsule_content/sync.rb +3 -1
- data/app/lib/actions/pulp3/content_guard/refresh_all_distributions.rb +19 -0
- data/app/lib/actions/pulp3/content_migration.rb +3 -3
- data/app/lib/actions/pulp3/content_view_version/create_exporter.rb +20 -0
- data/app/lib/actions/pulp3/content_view_version/destroy_exporter.rb +16 -0
- data/app/lib/actions/pulp3/content_view_version/export.rb +19 -0
- data/app/lib/actions/pulp3/import_migration.rb +3 -3
- data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +69 -0
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +1 -2
- data/app/lib/actions/pulp3/orchestration/repository/create.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/repository/sync.rb +3 -1
- data/app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb +22 -0
- data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +1 -1
- data/app/lib/actions/pulp3/repository/copy_content.rb +0 -1
- data/app/lib/actions/pulp3/repository/multi_copy_units.rb +2 -2
- data/app/lib/actions/pulp3/repository/presenters/repair_presenter.rb +85 -0
- data/app/lib/actions/pulp3/repository/refresh_distribution.rb +11 -5
- data/app/lib/actions/pulp3/repository/repair.rb +29 -0
- data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -2
- data/app/lib/actions/pulp3/repository/save_version.rb +20 -16
- data/app/lib/actions/pulp3/repository/save_versions.rb +1 -1
- data/app/lib/actions/pulp3/repository/sync.rb +1 -1
- data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +6 -2
- data/app/lib/actions/pulp3/repository/upload_file.rb +2 -2
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +5 -3
- data/app/lib/katello/concerns/permission_extensions.rb +14 -0
- data/app/lib/katello/foreman.rb +1 -1
- data/app/lib/katello/resources/candlepin/product.rb +0 -11
- data/app/lib/katello/resources/registry.rb +3 -3
- data/app/models/katello/authorization/content_view_version_export_history.rb +11 -0
- data/app/models/katello/authorization/product.rb +4 -0
- data/app/models/katello/authorization/repository.rb +8 -0
- data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -1
- data/app/models/katello/concerns/organization_extensions.rb +6 -1
- data/app/models/katello/concerns/pulp_database_unit.rb +2 -2
- data/app/models/katello/concerns/redhat_extensions.rb +4 -2
- data/app/models/katello/concerns/smart_proxy_extensions.rb +33 -16
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
- data/app/models/katello/content_view.rb +1 -1
- data/app/models/katello/content_view_package_filter.rb +1 -1
- data/app/models/katello/content_view_puppet_environment.rb +1 -1
- data/app/models/katello/content_view_version.rb +3 -1
- data/app/models/katello/content_view_version_export_history.rb +22 -0
- data/app/models/katello/docker_meta_tag.rb +1 -1
- data/app/models/katello/errata_status.rb +21 -12
- data/app/models/katello/erratum.rb +1 -1
- data/app/models/katello/glue/candlepin/owner.rb +4 -2
- data/app/models/katello/glue/pulp/repo.rb +3 -1
- data/app/models/katello/host/content_facet.rb +8 -0
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/package_group.rb +1 -1
- data/app/models/katello/ping.rb +8 -3
- data/app/models/katello/pulp3/content_guard.rb +1 -1
- data/app/models/katello/purpose_status.rb +2 -2
- data/app/models/katello/repository.rb +23 -15
- data/app/models/katello/rhsm_fact_parser.rb +1 -1
- data/app/models/katello/root_repository.rb +2 -15
- data/app/models/katello/sync_plan.rb +8 -0
- data/app/models/setting/content.rb +3 -1
- data/app/services/cert/certs.rb +10 -2
- data/app/services/katello/candlepin/event_handler.rb +1 -0
- data/app/services/katello/host_status_manager.rb +7 -0
- data/app/services/katello/pulp/content.rb +1 -1
- data/app/services/katello/pulp/repository.rb +7 -7
- data/app/services/katello/pulp/repository/deb.rb +2 -2
- data/app/services/katello/pulp/repository/docker.rb +5 -5
- data/app/services/katello/pulp/repository/file.rb +2 -2
- data/app/services/katello/pulp/repository/ostree.rb +2 -2
- data/app/services/katello/pulp/repository/puppet.rb +2 -2
- data/app/services/katello/pulp/repository/yum.rb +5 -6
- data/app/services/katello/pulp/smart_proxy_repository.rb +1 -1
- data/app/services/katello/pulp3/ansible_collection.rb +2 -2
- data/app/services/katello/pulp3/api/core.rb +16 -0
- data/app/services/katello/pulp3/content.rb +3 -3
- data/app/services/katello/pulp3/content_view_version/export.rb +71 -0
- data/app/services/katello/pulp3/distribution.rb +2 -2
- data/app/services/katello/pulp3/docker_blob.rb +2 -2
- data/app/services/katello/pulp3/docker_manifest.rb +2 -2
- data/app/services/katello/pulp3/docker_manifest_list.rb +2 -2
- data/app/services/katello/pulp3/docker_tag.rb +2 -2
- data/app/services/katello/pulp3/erratum.rb +2 -2
- data/app/services/katello/pulp3/file_unit.rb +2 -2
- data/app/services/katello/pulp3/migration.rb +139 -34
- data/app/services/katello/pulp3/migration_plan.rb +50 -14
- data/app/services/katello/pulp3/migration_switchover.rb +41 -9
- data/app/services/katello/pulp3/module_stream.rb +2 -2
- data/app/services/katello/pulp3/package_group.rb +2 -2
- data/app/services/katello/pulp3/repository.rb +9 -9
- data/app/services/katello/pulp3/repository/docker.rb +18 -10
- data/app/services/katello/pulp3/repository/yum.rb +25 -13
- data/app/services/katello/pulp3/repository_mirror.rb +2 -1
- data/app/services/katello/pulp3/rpm.rb +2 -2
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -2
- data/app/services/katello/pulp3/smart_proxy_repository.rb +1 -1
- data/app/services/katello/pulp3/srpm.rb +2 -2
- data/app/services/katello/pulp3/task_group.rb +1 -1
- data/app/services/katello/pulp3/yum_metadata_file.rb +2 -2
- data/app/services/katello/registration_manager.rb +9 -3
- data/app/services/katello/repository_type.rb +1 -1
- data/app/services/katello/smart_proxy_helper.rb +14 -17
- data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +10 -2
- data/app/views/katello/api/v2/content_view_repositories/show_all.json.rabl +8 -0
- data/app/views/katello/api/v2/content_view_version_export_histories/index.json.rabl +7 -0
- data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +13 -0
- data/app/views/katello/api/v2/package_groups/show.json.rabl +1 -1
- data/app/views/katello/api/v2/packages/show.json.rabl +1 -1
- data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
- data/app/views/katello/api/v2/srpms/show.json.rabl +1 -1
- data/app/views/katello/api/v2/sync_plans/show.json.rabl +2 -1
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/api/v2.rb +8 -1
- data/db/migrate/20200818040551_add_content_view_version_export_history.rb +13 -0
- data/db/migrate/20200818192230_update_system_purpose_status.rb +12 -0
- data/db/migrate/20200820145217_add_download_concurrency_to_katello_root_repositories.rb +5 -0
- data/db/migrate/20200910140340_remove_distribution_uuid.rb +5 -0
- data/db/migrate/20200914200906_remove_auto_enabled.rb +5 -0
- data/engines/bastion/app/assets/javascripts/bastion/bastion.js +1 -0
- data/engines/bastion/app/assets/javascripts/bastion/routing.module.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-ui-router/stateEvents.js +300 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-subscriptions-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-installed.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment-content.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +57 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +45 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +42 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +45 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +4 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +11 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization-selector.controller.js +5 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-sync-plan-modal.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +7 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +0 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +0 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +16 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-repositories.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +4 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +1 -1
- data/lib/katello/engine.rb +2 -0
- data/lib/katello/permission_creator.rb +14 -9
- data/lib/katello/tasks/clean_published_repo_directories.rake +3 -3
- data/lib/katello/tasks/pulp3_content_switchover.rake +24 -6
- data/lib/katello/tasks/pulp3_migration.rake +4 -2
- data/lib/katello/tasks/pulp3_post_migration_check.rake +2 -2
- data/lib/katello/tasks/reimport.rake +1 -1
- data/lib/katello/tasks/repository.rake +15 -2
- data/lib/katello/tasks/unify_hosts.rake +1 -0
- data/lib/katello/tasks/upgrades/3.11/update_puppet_repos.rake +3 -3
- data/lib/katello/tasks/upgrades/3.12/remove_pulp2_notifier.rake +2 -2
- data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +2 -2
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +47 -47
- data/locale/katello.pot +160 -160
- data/webpack/containers/Application/config.js +4 -4
- data/webpack/redux/actions/RedHatRepositories/helpers.js +1 -1
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +22 -32
- data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +0 -14
- data/webpack/scenes/Subscriptions/Manifest/index.js +2 -5
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +15 -6
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +0 -1
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +3 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +24 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +114 -26
- metadata +67 -33
- data/app/lib/actions/candlepin/product/content_update_enablement.rb +0 -18
- data/app/lib/actions/katello/repository/content_update.rb +0 -41
- data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +0 -17
@@ -42,7 +42,7 @@ module Katello
|
|
42
42
|
fail NotImplementedError
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
45
|
+
def primary_importer_configuration
|
46
46
|
fail NotImplementedError
|
47
47
|
end
|
48
48
|
|
@@ -58,7 +58,7 @@ module Katello
|
|
58
58
|
fail NotImplementedError
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
61
|
+
def generate_primary_importer
|
62
62
|
fail NotImplementedError
|
63
63
|
end
|
64
64
|
|
@@ -120,7 +120,7 @@ module Katello
|
|
120
120
|
end
|
121
121
|
|
122
122
|
def external_url(force_https = false)
|
123
|
-
uri = URI.parse(::SmartProxy.
|
123
|
+
uri = URI.parse(::SmartProxy.pulp_primary.pulp_url)
|
124
124
|
uri.scheme = (root.unprotected && !force_https) ? 'http' : 'https'
|
125
125
|
uri.path = partial_repo_path
|
126
126
|
uri.to_s
|
@@ -130,7 +130,7 @@ module Katello
|
|
130
130
|
if smart_proxy.pulp_mirror?
|
131
131
|
generate_mirror_importer
|
132
132
|
elsif repo.in_default_view?
|
133
|
-
|
133
|
+
generate_primary_importer
|
134
134
|
else #content view repositories don't need any importer configuration
|
135
135
|
importer_class.new
|
136
136
|
end
|
@@ -149,17 +149,17 @@ module Katello
|
|
149
149
|
!distributors_match?(repo_details["distributors"])
|
150
150
|
end
|
151
151
|
|
152
|
-
def
|
152
|
+
def primary_importer_connection_options
|
153
153
|
options = {
|
154
154
|
basic_auth_username: root.upstream_username,
|
155
155
|
basic_auth_password: root.upstream_password,
|
156
156
|
ssl_validation: root.verify_ssl_on_sync?
|
157
157
|
}
|
158
158
|
options.merge!(proxy_options)
|
159
|
-
options.merge!(
|
159
|
+
options.merge!(primary_importer_ssl_options)
|
160
160
|
end
|
161
161
|
|
162
|
-
def
|
162
|
+
def primary_importer_ssl_options
|
163
163
|
if root.redhat? && Katello::Resources::CDN::CdnResource.redhat_cdn?(root.url)
|
164
164
|
{
|
165
165
|
ssl_client_cert: root.product.certificate,
|
@@ -4,7 +4,7 @@ module Katello
|
|
4
4
|
class Deb < ::Katello::Pulp::Repository
|
5
5
|
REPOSITORY_TYPE = 'deb'.freeze
|
6
6
|
|
7
|
-
def
|
7
|
+
def generate_primary_importer
|
8
8
|
config = {
|
9
9
|
feed: root.url,
|
10
10
|
remove_missing: root.mirror_on_sync?,
|
@@ -14,7 +14,7 @@ module Katello
|
|
14
14
|
gpg_keys: root&.gpg_key&.content,
|
15
15
|
require_signature: root.gpg_key.present?
|
16
16
|
}
|
17
|
-
importer_class.new(config.merge(
|
17
|
+
importer_class.new(config.merge(primary_importer_connection_options))
|
18
18
|
end
|
19
19
|
|
20
20
|
def generate_mirror_importer
|
@@ -14,23 +14,23 @@ module Katello
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def generate_primary_importer
|
18
18
|
config = {
|
19
19
|
feed: root.url,
|
20
20
|
upstream_name: root.docker_upstream_name,
|
21
21
|
tags: root.docker_tags_whitelist,
|
22
22
|
enable_v1: false
|
23
23
|
}
|
24
|
-
importer_class.new(config.merge(
|
24
|
+
importer_class.new(config.merge(primary_importer_connection_options))
|
25
25
|
end
|
26
26
|
|
27
27
|
#what foreman proxies w/ content pull docker content from
|
28
28
|
def docker_registry_host
|
29
|
-
if SmartProxy.
|
29
|
+
if SmartProxy.pulp_primary.pulp3_repository_type_support?(Katello::Repository::DOCKER_TYPE)
|
30
30
|
foreman_url = URI.parse(Setting[:foreman_url]).host.downcase
|
31
31
|
"https://#{foreman_url}"
|
32
32
|
else
|
33
|
-
pulp_uri = URI.parse(SmartProxy.
|
33
|
+
pulp_uri = URI.parse(SmartProxy.pulp_primary.pulp_url)
|
34
34
|
"https://#{pulp_uri.host.downcase}:#{Setting['pulp_docker_registry_port']}"
|
35
35
|
end
|
36
36
|
end
|
@@ -56,7 +56,7 @@ module Katello
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def external_url(_force_https = false)
|
59
|
-
pulp_uri = URI.parse(SmartProxy.
|
59
|
+
pulp_uri = URI.parse(SmartProxy.pulp_primary.pulp_url)
|
60
60
|
"#{pulp_uri.host.downcase}:#{Setting['pulp_docker_registry_port']}/#{repo.container_repository_name}"
|
61
61
|
end
|
62
62
|
|
@@ -10,9 +10,9 @@ module Katello
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def generate_primary_importer
|
14
14
|
config = { feed: root.url }
|
15
|
-
importer_class.new(config.merge(
|
15
|
+
importer_class.new(config.merge(primary_importer_connection_options))
|
16
16
|
end
|
17
17
|
|
18
18
|
def generate_mirror_importer
|
@@ -4,12 +4,12 @@ module Katello
|
|
4
4
|
class Ostree < ::Katello::Pulp::Repository
|
5
5
|
PULP_MIRROR_SYNC_DEPTH = -1
|
6
6
|
|
7
|
-
def
|
7
|
+
def generate_primary_importer
|
8
8
|
config = {
|
9
9
|
feed: root.url,
|
10
10
|
depth: root.compute_ostree_upstream_sync_depth
|
11
11
|
}
|
12
|
-
Runcible::Models::OstreeImporter.new(config.merge(
|
12
|
+
Runcible::Models::OstreeImporter.new(config.merge(primary_importer_connection_options))
|
13
13
|
end
|
14
14
|
|
15
15
|
def generate_mirror_importer
|
@@ -2,12 +2,12 @@ module Katello
|
|
2
2
|
module Pulp
|
3
3
|
class Repository
|
4
4
|
class Puppet < ::Katello::Pulp::Repository
|
5
|
-
def
|
5
|
+
def generate_primary_importer
|
6
6
|
config = {
|
7
7
|
feed: root.url,
|
8
8
|
remove_missing: root.mirror_on_sync?
|
9
9
|
}
|
10
|
-
importer_class.new(config.merge(
|
10
|
+
importer_class.new(config.merge(primary_importer_connection_options))
|
11
11
|
end
|
12
12
|
|
13
13
|
def generate_mirror_importer
|
@@ -4,14 +4,14 @@ module Katello
|
|
4
4
|
class Yum < ::Katello::Pulp::Repository
|
5
5
|
REPOSITORY_TYPE = 'yum'.freeze
|
6
6
|
|
7
|
-
def
|
7
|
+
def generate_primary_importer
|
8
8
|
config = {
|
9
9
|
download_policy: root.download_policy,
|
10
10
|
remove_missing: root.mirror_on_sync?,
|
11
11
|
feed: root.url,
|
12
12
|
type_skip_list: root.ignorable_content
|
13
13
|
}
|
14
|
-
importer_class.new(config.merge(
|
14
|
+
importer_class.new(config.merge(primary_importer_connection_options))
|
15
15
|
end
|
16
16
|
|
17
17
|
def generate_mirror_importer
|
@@ -38,14 +38,14 @@ module Katello
|
|
38
38
|
id: yum_dist_id,
|
39
39
|
auto_publish: true
|
40
40
|
}
|
41
|
-
if smart_proxy.
|
41
|
+
if smart_proxy.pulp_primary?
|
42
42
|
options[:checksum_type] = repo.saved_checksum_type || root.checksum_type
|
43
43
|
else
|
44
44
|
options[:checksum_type] = nil
|
45
45
|
end
|
46
46
|
distributors = [Runcible::Models::YumDistributor.new(repo.relative_path, root.unprotected, true, options)]
|
47
47
|
|
48
|
-
if smart_proxy.
|
48
|
+
if smart_proxy.pulp_primary?
|
49
49
|
distributors << Runcible::Models::YumCloneDistributor.new(:id => "#{repo.pulp_id}_clone",
|
50
50
|
:destination_distributor_id => yum_dist_id)
|
51
51
|
distributors << Runcible::Models::ExportDistributor.new(false, false, repo.relative_path)
|
@@ -55,7 +55,7 @@ module Katello
|
|
55
55
|
|
56
56
|
def distributors_to_publish(options)
|
57
57
|
source_repo_id = options[:source_repository]&.fetch(:id)
|
58
|
-
if (source_repo_id || !repo.
|
58
|
+
if (source_repo_id || !repo.primary?) && smart_proxy.pulp_primary?
|
59
59
|
source_repository = source_repo_id ? ::Katello::Repository.find(source_repo_id) : repo.target_repository
|
60
60
|
source_service = source_repository.backend_service(smart_proxy)
|
61
61
|
source_distributor_id = source_service.lookup_distributor_id(Runcible::Models::YumDistributor.type_id)
|
@@ -144,7 +144,6 @@ module Katello
|
|
144
144
|
:distribution_arch => distribution["arch"],
|
145
145
|
:distribution_family => distribution["family"],
|
146
146
|
:distribution_variant => distribution["variant"],
|
147
|
-
:distribution_uuid => distribution["_id"],
|
148
147
|
:distribution_bootable => self.class.distribution_bootable?(distribution)
|
149
148
|
)
|
150
149
|
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpAnsibleClient::ContentCollectionVersionsApi.new(Katello::Pulp3::Api::AnsibleCollection.new(SmartProxy.
|
7
|
+
PulpAnsibleClient::ContentCollectionVersionsApi.new(Katello::Pulp3::Api::AnsibleCollection.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::AnsibleCollection.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::AnsibleCollection.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -58,6 +58,22 @@ module Katello
|
|
58
58
|
fail NotImplementedError
|
59
59
|
end
|
60
60
|
|
61
|
+
def exporter_api
|
62
|
+
PulpcoreClient::ExportersPulpApi.new(core_api_client)
|
63
|
+
end
|
64
|
+
|
65
|
+
def importer_api
|
66
|
+
PulpcoreClient::ImportersPulpApi.new(core_api_client)
|
67
|
+
end
|
68
|
+
|
69
|
+
def export_api
|
70
|
+
PulpcoreClient::ExportersCoreExportsApi.new(core_api_client)
|
71
|
+
end
|
72
|
+
|
73
|
+
def import_api
|
74
|
+
PulpcoreClient::ImportersCoreImportsApi.new(core_api_client)
|
75
|
+
end
|
76
|
+
|
61
77
|
def orphans_api
|
62
78
|
PulpcoreClient::OrphansApi.new(core_api_client)
|
63
79
|
end
|
@@ -7,7 +7,7 @@ module Katello
|
|
7
7
|
def create_upload(size = 0, checksum = nil, content_type = nil)
|
8
8
|
content_unit_href = nil
|
9
9
|
if checksum
|
10
|
-
content_backend_service = SmartProxy.
|
10
|
+
content_backend_service = SmartProxy.pulp_primary.content_service(content_type)
|
11
11
|
content_list = content_backend_service.content_api.list("sha256": checksum)
|
12
12
|
content_unit_href = content_list.results.first.pulp_href unless content_list.results.empty?
|
13
13
|
return {"content_unit_href" => content_unit_href} if content_unit_href
|
@@ -29,7 +29,7 @@ module Katello
|
|
29
29
|
filechunk.write(content)
|
30
30
|
filechunk.flush
|
31
31
|
actual_chunk_size = File.size(filechunk)
|
32
|
-
uploads_api.update(
|
32
|
+
uploads_api.update(content_range(offset, offset + actual_chunk_size - 1, size), upload_href, filechunk)
|
33
33
|
ensure
|
34
34
|
filechunk.close
|
35
35
|
filechunk.unlink
|
@@ -39,7 +39,7 @@ module Katello
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def core_api_client
|
42
|
-
PulpcoreClient::ApiClient.new(SmartProxy.
|
42
|
+
PulpcoreClient::ApiClient.new(SmartProxy.pulp_primary.pulp3_configuration(PulpcoreClient::Configuration))
|
43
43
|
end
|
44
44
|
|
45
45
|
def uploads_api
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Katello
|
2
|
+
module Pulp3
|
3
|
+
module ContentViewVersion
|
4
|
+
class Export
|
5
|
+
def initialize(smart_proxy:, content_view_version: nil, destination_server: nil)
|
6
|
+
@smart_proxy = smart_proxy
|
7
|
+
@content_view_version = content_view_version
|
8
|
+
@destination_server = destination_server
|
9
|
+
end
|
10
|
+
|
11
|
+
def exporter_name
|
12
|
+
@content_view_version.name.gsub(/\s/, '_')
|
13
|
+
end
|
14
|
+
|
15
|
+
def generate_exporter_id
|
16
|
+
"#{@content_view_version.organization.label}_#{exporter_name}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def generate_exporter_path
|
20
|
+
export_path = "#{@content_view_version.content_view}/#{@content_view_version.version}/#{@destination_server}/#{date_dir}".gsub(/\s/, '_')
|
21
|
+
"#{@content_view_version.organization.label}/#{export_path}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def date_dir
|
25
|
+
DateTime.now.to_s.gsub(/\W/, '-')
|
26
|
+
end
|
27
|
+
|
28
|
+
def api
|
29
|
+
::Katello::Pulp3::Api::Core.new(@smart_proxy)
|
30
|
+
end
|
31
|
+
|
32
|
+
def repository_hrefs
|
33
|
+
version_hrefs.map { |href| version_href_to_repository_href(href) }.uniq
|
34
|
+
end
|
35
|
+
|
36
|
+
def version_hrefs
|
37
|
+
if @content_view_version.default?
|
38
|
+
@content_view_version.repositories.yum_type.pluck(:version_href).compact
|
39
|
+
else
|
40
|
+
@content_view_version.archived_repos.yum_type.pluck(:version_href).compact
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def version_href_to_repository_href(version_href)
|
45
|
+
version_href.split("/")[0..-3].join("/") + "/"
|
46
|
+
end
|
47
|
+
|
48
|
+
def create_exporter(export_base_dir: Setting['pulpcore_export_destination'])
|
49
|
+
api.exporter_api.create(name: generate_exporter_id,
|
50
|
+
path: "#{export_base_dir}/#{generate_exporter_path}",
|
51
|
+
repositories: repository_hrefs)
|
52
|
+
end
|
53
|
+
|
54
|
+
def create_export(exporter_href)
|
55
|
+
[api.export_api.create(exporter_href, { versions: version_hrefs })]
|
56
|
+
end
|
57
|
+
|
58
|
+
def fetch_export(exporter_href)
|
59
|
+
api.export_api.list(exporter_href).results.first
|
60
|
+
end
|
61
|
+
|
62
|
+
def destroy_exporter(exporter_href)
|
63
|
+
export_data = fetch_export(exporter_href)
|
64
|
+
api.exporter_api.partial_update(exporter_href, :last_export => nil)
|
65
|
+
api.export_api.delete(export_data.pulp_href) unless export_data.blank?
|
66
|
+
api.exporter_api.delete(exporter_href)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpRpmClient::ContentDistributionTreesApi.new(Katello::Pulp3::Api::Yum.new(SmartProxy.
|
7
|
+
PulpRpmClient::ContentDistributionTreesApi.new(Katello::Pulp3::Api::Yum.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::Yum.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::Yum.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpContainerClient::ContentBlobsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.
|
7
|
+
PulpContainerClient::ContentBlobsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpContainerClient::ContentManifestsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.
|
7
|
+
PulpContainerClient::ContentManifestsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpContainerClient::ContentManifestsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.
|
7
|
+
PulpContainerClient::ContentManifestsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -4,11 +4,11 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpContainerClient::ContentTagsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.
|
7
|
+
PulpContainerClient::ContentTagsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.ids_for_repository(repo_id)
|
11
|
-
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.
|
11
|
+
repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
12
12
|
repo_content_list = repo.content_list
|
13
13
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
14
14
|
end
|
@@ -4,7 +4,7 @@ module Katello
|
|
4
4
|
include LazyAccessor
|
5
5
|
|
6
6
|
def self.content_api
|
7
|
-
PulpRpmClient::ContentAdvisoriesApi.new(Katello::Pulp3::Api::Yum.new(SmartProxy.
|
7
|
+
PulpRpmClient::ContentAdvisoriesApi.new(Katello::Pulp3::Api::Yum.new(SmartProxy.pulp_primary!).api_client)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.unit_identifier
|
@@ -20,7 +20,7 @@ module Katello
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.ids_for_repository(repo_id)
|
23
|
-
repo = Katello::Pulp3::Repository::Yum.new(Katello::Repository.find(repo_id), SmartProxy.
|
23
|
+
repo = Katello::Pulp3::Repository::Yum.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
|
24
24
|
repo_content_list = repo.content_list
|
25
25
|
repo_content_list.map { |content| content.try(:pulp_href) }
|
26
26
|
end
|