katello 3.8.1 → 3.9.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/README.md +7 -7
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +16 -9
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
- data/app/controllers/katello/api/v2/api_controller.rb +20 -22
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +5 -1
- data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +12 -12
- data/app/controllers/katello/api/v2/content_views_controller.rb +15 -1
- data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -4
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +12 -0
- data/app/controllers/katello/api/v2/module_streams_controller.rb +49 -0
- data/app/controllers/katello/api/v2/organizations_controller.rb +3 -1
- data/app/controllers/katello/api/v2/package_groups_controller.rb +1 -1
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +5 -4
- data/app/controllers/katello/api/v2/products_controller.rb +1 -1
- data/app/controllers/katello/api/v2/puppet_modules_controller.rb +5 -0
- data/app/controllers/katello/api/v2/repositories_controller.rb +80 -84
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +18 -7
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -6
- data/app/controllers/katello/api/v2/sync_plans_controller.rb +13 -24
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +12 -5
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +2 -5
- data/app/controllers/katello/react_controller.rb +2 -0
- data/app/controllers/katello/remote_execution_controller.rb +16 -5
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +0 -2
- data/app/lib/actions/candlepin/import_pool_handler.rb +40 -15
- data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -0
- data/app/lib/actions/katello/content_view/publish.rb +21 -2
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +1 -1
- data/app/lib/actions/katello/environment/destroy.rb +2 -3
- data/app/lib/actions/katello/environment/publish_repositories.rb +1 -1
- data/app/lib/actions/katello/event_queue/monitor.rb +9 -15
- data/app/lib/actions/katello/event_queue/poller_thread.rb +24 -1
- data/app/lib/actions/katello/event_queue/suspended_action.rb +2 -2
- data/app/lib/actions/katello/host/hypervisors_update.rb +82 -22
- data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
- data/app/lib/actions/katello/product/content_create.rb +30 -38
- data/app/lib/actions/katello/product/content_destroy.rb +11 -12
- data/app/lib/actions/katello/product/create.rb +0 -1
- data/app/lib/actions/katello/product/update.rb +0 -2
- data/app/lib/actions/katello/repository/clear.rb +2 -0
- data/app/lib/actions/katello/repository/clone_to_environment.rb +0 -2
- data/app/lib/actions/katello/repository/clone_to_version.rb +15 -3
- data/app/lib/actions/katello/repository/clone_yum_content.rb +21 -2
- data/app/lib/actions/katello/repository/clone_yum_metadata.rb +1 -1
- data/app/lib/actions/katello/repository/correct_checksum.rb +5 -5
- data/app/lib/actions/katello/repository/create.rb +7 -7
- data/app/lib/actions/katello/repository/create_root.rb +22 -0
- data/app/lib/actions/katello/repository/destroy.rb +11 -6
- data/app/lib/actions/katello/repository/discover.rb +5 -3
- data/app/lib/actions/katello/repository/export.rb +1 -1
- data/app/lib/actions/katello/repository/fetch_pxe_files.rb +13 -27
- data/app/lib/actions/katello/repository/index_module_streams.rb +16 -0
- data/app/lib/actions/katello/repository/metadata_generate.rb +1 -1
- data/app/lib/actions/katello/repository/sync.rb +0 -2
- data/app/lib/actions/katello/repository/update.rb +15 -28
- data/app/lib/actions/katello/repository_set/disable_repository.rb +5 -13
- data/app/lib/actions/katello/repository_set/enable_repository.rb +3 -16
- data/app/lib/actions/katello/repository_set/scan_cdn.rb +4 -32
- data/app/lib/actions/katello/sync_plan/run.rb +37 -0
- data/app/lib/actions/pulp/abstract.rb +7 -2
- data/app/lib/actions/pulp/abstract_async_task.rb +1 -0
- data/app/lib/actions/pulp/consumer/generate_applicability.rb +1 -0
- data/app/lib/actions/pulp/repository/copy_module_default.rb +11 -0
- data/app/lib/actions/pulp/repository/copy_module_stream.rb +11 -0
- data/app/lib/actions/pulp/repository/create.rb +2 -0
- data/app/lib/actions/pulp/repository/distributor_publish.rb +3 -2
- data/app/lib/actions/pulp/repository/remove_module_default.rb +11 -0
- data/app/lib/actions/pulp/repository/remove_module_stream.rb +11 -0
- data/app/lib/actions/pulp/repository/sync.rb +6 -19
- data/app/lib/actions/pulp/repository/update_importer.rb +9 -7
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +42 -0
- data/app/lib/katello/concerns/renderer_extensions.rb +6 -4
- data/app/lib/katello/http_resource.rb +5 -1
- data/app/lib/katello/repo_discovery.rb +6 -2
- data/app/lib/katello/resources/candlepin/consumer.rb +18 -1
- data/app/lib/katello/resources/candlepin/owner.rb +9 -0
- data/app/lib/katello/resources/candlepin/pool.rb +2 -2
- data/app/lib/katello/validators/root_repository_unique_attribute_validator.rb +13 -0
- data/app/models/katello/authorization/product.rb +3 -4
- data/app/models/katello/authorization/repository.rb +4 -4
- data/app/models/katello/candlepin/repository_mapper.rb +12 -26
- data/app/models/katello/concerns/audit_search.rb +13 -0
- data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -1
- data/app/models/katello/concerns/content_view_filter_rule_common.rb +1 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +68 -2
- data/app/models/katello/concerns/hostgroup_extensions.rb +13 -0
- data/app/models/katello/concerns/location_extensions.rb +3 -3
- data/app/models/katello/concerns/organization_extensions.rb +7 -3
- data/app/models/katello/concerns/pulp_database_unit.rb +1 -0
- data/app/models/katello/concerns/recurring_logic_extensions.rb +11 -0
- data/app/models/katello/concerns/redhat_extensions.rb +0 -25
- data/app/models/katello/concerns/search_by_repository_name.rb +21 -0
- data/app/models/katello/concerns/setting_extensions.rb +1 -1
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +43 -0
- data/app/models/katello/content.rb +7 -3
- data/app/models/katello/content_view.rb +4 -4
- data/app/models/katello/content_view_component.rb +1 -1
- data/app/models/katello/content_view_history.rb +1 -0
- data/app/models/katello/content_view_version.rb +14 -2
- data/app/models/katello/docker_manifest_list.rb +1 -1
- data/app/models/katello/docker_meta_tag.rb +11 -2
- data/app/models/katello/docker_tag.rb +1 -1
- data/app/models/katello/erratum.rb +6 -0
- data/app/models/katello/file_unit.rb +0 -1
- data/app/models/katello/glue/candlepin/owner.rb +1 -0
- data/app/models/katello/glue/candlepin/pool.rb +1 -2
- data/app/models/katello/glue/candlepin/product.rb +0 -4
- data/app/models/katello/glue/candlepin/repository.rb +0 -21
- data/app/models/katello/glue/provider.rb +4 -2
- data/app/models/katello/glue/pulp/repo.rb +10 -173
- data/app/models/katello/glue/pulp/repos.rb +2 -112
- data/app/models/katello/gpg_key.rb +6 -14
- data/app/models/katello/host/content_facet.rb +1 -1
- data/app/models/katello/host/subscription_facet.rb +32 -8
- data/app/models/katello/kt_environment.rb +9 -29
- data/app/models/katello/module_profile.rb +6 -0
- data/app/models/katello/module_profile_rpm.rb +5 -0
- data/app/models/katello/module_stream.rb +112 -0
- data/app/models/katello/module_stream_artifact.rb +5 -0
- data/app/models/katello/ostree_branch.rb +0 -1
- data/app/models/katello/package_group.rb +1 -1
- data/app/models/katello/pool.rb +4 -0
- data/app/models/katello/product.rb +18 -21
- data/app/models/katello/product_content.rb +2 -2
- data/app/models/katello/puppet_module.rb +1 -0
- data/app/models/katello/purpose_addons_status.rb +50 -0
- data/app/models/katello/purpose_role_status.rb +50 -0
- data/app/models/katello/purpose_sla_status.rb +48 -0
- data/app/models/katello/purpose_status.rb +56 -0
- data/app/models/katello/purpose_usage_status.rb +50 -0
- data/app/models/katello/repository.rb +116 -280
- data/app/models/katello/repository_module_stream.rb +7 -0
- data/app/models/katello/root_repository.rb +262 -0
- data/app/models/katello/subscription_status.rb +1 -1
- data/app/models/katello/sync_plan.rb +93 -40
- data/app/presenters/katello/content_view_version_compare_presenter.rb +7 -2
- data/app/services/katello/candlepin/consumer.rb +25 -0
- data/app/services/katello/candlepin/message_handler.rb +18 -2
- data/app/services/katello/managed_content_medium_provider.rb +27 -0
- data/app/services/katello/product_content_finder.rb +3 -3
- data/app/services/katello/pulp/module_stream.rb +9 -0
- data/app/services/katello/pulp/repository.rb +22 -0
- data/app/services/katello/pulp/srpm.rb +1 -1
- data/app/services/katello/pxe_files_downloader.rb +41 -0
- data/app/services/katello/registration_manager.rb +5 -0
- data/app/views/katello/api/v2/content_facet/show.json.rabl +0 -4
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -2
- data/app/views/katello/api/v2/debs/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/docker_manifest_lists/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/environments/show.json.rabl +1 -0
- data/app/views/katello/api/v2/hosts/host_collections.json.rabl +3 -0
- data/app/views/katello/api/v2/module_streams/base.json.rabl +4 -0
- data/app/views/katello/api/v2/module_streams/index.json.rabl +7 -0
- data/app/views/katello/api/v2/module_streams/name_stream.json.rabl +3 -0
- data/app/views/katello/api/v2/module_streams/name_streams.json.rabl +7 -0
- data/app/views/katello/api/v2/module_streams/show.json.rabl +21 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +4 -1
- data/app/views/katello/api/v2/products/base.json.rabl +1 -1
- data/app/views/katello/api/v2/repositories/base.json.rabl +23 -10
- data/app/views/katello/api/v2/repositories/show.json.rabl +47 -38
- data/app/views/katello/api/v2/smart_proxies/download_policy.json.rabl +1 -0
- data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
- data/app/views/katello/api/v2/sync_plans/show.json.rabl +2 -1
- data/app/views/katello/layouts/react.html.erb +1 -0
- data/config/katello.yaml.example +1 -2
- data/config/routes.rb +5 -0
- data/config/routes/api/v2.rb +12 -1
- data/config/routes/overrides.rb +1 -0
- data/db/migrate/20150114225023_add_upstream_name_to_repository.rb +7 -2
- data/db/migrate/20170208215148_add_docker_repo_name.rb +10 -1
- data/db/migrate/20180326190408_move_subscription_products.rb +2 -0
- data/db/migrate/20180622105300_add_docker_tags_whitelist_to_repository.rb +9 -0
- data/db/migrate/20180725083800_change_repository_password_length.rb +5 -0
- data/db/migrate/20180806205420_add_index_to_content_view_version.rb +5 -0
- data/db/migrate/20180807145652_create_katello_module_streams.rb +88 -0
- data/db/migrate/20180807164405_remove_repository_cp_label.rb +5 -0
- data/db/migrate/20180808013432_add_system_purpose_attrs.rb +39 -0
- data/db/migrate/20180814202747_add_recurring_logic_to_sync_plan.rb +12 -0
- data/db/migrate/20180816142044_add_description_to_katello_module_streams.rb +6 -0
- data/db/migrate/20180821144248_add_cron_logic_to_sync_plans.rb +5 -0
- data/db/migrate/20180828161400_remove_join_table_for_role_and_usage.rb +20 -0
- data/db/migrate/20180917173645_add_source_repo_checksum_type_to_katello_repositories.rb +1 -1
- data/db/migrate/20180920123913_drop_repo_module_streams_timestamp_not_null.rb +7 -0
- data/db/migrate/20180920171008_change_repository_password_to_text.rb +17 -0
- data/db/migrate/20180920214134_create_repository_root.rb +142 -0
- data/db/seeds.d/111-container-image-bookmarks.rb +19 -0
- data/db/seeds.d/111-upgrade_tasks.rb +9 -0
- data/db/seeds.d/150-module_job_templates.rb +12 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/module-stream-actions.service.js +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +60 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html +70 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +16 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-repository-sets-modal.html +1 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +8 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +14 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +48 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html +68 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +15 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +59 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +81 -27
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +10 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +38 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-module-streams.html +8 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-module-streams.html +38 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +11 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-repositories.controller.js +6 -22
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-repositories.html +7 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-stream.factory.js +27 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-streams.module.js +15 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/views/partials/module-streams-table.html +25 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +6 -22
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-repositories.html +7 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/repositories-filters.service.js +89 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +4 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +15 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +15 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +36 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-module-streams.html +17 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +10 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/new-sync-plan-modal.controller.js +6 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-set.factory.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +20 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +23 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +10 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan-form.html +11 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plan-helper.service.js +3 -3
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +5 -1
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -2
- data/lib/katello/engine.rb +7 -12
- data/lib/katello/permission_creator.rb +5 -1
- data/lib/katello/permissions/host_permissions.rb +1 -0
- data/lib/katello/plugin.rb +38 -14
- data/lib/katello/tasks/clean_backend_objects.rake +7 -3
- data/lib/katello/tasks/reimport.rake +1 -0
- data/lib/katello/tasks/repository.rake +11 -8
- data/lib/katello/tasks/upgrades/3.9/migrate_sync_plans.rake +29 -0
- data/lib/katello/version.rb +1 -1
- data/package.json +11 -7
- data/webpack/__mocks__/foremanReact/common/I18n.js +5 -0
- data/webpack/components/MultiSelect/index.js +15 -3
- data/webpack/components/PaginationRow/index.js +1 -1
- data/webpack/components/Search/__snapshots__/Search.test.js.snap +1 -0
- data/webpack/components/Search/index.js +5 -1
- data/webpack/components/SelectOrg/SetOrganization.js +2 -1
- data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +41 -0
- data/webpack/components/WithOrganization/withOrganization.js +42 -10
- data/webpack/components/WithOrganization/withOrganization.test.js +26 -0
- data/webpack/containers/Application/Headers.js +11 -0
- data/webpack/containers/Application/Routes.js +1 -1
- data/webpack/containers/Application/config.js +23 -7
- data/webpack/containers/Application/withHeaders.js +15 -0
- data/webpack/move_to_foreman/common/helpers.js +72 -8
- data/webpack/move_to_foreman/components/common/ConfirmDialog/ConfirmDialog.js +1 -0
- data/webpack/move_to_foreman/components/common/Dialog/Dialog.js +1 -0
- data/webpack/move_to_foreman/components/common/EmptyState/index.js +1 -0
- data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.js +1 -1
- data/webpack/move_to_foreman/components/common/table/formatters/selectionCellFormatter.js +1 -0
- data/webpack/move_to_pf/OptionTooltip/OptionTooltip.scss +20 -0
- data/webpack/move_to_pf/OptionTooltip/__tests__/OptionTooltip.test.js +32 -0
- data/webpack/move_to_pf/OptionTooltip/__tests__/__snapshots__/OptionTooltip.test.js.snap +84 -0
- data/webpack/move_to_pf/OptionTooltip/index.js +83 -0
- data/webpack/move_to_pf/TypeAhead/TypeAhead.js +15 -2
- data/webpack/move_to_pf/react-bootstrap-select/index.js +10 -4
- data/webpack/move_to_pf/test-utils/testHelpers.js +14 -2
- data/webpack/redux/actions/RedHatRepositories/enabled.js +29 -3
- data/webpack/redux/actions/RedHatRepositories/helpers.js +1 -1
- data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +27 -0
- data/webpack/redux/consts.js +8 -0
- data/webpack/redux/reducers/RedHatRepositories/__tests__/enabled.test.js +62 -0
- data/webpack/redux/reducers/RedHatRepositories/{repositorySetRepositories.test.js → __tests__/repositorySetRepositories.test.js} +31 -3
- data/webpack/redux/reducers/RedHatRepositories/{sets.test.js → __tests__/sets.test.js} +3 -3
- data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +16 -0
- data/webpack/redux/reducers/RedHatRepositories/enabled.js +34 -18
- data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.fixtures.js +10 -0
- data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.js +39 -48
- data/webpack/redux/reducers/index.js +6 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailArtifacts.js +19 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailInfo.js +51 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +147 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsActions.js +25 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsConstants.js +3 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsReducer.js +33 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/ModuleStreamDetailProfiles.js +19 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/ProfileRpmsCellFormatter.js +53 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/ProfileRpmsCellFormatter.scss +4 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/TableSchema.js +35 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ModuleStreamDetailProfiles.test.js +14 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ProfileRpmsCellFormatter.test.js +24 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/__snapshots__/ModuleStreamDetailProfiles.test.js.snap +126 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/__snapshots__/ProfileRpmsCellFormatter.test.js.snap +14 -0
- data/webpack/scenes/ModuleStreams/Details/Repositories/ModuleStreamDetailRepositories.js +19 -0
- data/webpack/scenes/ModuleStreams/Details/Repositories/TableSchema.js +39 -0
- data/webpack/scenes/ModuleStreams/Details/Repositories/__tests__/ModuleStreamDetailRepositories.test.js +14 -0
- data/webpack/scenes/ModuleStreams/Details/Repositories/__tests__/__snapshots__/ModuleStreamDetailRepositories.test.js.snap +70 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailArtifacts.test.js +14 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailInfo.test.js +14 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetails.test.js +27 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailsActions.test.js +42 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailsReducer.test.js +33 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailArtifacts.test.js.snap +18 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailInfo.test.js.snap +111 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetails.test.js.snap +552 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsActions.test.js.snap +144 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsReducer.test.js.snap +50 -0
- data/webpack/scenes/ModuleStreams/Details/__tests__/moduleStreamDetails.fixtures.js +115 -0
- data/webpack/scenes/ModuleStreams/Details/index.js +17 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsActions.js +29 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsConstants.js +3 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +98 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsReducer.js +43 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsTable.js +38 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsTableSchema.js +69 -0
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamPage.test.js +27 -0
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsActions.test.js +49 -0
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsReducer.test.js +46 -0
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsTable.test.js +25 -0
- data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamPage.test.js.snap +69 -0
- data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamsTable.test.js.snap +95 -0
- data/webpack/scenes/ModuleStreams/__tests__/moduleStreams.fixtures.js +72 -0
- data/webpack/scenes/ModuleStreams/index.js +17 -0
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +120 -0
- data/webpack/scenes/RedHatRepositories/components/{EnabledRepository.stories.js → EnabledRepository/EnabledRepository.stories.js} +0 -0
- data/webpack/scenes/RedHatRepositories/components/{EnabledRepositoryContent.js → EnabledRepository/EnabledRepositoryContent.js} +0 -0
- data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/EnabledRepository.test.js +6 -2
- data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/EnabledRepositoryContent.test.js +0 -0
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepository.test.js.snap +31 -0
- data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/__snapshots__/EnabledRepositoryContent.test.js.snap +0 -0
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/index.js +17 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySet.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositories.js +43 -5
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositoriesHelpers.js +3 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +168 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/RepositorySetRepository.test.js +38 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/__snapshots__/RepositorySetRepository.test.js.snap +70 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/index.js +18 -0
- data/webpack/scenes/RedHatRepositories/components/SearchBar.js +4 -3
- data/webpack/scenes/RedHatRepositories/components/__tests__/RepositorySetRepositories.test.js +44 -0
- data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/RepositorySetRepositories.test.js.snap +48 -0
- data/webpack/scenes/RedHatRepositories/helpers.js +19 -15
- data/webpack/scenes/RedHatRepositories/index.js +1 -3
- data/webpack/scenes/RedHatRepositories/index.scss +16 -0
- data/webpack/scenes/Settings/Tables/TableActions.js +73 -0
- data/webpack/scenes/Settings/Tables/TableConstants.js +11 -0
- data/webpack/scenes/Settings/Tables/TableHelpers.js +8 -0
- data/webpack/scenes/Settings/Tables/TableReducer.js +46 -0
- data/webpack/scenes/Settings/Tables/__tests__/Table.fixtures.js +125 -0
- data/webpack/scenes/Settings/Tables/__tests__/TableActions.test.js +84 -0
- data/webpack/scenes/Settings/Tables/__tests__/TableReducer.test.js +41 -0
- data/webpack/scenes/Settings/Tables/__tests__/__snapshots__/TableReducer.test.js.snap +76 -0
- data/webpack/scenes/Settings/index.js +4 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionAttributes.js +2 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailActions.js +1 -1
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +1 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailInfo.js +1 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProduct.js +20 -13
- data/webpack/scenes/Subscriptions/Details/{SubscriptionDetailEnabledProducts.js → SubscriptionDetailProductContent.js} +5 -5
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailReducer.js +3 -3
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.js +7 -6
- data/webpack/scenes/Subscriptions/Details/__tests__/{SubscriptionDetailEnabledProducts.test.js → SubscriptionDetailProductContent.test.js} +4 -4
- data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetails.test.js +2 -2
- data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailProduct.test.js.snap +28 -16
- data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/{SubscriptionDetailEnabledProducts.test.js.snap → SubscriptionDetailProductContent.test.js.snap} +1 -1
- data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +16 -16
- data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +1 -1
- data/webpack/scenes/Subscriptions/Manifest/DeleteManifestModalText.js +2 -0
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +38 -61
- data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryReducer.js +4 -0
- data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryTableSchema.js +1 -0
- data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +3 -3
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +12 -3
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +26 -0
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +56 -0
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +26 -11
- data/webpack/scenes/Subscriptions/SubscriptionValidations.js +1 -0
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +144 -39
- data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +7 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +10 -16
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js +1 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +1 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +11 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +15 -2
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +12 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +19 -0
- data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +87 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/EntitlementsInlineEditFormatter.js +1 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionTypeFormatter.js +31 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +16 -11
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +18 -3
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionTypeFormatter.test.js +33 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +29 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionTypeFormatter.test.js.snap +34 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +24 -43
- data/webpack/scenes/Subscriptions/index.js +24 -7
- data/webpack/scenes/Tasks/TaskActions.js +43 -19
- data/webpack/scenes/Tasks/TaskConstants.js +1 -0
- data/webpack/scenes/Tasks/__tests__/TaskActions.test.js +15 -12
- data/webpack/scenes/Tasks/helpers.js +17 -27
- data/webpack/services/api/index.js +3 -0
- metadata +160 -52
- data/app/lib/actions/katello/repository/scheduled_sync.rb +0 -15
- data/app/lib/actions/katello/sync_plan/add_products.rb +0 -27
- data/app/lib/actions/katello/sync_plan/destroy.rb +0 -26
- data/app/lib/actions/katello/sync_plan/remove_products.rb +0 -23
- data/app/lib/actions/katello/sync_plan/update.rb +0 -20
- data/app/lib/actions/pulp/repos/update.rb +0 -24
- data/app/lib/actions/pulp/repository/ensure_sync_notification.rb +0 -11
- data/app/lib/actions/pulp/repository/remove_schedule.rb +0 -16
- data/app/lib/actions/pulp/repository/update_schedule.rb +0 -47
- data/app/lib/katello/validators/repository_unique_attribute_validator.rb +0 -13
- data/app/models/katello/candlepin/docker_repository_mapper.rb +0 -77
- data/app/models/katello/input_template_renderer.rb +0 -7
- data/lib/katello/tasks/upgrades/2.4/import_distributions.rake +0 -11
- data/lib/katello/tasks/upgrades/2.4/import_package_groups.rake +0 -11
- data/lib/katello/tasks/upgrades/2.4/import_puppet_modules.rake +0 -12
- data/lib/katello/tasks/upgrades/2.4/import_rpms.rake +0 -12
- data/lib/katello/tasks/upgrades/3.0/add_export_distributor.rake +0 -14
- data/lib/katello/tasks/upgrades/3.0/delete_docker_v1_content.rake +0 -27
- data/lib/katello/tasks/upgrades/3.0/update_puppet_repository_distributors.rake +0 -20
- data/lib/katello/tasks/upgrades/3.0/update_subscription_facet_backend_data.rake +0 -9
- data/lib/katello/tasks/upgrades/3.3/hypervisors.rake +0 -7
- data/lib/katello/tasks/upgrades/3.4/reindex_docker_tags.rake +0 -12
- data/lib/katello/tasks/upgrades/3.4/remove_unused_products.rake +0 -28
- data/lib/katello/tasks/upgrades/3.6/import_backend_consumer_attributes.rake +0 -32
- data/lib/katello/tasks/upgrades/3.6/import_product_content.rake +0 -12
- data/lib/katello/tasks/upgrades/3.6/republish_file_repos.rake +0 -16
- data/lib/katello/tasks/upgrades/3.7/import_pools.rake +0 -12
- data/lib/katello/tasks/upgrades/3.7/make_all_ks_repos_bootable.rake +0 -11
- data/webpack/helpers/caret.js +0 -6
- data/webpack/redux/reducers/RedHatRepositories/enabled.test.js +0 -36
- data/webpack/redux/reducers/RedHatRepositories/filters.fixtures.js +0 -5
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository.js +0 -105
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository.js +0 -129
- data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/EnabledRepository.test.js.snap +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae72ca66136fbca345cde1526c87cda188886924
|
4
|
+
data.tar.gz: '018374e21b0767a004eb0a29d3a257b8f34c7b65'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 365920a445e5c8559ccb8e4a8d03bd22d18d6aeab5c37cf89251d9e3f660a37eeb8fb9e6070d83978cd8d0f2f470a32c48df735c14c5ce248e6075c5d492ba23
|
7
|
+
data.tar.gz: 6d6c00d08aba4e7f9e2405e28ccd7feab44f81af1d393eec683d63667c04914367bc81fc6c787b45b2656665a223a5648d995dd355f400bcac9c8b3e1a4f736b
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Katello
|
2
2
|
|
3
|
-
[![Build Status](https://ci.theforeman.org/buildStatus/icon?job=
|
3
|
+
[![Build Status](https://ci.theforeman.org/buildStatus/icon?job=katello-nightly-release)](https://ci.theforeman.org/job/katello-nightly-release/)
|
4
4
|
[![Code Climate](https://codeclimate.com/github/Katello/katello/badges/gpa.svg)](https://codeclimate.com/github/Katello/katello)
|
5
5
|
|
6
6
|
Full documentation is at https://www.theforeman.org/plugins/katello/
|
@@ -19,18 +19,18 @@ Linux based systems.
|
|
19
19
|
## Development
|
20
20
|
|
21
21
|
The most common way to set up Katello for development is to use
|
22
|
-
[
|
23
|
-
This will set up a
|
24
|
-
|
25
|
-
|
22
|
+
[forklift](https://github.com/theforeman/forklift).
|
23
|
+
This will set up a virtual machine with the Katello codebase checked out.
|
24
|
+
Please use the forklift documentation found in the repository for how
|
25
|
+
to get started with forklift.
|
26
26
|
|
27
27
|
There is also
|
28
28
|
[katello-devel-installer](https://github.com/Katello/katello-installer#development-usage)
|
29
29
|
if you would like to use that.
|
30
30
|
|
31
31
|
If you have questions or issues with any of the above methods, feel free to ask
|
32
|
-
for assistance on #theforeman-dev IRC channel or via the
|
33
|
-
|
32
|
+
for assistance on #theforeman-dev IRC channel on freenode or via the
|
33
|
+
[community forum](https://community.theforeman.org/)
|
34
34
|
|
35
35
|
### Test Run
|
36
36
|
|
@@ -3,13 +3,15 @@ module Katello
|
|
3
3
|
class Api::Registry::RegistryProxiesController < Api::V2::ApiController
|
4
4
|
before_action :disable_strong_params
|
5
5
|
before_action :confirm_settings
|
6
|
+
before_action :confirm_push_settings, only: [:start_upload_blob, :upload_blob, :finish_upload_blob,
|
7
|
+
:chunk_upload_blob, :push_manifest]
|
6
8
|
skip_before_action :authorize
|
7
9
|
before_action :optional_authorize, only: [:token]
|
8
10
|
before_action :registry_authorize, except: [:token, :v1_search]
|
9
11
|
before_action :authorize_repository_read, only: [:pull_manifest, :tags_list]
|
10
12
|
before_action :authorize_repository_write, only: [:push_manifest]
|
11
|
-
skip_before_action :check_content_type, :
|
12
|
-
|
13
|
+
skip_before_action :check_content_type, only: [:start_upload_blob, :upload_blob, :finish_upload_blob,
|
14
|
+
:chunk_upload_blob, :push_manifest]
|
13
15
|
skip_after_action :log_response_body, :only => [:pull_blob]
|
14
16
|
|
15
17
|
wrap_parameters false
|
@@ -89,8 +91,7 @@ module Katello
|
|
89
91
|
# Also include repositories in lifecycle environments with registry_unauthenticated_pull=true
|
90
92
|
def readable_repositories
|
91
93
|
table_name = Repository.table_name
|
92
|
-
in_products = Repository.
|
93
|
-
.select(:id)
|
94
|
+
in_products = Repository.in_product(Katello::Product.authorized(:view_products)).select(:id)
|
94
95
|
in_environments = Repository.where(:environment_id => Katello::KTEnvironment.authorized(:view_lifecycle_environments)).select(:id)
|
95
96
|
in_unauth_environments = Repository.joins(:environment).where("#{Katello::KTEnvironment.table_name}.registry_unauthenticated_pull" => true).select(:id)
|
96
97
|
in_content_views = Repository.joins(:content_view_repositories).where("#{ContentViewRepository.table_name}.content_view_id" => Katello::ContentView.readable).select(:id)
|
@@ -100,9 +101,9 @@ module Katello
|
|
100
101
|
|
101
102
|
def find_readable_repository
|
102
103
|
return nil unless params[:repository]
|
103
|
-
repository = Repository.docker_type.
|
104
|
+
repository = Repository.docker_type.find_by(container_repository_name: params[:repository])
|
104
105
|
if repository && !repository.environment.registry_unauthenticated_pull
|
105
|
-
repository = readable_repositories.docker_type.
|
106
|
+
repository = readable_repositories.docker_type.find_by(container_repository_name: params[:repository])
|
106
107
|
end
|
107
108
|
repository
|
108
109
|
end
|
@@ -284,8 +285,9 @@ module Katello
|
|
284
285
|
params[:per_page] = params[:n] || 25
|
285
286
|
params[:search] = params[:q]
|
286
287
|
|
287
|
-
search_results = scoped_search(readable_repositories.
|
288
|
+
search_results = scoped_search(readable_repositories.docker_type.distinct,
|
288
289
|
:container_repository_name, :asc, options)
|
290
|
+
|
289
291
|
results = {
|
290
292
|
num_results: search_results[:subtotal],
|
291
293
|
query: params[:search]
|
@@ -449,10 +451,15 @@ module Katello
|
|
449
451
|
end
|
450
452
|
|
451
453
|
def confirm_settings
|
452
|
-
return true if SETTINGS
|
454
|
+
return true if SETTINGS.dig(:katello, :container_image_registry)
|
453
455
|
render_error('custom_error', :status => :not_found,
|
454
456
|
:locals => { :message => "Registry not configured" })
|
455
|
-
|
457
|
+
end
|
458
|
+
|
459
|
+
def confirm_push_settings
|
460
|
+
return true if SETTINGS.dig(:katello, :container_image_registry, :allow_push)
|
461
|
+
render_error('custom_error', :status => :not_found,
|
462
|
+
:locals => { :message => "Registry push not supported" })
|
456
463
|
end
|
457
464
|
|
458
465
|
def request_url
|
@@ -417,7 +417,7 @@ module Katello
|
|
417
417
|
end
|
418
418
|
|
419
419
|
def rhsm_params
|
420
|
-
params.slice(:name, :type, :facts, :installedProducts, :autoheal, :releaseVer, :serviceLevel, :uuid, :capabilities, :guestIds, :lastCheckin).to_h
|
420
|
+
params.slice(:name, :type, :facts, :installedProducts, :autoheal, :releaseVer, :usage, :role, :addOns, :serviceLevel, :uuid, :capabilities, :guestIds, :lastCheckin).to_h
|
421
421
|
end
|
422
422
|
|
423
423
|
def logger
|
@@ -22,10 +22,8 @@ module Katello
|
|
22
22
|
param :per_page, :number, :desc => N_("Number of results per page to return")
|
23
23
|
param :order, String, :desc => N_("Sort field and order, eg. 'id DESC'")
|
24
24
|
param :full_result, :bool, :desc => N_("Whether or not to show all results")
|
25
|
-
param :
|
26
|
-
|
27
|
-
param :order, String, :desc => N_("How to order the sorted results (e.g. ASC for ascending)")
|
28
|
-
end
|
25
|
+
param :sort_by, String, :desc => N_("Field to sort the results on")
|
26
|
+
param :sort_order, String, :desc => N_("How to order the sorted results (e.g. ASC for ascending)")
|
29
27
|
end
|
30
28
|
|
31
29
|
param :object_root, String, :desc => N_("root-node of single-resource responses (optional)")
|
@@ -54,6 +52,9 @@ module Katello
|
|
54
52
|
# rubocop:disable Metrics/AbcSize
|
55
53
|
# rubocop:disable Metrics/PerceivedComplexity
|
56
54
|
def scoped_search(query, default_sort_by, default_sort_order, options = {})
|
55
|
+
params[:sort_by] ||= default_sort_by
|
56
|
+
params[:sort_order] ||= default_sort_order
|
57
|
+
|
57
58
|
resource = options[:resource_class] || resource_class
|
58
59
|
includes = options.fetch(:includes, [])
|
59
60
|
group = options.fetch(:group, nil)
|
@@ -62,33 +63,21 @@ module Katello
|
|
62
63
|
|
63
64
|
if params[:order]
|
64
65
|
(params[:sort_by], params[:sort_order]) = params[:order].split(' ')
|
65
|
-
|
66
|
-
|
67
|
-
sort_attr = (params[:sort_by] || default_sort_by).to_s.downcase
|
68
|
-
|
69
|
-
if sort_attr.present? && !resource.column_names.include?(sort_attr)
|
70
|
-
fail ScopedSearch::QueryNotSupported, _("the field (%s) in the order statement is not valid field for search") % sort_attr
|
66
|
+
else
|
67
|
+
params[:order] = "#{params[:sort_by]} #{params[:sort_order]}"
|
71
68
|
end
|
72
69
|
|
73
70
|
total = scoped_search_total(query, group)
|
74
71
|
|
75
|
-
|
76
|
-
|
77
|
-
query = resource.search_for(*search_options).where("#{resource.table_name}.id" => query)
|
78
|
-
end
|
72
|
+
query = query.select(:id) if query.respond_to?(:select)
|
73
|
+
query = resource.search_for(*search_options).where("#{resource.table_name}.id" => query)
|
79
74
|
|
80
75
|
query = self.final_custom_index_relation(query) if self.respond_to?(:final_custom_index_relation)
|
81
76
|
|
82
77
|
query = query.select(group).group(group) if group
|
83
78
|
sub_total = total.zero? ? 0 : scoped_search_total(query, group)
|
84
79
|
|
85
|
-
if
|
86
|
-
sort_order = (params[:sort_order] || default_sort_order).to_s.downcase
|
87
|
-
sort_order = default_sort_order unless ['desc', 'asc'].include?(sort_order)
|
88
|
-
query = query.order(sort_attr => sort_order.to_sym)
|
89
|
-
params[:sort_by] = sort_attr
|
90
|
-
params[:sort_order] = sort_order
|
91
|
-
elsif options[:custom_sort]
|
80
|
+
if options[:custom_sort]
|
92
81
|
query = options[:custom_sort].call(query)
|
93
82
|
end
|
94
83
|
query = query.order("#{query.table_name}.id DESC") unless group #secondary order to ensure sort is deterministic
|
@@ -111,7 +100,7 @@ module Katello
|
|
111
100
|
message = _('Your search query was invalid. Please revise it and try again. The full error has been sent to the application logs.')
|
112
101
|
end
|
113
102
|
|
114
|
-
scoped_search_results(blank_query,
|
103
|
+
scoped_search_results(blank_query, 0, 0, page, per_page, message)
|
115
104
|
end
|
116
105
|
|
117
106
|
protected
|
@@ -178,6 +167,15 @@ module Katello
|
|
178
167
|
return Organization.find_by(:id => org_id)
|
179
168
|
end
|
180
169
|
|
170
|
+
def csv_response(resources, columns = csv_columns, header = nil, filename = nil)
|
171
|
+
if filename || Organization.current.blank?
|
172
|
+
super
|
173
|
+
else
|
174
|
+
filename = "#{Organization.current.label}-#{controller_name}-#{Date.today}.csv"
|
175
|
+
super(resources, columns, header, filename)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
181
179
|
def find_default_organization_and_or_environment
|
182
180
|
return if (params.keys & %w(organization_id owner environment_id host_collection_id)).any?
|
183
181
|
|
@@ -69,7 +69,7 @@ module Katello
|
|
69
69
|
@lifecycle_environments = @capsule_content.lifecycle_environments(@organization)
|
70
70
|
end
|
71
71
|
|
72
|
-
api :DELETE, '/capsules/:id/content/sync', N_('Cancel running smart proxy synchronization
|
72
|
+
api :DELETE, '/capsules/:id/content/sync', N_('Cancel running smart proxy synchronization')
|
73
73
|
param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
|
74
74
|
def cancel_sync
|
75
75
|
tasks = capsule_content.cancel_sync
|
@@ -5,13 +5,17 @@ module Katello
|
|
5
5
|
|
6
6
|
api :GET, "/content_view_filters/:content_view_filter_id/rules", N_("List filter rules")
|
7
7
|
param :content_view_filter_id, :number, :desc => N_("filter identifier"), :required => true
|
8
|
+
param :name, String, :desc => N_("name of the content view filter rule"), :required => false
|
9
|
+
param :errata_id, String, :desc => N_("errata_id of the content view filter rule"), :required => false
|
8
10
|
param_group :search, Api::V2::ApiController
|
9
11
|
def index
|
10
|
-
respond(collection: scoped_search(index_relation, :
|
12
|
+
respond(collection: scoped_search(index_relation, :id, :asc, resource_class: ContentViewFilter.rule_class_for(@filter)))
|
11
13
|
end
|
12
14
|
|
13
15
|
def index_relation
|
14
16
|
query = ContentViewFilter.rule_class_for(@filter).where(content_view_filter_id: @filter.id)
|
17
|
+
query = query.where(:name => params[:name]) if params[:name]
|
18
|
+
query = query.where(:errata_id => params[:errata_id]) if params[:errata_id]
|
15
19
|
query
|
16
20
|
end
|
17
21
|
|
@@ -7,7 +7,7 @@ module Katello
|
|
7
7
|
api :GET, "/content_views/:id/history", N_("Show a content view's history")
|
8
8
|
param :id, :number, :desc => N_("content view numeric identifier"), :required => true
|
9
9
|
def index
|
10
|
-
respond_for_index :collection => scoped_search(index_relation.distinct, :
|
10
|
+
respond_for_index :collection => scoped_search(index_relation.distinct, :content_view_version_id, :asc, :resource_class => ContentViewHistory)
|
11
11
|
end
|
12
12
|
|
13
13
|
def index_relation
|
@@ -24,10 +24,9 @@ module Katello
|
|
24
24
|
param_group :search, Api::V2::ApiController
|
25
25
|
def index
|
26
26
|
options = {
|
27
|
-
:includes => [:content_view, :environments, :composite_content_views, :history => :task]
|
28
|
-
:custom_sort => lambda { |query| query.order("#{ContentViewVersion.table_name}.major desc, #{ContentViewVersion.table_name}.minor desc") }
|
27
|
+
:includes => [:content_view, :environments, :composite_content_views, :history => :task]
|
29
28
|
}
|
30
|
-
respond(:collection => scoped_search(index_relation.distinct,
|
29
|
+
respond(:collection => scoped_search(index_relation.distinct, :version, :desc, options))
|
31
30
|
end
|
32
31
|
|
33
32
|
def index_relation
|
@@ -65,7 +64,7 @@ module Katello
|
|
65
64
|
respond_for_async :resource => task
|
66
65
|
end
|
67
66
|
|
68
|
-
api :PUT, "/content_view_versions/:id", N_("Update a content view version
|
67
|
+
api :PUT, "/content_view_versions/:id", N_("Update a content view version")
|
69
68
|
param :id, :number, :desc => N_("Content view version identifier"), :required => true
|
70
69
|
param :description, String, :desc => N_("The description for the content view version"), :required => true
|
71
70
|
def update
|
@@ -79,19 +78,20 @@ module Katello
|
|
79
78
|
end
|
80
79
|
end
|
81
80
|
|
82
|
-
api :PUT, "/content_view_versions/:id/republish_repositories", N_("Forces a republish of the version's repositories' metadata
|
81
|
+
api :PUT, "/content_view_versions/:id/republish_repositories", N_("Forces a republish of the version's repositories' metadata")
|
83
82
|
param :id, :number, :desc => N_("Content view version identifier"), :required => true
|
84
83
|
def republish_repositories
|
85
84
|
task = async_task(::Actions::Katello::ContentViewVersion::RepublishRepositories, @version)
|
86
85
|
respond_for_async :resource => task
|
87
86
|
end
|
88
87
|
|
89
|
-
api :POST, "/content_view_versions/:id/export", N_("Export a content view version")
|
88
|
+
api :POST, "/content_view_versions/:id/export", N_("Export a content view version"), :deprecated => true
|
90
89
|
param :id, :number, :desc => N_("Content view version identifier"), :required => true
|
91
90
|
param :export_to_iso, :bool, :desc => N_("Export to ISO format"), :required => false
|
92
91
|
param :iso_mb_size, :number, :desc => N_("maximum size of each ISO in MB"), :required => false
|
93
92
|
param :since, Date, :desc => N_("Optional date of last export (ex: 2010-01-01T12:00:00Z)"), :required => false
|
94
93
|
def export
|
94
|
+
::Foreman::Deprecation.api_deprecation_warning("Export is being deprecated and will be removed in a future version of Katello. Use hammer content-view version export instead.")
|
95
95
|
if params[:export_to_iso].blank? && params[:iso_mb_size].present?
|
96
96
|
fail HttpErrors::BadRequest, _("ISO export must be enabled when specifying ISO size")
|
97
97
|
end
|
@@ -125,15 +125,15 @@ module Katello
|
|
125
125
|
api :POST, "/content_view_versions/incremental_update", N_("Perform an Incremental Update on one or more Content View Versions")
|
126
126
|
param :content_view_version_environments, Array do
|
127
127
|
param :content_view_version_id, :number, :desc => N_("Content View Version Ids to perform an incremental update on. May contain composites as well as one or more components to update.")
|
128
|
-
param :environment_ids, Array, :desc => N_("The list of environments to promote the specified Content View Version to (replacing the older version)
|
128
|
+
param :environment_ids, Array, :desc => N_("The list of environments to promote the specified Content View Version to (replacing the older version)")
|
129
129
|
end
|
130
130
|
param :description, String, :desc => N_("The description for the new generated Content View Versions")
|
131
|
-
param :resolve_dependencies, :bool, :desc => N_("If true, when adding the specified errata or packages, any needed dependencies will be copied as well
|
132
|
-
param :propagate_all_composites, :bool, :desc => N_("If true, will publish a new composite version using any specified content_view_version_id that has been promoted to a lifecycle environment
|
131
|
+
param :resolve_dependencies, :bool, :desc => N_("If true, when adding the specified errata or packages, any needed dependencies will be copied as well")
|
132
|
+
param :propagate_all_composites, :bool, :desc => N_("If true, will publish a new composite version using any specified content_view_version_id that has been promoted to a lifecycle environment")
|
133
133
|
param :add_content, Hash do
|
134
|
-
param :errata_ids, Array, :desc => "Errata ids or uuids to copy into the new versions
|
135
|
-
param :package_ids, Array, :desc => "Package ids or uuids to copy into the new versions
|
136
|
-
param :puppet_module_ids, Array, :desc => "Puppet Module ids or uuids to copy into the new versions
|
134
|
+
param :errata_ids, Array, :desc => "Errata ids or uuids to copy into the new versions"
|
135
|
+
param :package_ids, Array, :desc => "Package ids or uuids to copy into the new versions"
|
136
|
+
param :puppet_module_ids, Array, :desc => "Puppet Module ids or uuids to copy into the new versions"
|
137
137
|
end
|
138
138
|
param :update_hosts, Hash, :desc => N_("After generating the incremental update, apply the changes to the specified hosts. Only Errata are supported currently.") do
|
139
139
|
param :included, Hash, :required => true, :action_aware => true do
|
@@ -79,9 +79,23 @@ module Katello
|
|
79
79
|
param :description, String, :desc => N_("Description for the new published content view version")
|
80
80
|
param :force_yum_metadata_regeneration, :bool, :desc => N_("Force yum metadata regeneration on the repositories " \
|
81
81
|
"in the content view version")
|
82
|
+
param :major, :number, :desc => N_("Override the major version number"), :required => false
|
83
|
+
param :minor, :number, :desc => N_("Override the minor version number"), :required => false
|
84
|
+
|
85
|
+
param :repos_units, Array, :desc => N_("Specify the list of units in each repo"), :required => false do
|
86
|
+
param :label, String, :desc => N_("repo label"), :required => true
|
87
|
+
param :rpm_filenames, Array, of: String, :desc => N_("list of rpm filename strings to include in published version"), :required => true
|
88
|
+
end
|
82
89
|
def publish
|
90
|
+
if params[:repos_units].present? && @view.composite?
|
91
|
+
fail HttpErrors::BadRequest, _("Directly setting package lists on composite content views is not allowed. Please " \
|
92
|
+
"update the components, then re-publish the composite.")
|
93
|
+
end
|
83
94
|
task = async_task(::Actions::Katello::ContentView::Publish, @view, params[:description],
|
84
|
-
:force_yum_metadata_regeneration => params[:force_yum_metadata_regeneration]
|
95
|
+
:force_yum_metadata_regeneration => params[:force_yum_metadata_regeneration],
|
96
|
+
:major => params[:major],
|
97
|
+
:minor => params[:minor],
|
98
|
+
:repos_units => params[:repos_units])
|
85
99
|
respond_for_async :resource => task
|
86
100
|
end
|
87
101
|
|
@@ -27,7 +27,7 @@ module Katello
|
|
27
27
|
fail _("Either both parameters 'content_view_id' and 'environment_id' should be specified or neither should be specified")
|
28
28
|
end
|
29
29
|
|
30
|
-
collection = scoped_search(index_relation, '
|
30
|
+
collection = scoped_search(index_relation, 'updated', 'desc', :resource_class => Erratum, :includes => [:cves])
|
31
31
|
|
32
32
|
@installable_errata_ids = []
|
33
33
|
if @host.content_facet
|
@@ -17,7 +17,10 @@ module Katello
|
|
17
17
|
def_param_group :subscription_facet_attributes do
|
18
18
|
param :release_version, String, :desc => N_("Release version for this Host to use (7Server, 7.1, etc)")
|
19
19
|
param :autoheal, :bool, :desc => N_("Sets whether the Host will autoheal subscriptions upon checkin")
|
20
|
-
param :
|
20
|
+
param :purpose_usage, String, :desc => N_("Sets the system purpose usage")
|
21
|
+
param :purpose_role, String, :desc => N_("Sets the system purpose usage")
|
22
|
+
param :purpose_addons, Array, :desc => N_("Sets the system add-ons")
|
23
|
+
param :service_level, Integer, :desc => N_("Service level to be used for autoheal")
|
21
24
|
param :hypervisor_guest_uuids, Array, :desc => N_("List of hypervisor guest uuids")
|
22
25
|
param :installed_products_attributes, Array, :desc => N_("List of products installed on the host") do
|
23
26
|
param_group :installed_products
|
@@ -64,7 +67,7 @@ module Katello
|
|
64
67
|
respond_for_destroy(:resource => @host)
|
65
68
|
end
|
66
69
|
|
67
|
-
api :POST, "/hosts/subscriptions/", N_("Register a host with subscription and information
|
70
|
+
api :POST, "/hosts/subscriptions/", N_("Register a host with subscription and information")
|
68
71
|
param :name, String, :desc => N_("Name of the host"), :required => true
|
69
72
|
param :uuid, String, :desc => N_("UUID to use for registered host, random uuid is generated if not provided")
|
70
73
|
param :facts, Hash, :desc => N_("Key-value hash of subscription-manager facts, nesting uses a period delimiter (.)")
|
@@ -90,6 +93,9 @@ module Katello
|
|
90
93
|
def params_to_rhsm_params
|
91
94
|
rhsm_params = params.slice(:facts, :uuid, :name).to_unsafe_h
|
92
95
|
rhsm_params[:releaseVer] = params['release_version'] if params['release_version']
|
96
|
+
rhsm_params[:usage] = parms['purpose_usage'] if params['purpose_usage']
|
97
|
+
rhsm_params[:role] = parms['purpose_role'] if params['purpose_role']
|
98
|
+
rhsm_params[:addOns] = params['purpose_addons'] if params['purpose_addons']
|
93
99
|
rhsm_params[:serviceLevel] = params['service_level'] if params['service_level']
|
94
100
|
rhsm_params[:guestIds] = params['hypervisor_guest_uuids'] if params[:hypervisor_guest_uuids]
|
95
101
|
rhsm_params[:type] = Katello::Candlepin::Consumer::SYSTEM
|
@@ -220,10 +226,12 @@ module Katello
|
|
220
226
|
end
|
221
227
|
|
222
228
|
def action_permission
|
223
|
-
if ['add_subscriptions', 'remove_subscriptions', 'auto_attach', 'content_override'].include?(params[:action])
|
229
|
+
if ['add_subscriptions', 'destroy', 'remove_subscriptions', 'auto_attach', 'content_override'].include?(params[:action])
|
224
230
|
:edit
|
225
|
-
elsif ['index', 'events', 'product_content'].include?(params[:action])
|
231
|
+
elsif ['index', 'events', 'product_content', 'available_release_versions'].include?(params[:action])
|
226
232
|
:view
|
233
|
+
else
|
234
|
+
fail ::Foreman::Exception.new(N_("unknown permission for %s"), "#{params[:controller]}##{params[:action]}")
|
227
235
|
end
|
228
236
|
end
|
229
237
|
end
|
@@ -248,6 +248,18 @@ module Katello
|
|
248
248
|
respond_for_index :collection => response, :template => :available_incremental_updates
|
249
249
|
end
|
250
250
|
|
251
|
+
api :POST, "/hosts/bulk/module_streams",
|
252
|
+
N_("Fetch available module streams for hosts.")
|
253
|
+
param_group :bulk_params
|
254
|
+
def module_streams
|
255
|
+
options = {}
|
256
|
+
options[:group] = [:name, :stream]
|
257
|
+
options[:resource_class] = Katello::ModuleStream
|
258
|
+
host_module_streams = Katello::ModuleStream.available_for_hosts(@hosts)
|
259
|
+
respond_for_index(collection: scoped_search(host_module_streams, :name, :asc, options),
|
260
|
+
template: '../../../api/v2/module_streams/name_streams')
|
261
|
+
end
|
262
|
+
|
251
263
|
private
|
252
264
|
|
253
265
|
def find_errata
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Katello
|
2
|
+
class Api::V2::ModuleStreamsController < Api::V2::ApiController
|
3
|
+
extend ::Apipie::DSL::Concern
|
4
|
+
apipie_concern_subst(:a_resource => N_("a module stream"), :resource => "module_streams")
|
5
|
+
include Katello::Concerns::Api::V2::RepositoryContentController
|
6
|
+
|
7
|
+
before_action :check_params, :only => :index
|
8
|
+
|
9
|
+
update_api(:index) do
|
10
|
+
param :host_ids, Array, :desc => N_("List of host id to list available module streams for")
|
11
|
+
param :name_stream_only, :boolean, :desc => N_("Return name and stream information only)")
|
12
|
+
end
|
13
|
+
def index
|
14
|
+
if @name_stream_only
|
15
|
+
sort_by, sort_order, options = sort_options
|
16
|
+
options[:group] = [:name, :stream]
|
17
|
+
respond(:collection => scoped_search(index_relation, sort_by, sort_order, options),
|
18
|
+
:template => 'name_streams')
|
19
|
+
else
|
20
|
+
super
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def custom_index_relation(collection)
|
25
|
+
if @host_ids
|
26
|
+
collection.available_for_hosts(@host_ids)
|
27
|
+
else
|
28
|
+
collection
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def default_sort
|
33
|
+
%w(name asc)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def check_params
|
39
|
+
@name_stream_only = ::Foreman::Cast.to_bool(params[:name_stream_only])
|
40
|
+
|
41
|
+
if params[:host_ids]
|
42
|
+
@host_ids = params[:host_ids].is_a?(Array) ? params[:host_ids] : params[:host_ids].split(",")
|
43
|
+
if ::Host::Managed.authorized("view_hosts").where(:id => @host_ids).count != @host_ids.count
|
44
|
+
fail HttpErrors::NotFound, _('One or more hosts not found')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|