katello 3.5.2 → 3.6.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/sync_management/sync_management.js +5 -2
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +2 -0
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +35 -16
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -0
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
- data/app/controllers/katello/api/v2/debs_controller.rb +19 -0
- data/app/controllers/katello/api/v2/docker_manifest_lists_controller.rb +20 -0
- data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
- data/app/controllers/katello/api/v2/errata_controller.rb +24 -0
- data/app/controllers/katello/api/v2/file_units_controller.rb +4 -1
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +10 -4
- data/app/controllers/katello/api/v2/host_autocomplete_controller.rb +0 -1
- data/app/controllers/katello/api/v2/host_collections_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +13 -5
- data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
- data/app/controllers/katello/api/v2/package_groups_controller.rb +3 -2
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/products_controller.rb +3 -3
- data/app/controllers/katello/api/v2/repositories_controller.rb +28 -12
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +21 -13
- data/app/controllers/katello/api/v2/root_controller.rb +0 -1
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -19
- data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -1
- data/app/controllers/katello/application_controller.rb +0 -18
- data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +12 -13
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +17 -13
- data/app/controllers/katello/concerns/containers/steps_controller_extensions.rb +39 -37
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +14 -14
- data/app/controllers/katello/concerns/organizations_controller_extensions.rb +34 -33
- data/app/controllers/katello/concerns/smart_proxies_controller_extensions.rb +18 -17
- data/app/controllers/katello/products_controller.rb +1 -1
- data/app/controllers/katello/providers_controller.rb +11 -0
- data/app/controllers/katello/react_controller.rb +9 -0
- data/app/controllers/katello/sync_management_controller.rb +1 -1
- data/app/helpers/katello/concerns/hosts_and_hostgroups_helper_extensions.rb +10 -9
- data/app/helpers/katello/concerns/settings_helper_extensions.rb +42 -33
- data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +1 -1
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +1 -3
- data/app/helpers/katello/providers_helper.rb +2 -5
- data/app/lib/actions/candlepin/listen_on_candlepin_events.rb +5 -15
- data/app/lib/actions/katello/capsule_content/sync.rb +8 -0
- data/app/lib/actions/katello/content_view/incremental_updates.rb +1 -1
- data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +2 -2
- data/app/lib/actions/katello/content_view_version/republish_repositories.rb +2 -5
- data/app/lib/actions/katello/event_queue/monitor.rb +10 -11
- data/app/lib/actions/katello/event_queue/suspended_action.rb +1 -1
- data/app/lib/actions/katello/host/register.rb +1 -1
- data/app/lib/actions/katello/host/update.rb +1 -3
- data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -5
- data/app/lib/actions/katello/product/content_create.rb +11 -1
- data/app/lib/actions/katello/product/content_destroy.rb +8 -0
- data/app/lib/actions/katello/product/destroy.rb +2 -2
- data/app/lib/actions/katello/product/update.rb +0 -3
- data/app/lib/actions/katello/repository/bulk_metadata_generate.rb +15 -0
- data/app/lib/actions/katello/repository/check_matching_content.rb +10 -3
- data/app/lib/actions/katello/repository/clear.rb +4 -1
- data/app/lib/actions/katello/repository/clone_deb_content.rb +70 -0
- data/app/lib/actions/katello/repository/clone_to_environment.rb +4 -1
- data/app/lib/actions/katello/repository/clone_to_version.rb +19 -10
- data/app/lib/actions/katello/repository/clone_yum_content.rb +2 -0
- data/app/lib/actions/katello/repository/clone_yum_metadata.rb +1 -2
- data/app/lib/actions/katello/repository/create.rb +6 -2
- data/app/lib/actions/katello/repository/destroy.rb +1 -1
- data/app/lib/actions/katello/repository/export.rb +15 -0
- data/app/lib/actions/katello/repository/fetch_pxe_files.rb +49 -0
- data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -0
- data/app/lib/actions/katello/repository/metadata_generate.rb +5 -1
- data/app/lib/actions/katello/repository/remove_content.rb +2 -0
- data/app/lib/actions/katello/repository/sync.rb +5 -6
- data/app/lib/actions/katello/repository/update.rb +14 -4
- data/app/lib/actions/katello/repository/upload_package_group.rb +0 -1
- data/app/lib/actions/katello/repository_set/disable_repository.rb +7 -7
- data/app/lib/actions/katello/repository_set/enable_repository.rb +17 -7
- data/app/lib/actions/katello/repository_set/scan_cdn.rb +8 -10
- data/app/lib/actions/pulp/consumer/abstract_content_action.rb +1 -1
- data/app/lib/actions/pulp/repository/copy_deb.rb +15 -0
- data/app/lib/actions/pulp/repository/copy_deb_component.rb +11 -0
- data/app/lib/actions/pulp/repository/copy_deb_release.rb +11 -0
- data/app/lib/actions/pulp/repository/copy_srpm.rb +16 -0
- data/app/lib/actions/pulp/repository/create.rb +38 -3
- data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +101 -0
- data/app/lib/actions/pulp/repository/remove_deb.rb +15 -0
- data/app/lib/actions/pulp/repository/remove_docker_blob.rb +11 -0
- data/app/lib/actions/pulp/repository/remove_docker_manifest_list.rb +11 -0
- data/app/lib/actions/pulp/repository/remove_docker_tag.rb +11 -0
- data/app/lib/actions/pulp/repository/sync.rb +2 -0
- data/app/lib/katello/api/v2/error_handling.rb +1 -1
- data/app/lib/katello/capsule_content.rb +1 -1
- data/app/lib/katello/concerns/renderer_extensions.rb +12 -10
- data/app/lib/katello/errors.rb +0 -4
- data/app/lib/katello/resources/candlepin.rb +2 -3
- data/app/lib/katello/util/cdn_var_substitutor.rb +2 -2
- data/app/lib/katello/util/docker_manifest_clause_generator.rb +1 -1
- data/app/lib/katello/util/package_clause_generator.rb +1 -1
- data/app/lib/katello/util/support.rb +1 -1
- data/app/models/katello/activation_key.rb +1 -1
- data/app/models/katello/authorization/content_view_history.rb +1 -0
- data/app/models/katello/authorization/content_view_version.rb +1 -1
- data/app/models/katello/authorization/pool.rb +2 -0
- data/app/models/katello/authorization/repository.rb +2 -0
- data/app/models/katello/candlepin/docker_repository_mapper.rb +77 -0
- data/app/models/katello/candlepin/repository_mapper.rb +143 -0
- data/app/models/katello/concerns/container_extensions.rb +14 -12
- data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -2
- data/app/models/katello/concerns/docker_container_wizard_state_extensions.rb +6 -4
- data/app/models/katello/concerns/docker_container_wizard_state_image_extensions.rb +8 -6
- data/app/models/katello/concerns/host_managed_extensions.rb +2 -13
- data/app/models/katello/concerns/location_extensions.rb +5 -1
- data/app/models/katello/concerns/organization_extensions.rb +22 -1
- data/app/models/katello/concerns/pulp_database_unit.rb +26 -5
- data/app/models/katello/concerns/redhat_extensions.rb +22 -21
- data/app/models/katello/concerns/smart_proxy_extensions.rb +11 -9
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +8 -7
- data/app/models/katello/content.rb +26 -0
- data/app/models/katello/content_view.rb +18 -5
- data/app/models/katello/content_view_component.rb +1 -1
- data/app/models/katello/content_view_docker_filter.rb +15 -6
- data/app/models/katello/content_view_filter.rb +8 -2
- data/app/models/katello/content_view_puppet_environment.rb +12 -0
- data/app/models/katello/content_view_repository.rb +2 -1
- data/app/models/katello/content_view_version.rb +57 -15
- data/app/models/katello/deb.rb +50 -0
- data/app/models/katello/docker_manifest.rb +14 -8
- data/app/models/katello/docker_manifest_list.rb +39 -0
- data/app/models/katello/docker_manifest_list_manifest.rb +6 -0
- data/app/models/katello/docker_meta_tag.rb +3 -3
- data/app/models/katello/docker_tag.rb +30 -10
- data/app/models/katello/errata_status.rb +1 -1
- data/app/models/katello/erratum.rb +3 -4
- data/app/models/katello/file_unit.rb +2 -2
- data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
- data/app/models/katello/glue/candlepin/content.rb +9 -34
- data/app/models/katello/glue/candlepin/owner.rb +0 -32
- data/app/models/katello/glue/candlepin/pool.rb +2 -3
- data/app/models/katello/glue/candlepin/product.rb +34 -52
- data/app/models/katello/glue/candlepin/repository.rb +31 -0
- data/app/models/katello/glue/provider.rb +16 -19
- data/app/models/katello/glue/pulp/repo.rb +89 -16
- data/app/models/katello/host/content_facet.rb +6 -6
- data/app/models/katello/host/info_provider.rb +2 -2
- data/app/models/katello/host/subscription_facet.rb +4 -4
- data/app/models/katello/kt_environment.rb +6 -2
- data/app/models/katello/package_group.rb +1 -1
- data/app/models/katello/pool.rb +13 -12
- data/app/models/katello/product.rb +12 -6
- data/app/models/katello/product_content.rb +36 -0
- data/app/models/katello/provider.rb +1 -1
- data/app/models/katello/puppet_module.rb +5 -5
- data/app/models/katello/repository.rb +103 -11
- data/app/models/katello/repository_deb.rb +7 -0
- data/app/models/katello/repository_docker_manifest_list.rb +7 -0
- data/app/models/katello/repository_srpm.rb +7 -0
- data/app/models/katello/rhsm_fact_importer.rb +2 -2
- data/app/models/katello/rhsm_fact_parser.rb +1 -1
- data/app/models/katello/rpm.rb +5 -5
- data/app/models/katello/srpm.rb +40 -0
- data/app/models/katello/subscription.rb +3 -2
- data/app/models/katello/sync_plan.rb +8 -5
- data/app/models/setting/content.rb +5 -3
- data/app/services/katello/product_content_finder.rb +1 -1
- data/app/services/katello/pulp/deb.rb +46 -0
- data/app/services/katello/pulp/docker_manifest_list.rb +7 -0
- data/app/services/katello/pulp/server.rb +4 -12
- data/app/services/katello/pulp/srpm.rb +17 -0
- data/app/views/foreman/unattended/finish-katello.erb +4 -4
- data/app/views/foreman/unattended/kickstart-katello-atomic.erb +3 -3
- data/app/views/foreman/unattended/kickstart-katello.erb +5 -9
- data/app/views/foreman/unattended/snippets/_subscription_manager_registration.erb +3 -3
- data/app/views/foreman/unattended/userdata-katello.erb +8 -8
- data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -2
- data/app/views/katello/api/v2/content_facet/base.json.rabl +6 -1
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +3 -0
- data/app/views/katello/api/v2/content_views/show.json.rabl +12 -0
- data/app/views/katello/api/v2/debs/base.json.rabl +10 -0
- data/app/views/katello/api/v2/debs/index.json.rabl +7 -0
- data/app/views/katello/api/v2/debs/show.json.rabl +3 -0
- data/app/views/katello/api/v2/docker_manifest_lists/index.json.rabl +7 -0
- data/app/views/katello/api/v2/docker_manifest_lists/show.json.rabl +12 -0
- data/app/views/katello/api/v2/docker_manifests/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/docker_manifests/show.json.rabl +5 -1
- data/app/views/katello/api/v2/docker_tags/_base.json.rabl +4 -4
- data/app/views/katello/api/v2/docker_tags/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/docker_tags/show.json.rabl +1 -1
- data/app/views/katello/api/v2/errata/_counts.json.rabl +1 -0
- data/app/views/katello/api/v2/errata/available_errata.rabl +7 -0
- data/app/views/katello/api/v2/file_units/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +1 -2
- data/app/views/katello/api/v2/hostgroups_extensions/show.json.rabl +2 -1
- data/app/views/katello/api/v2/hosts_bulk_actions/applicable_errata.json.rabl +7 -0
- data/app/views/katello/api/v2/layouts/resource.json.erb +1 -1
- data/app/views/katello/api/v2/ostree_branches/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/package_groups/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/packages/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/products/_product_content.json.rabl +9 -0
- data/app/views/katello/api/v2/products/base.json.rabl +3 -1
- data/app/views/katello/api/v2/products/show.json.rabl +6 -2
- data/app/views/katello/api/v2/puppet_modules/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/repositories/base.json.rabl +5 -1
- data/app/views/katello/api/v2/repositories/show.json.rabl +2 -0
- data/app/views/katello/api/v2/repository_sets/show.json.rabl +15 -3
- data/app/views/katello/layouts/react.html.erb +15 -0
- data/app/views/katello/providers/redhat/_repo_sets.html.erb +5 -5
- data/app/views/katello/sync_management/index.html.erb +4 -0
- data/app/views/smart_proxies/pulp_status.html.erb +6 -6
- data/config/katello.yaml.example +0 -4
- data/config/routes.rb +3 -0
- data/config/routes/api/v2.rb +30 -3
- data/config/routes/overrides.rb +1 -0
- data/db/migrate/20131014135042_katello_tables.rb +1 -1
- data/db/migrate/20131014225132_add_users_fields.rb +1 -1
- data/db/migrate/20131016124255_add_foreign_keys_engine.rb +1 -1
- data/db/migrate/20131120225132_add_organization_fields.rb +1 -1
- data/db/migrate/20131216212502_add_quantity_to_katello_key_pools.rb +1 -1
- data/db/migrate/20131216212621_add_cp_id_to_katello_activation_keys.rb +1 -1
- data/db/migrate/20131218174203_drop_katello_key_pools_table.rb +1 -1
- data/db/migrate/20140110000001_update_environments_add_katello_id.rb +1 -1
- data/db/migrate/20140117160939_refactor_content_views.rb +1 -1
- data/db/migrate/20140206200439_create_content_view_puppet_modules.rb +1 -1
- data/db/migrate/20140212131812_create_content_view_package_filter_rules.rb +1 -1
- data/db/migrate/20140212143454_create_content_view_package_group_filter_rules.rb +1 -1
- data/db/migrate/20140212143642_create_content_view_erratum_filter_rules.rb +1 -1
- data/db/migrate/20140217145303_remove_changeset.rb +1 -1
- data/db/migrate/20140217160132_create_content_view_history.rb +1 -1
- data/db/migrate/20140222022712_remove_provider_discovery.rb +1 -1
- data/db/migrate/20140305101813_allow_null_for_repository_content_id.rb +1 -1
- data/db/migrate/20140306132108_create_content_view_puppet_environments.rb +1 -1
- data/db/migrate/20140310102051_repository_add_checksum_type.rb +1 -1
- data/db/migrate/20140318174203_drop_cdn_import_success_column.rb +1 -1
- data/db/migrate/20140325185413_create_content_view_foreign_keys.rb +1 -1
- data/db/migrate/20140404122011_drop_repositories_enabled_column.rb +1 -1
- data/db/migrate/20140411134235_update_content_view_description_type.rb +1 -1
- data/db/migrate/20140414214152_allow_null_content_view_to_activation_key.rb +1 -1
- data/db/migrate/20140418124032_add_next_version_to_katello_content_views.rb +1 -1
- data/db/migrate/20140422000001_update_products_add_organization.rb +1 -1
- data/db/migrate/20140423191446_add_anonymous_providers_to_orgs.rb +1 -1
- data/db/migrate/20140425155126_add_host_id_to_system.rb +1 -1
- data/db/migrate/20140429193743_add_release_version_to_activation_keys.rb +1 -1
- data/db/migrate/20140502164009_rename_system_groups_to_host_collections.rb +1 -1
- data/db/migrate/20140502174412_update_host_collections_foreign_keys.rb +1 -1
- data/db/migrate/20140514165842_create_capsule_lifecycle_environments.rb +1 -1
- data/db/migrate/20140531160506_package_filter_add_original_packages.rb +1 -1
- data/db/migrate/20140610083129_add_pulp_proxy_to_host.rb +1 -1
- data/db/migrate/20140610154745_content_view_puppet_environment_id.rb +1 -1
- data/db/migrate/20140610170142_add_uuid_to_content_view_package_group_filter_rule.rb +1 -1
- data/db/migrate/20140617100300_add_description_to_content_view_filter_rules.rb +1 -1
- data/db/migrate/20140623103442_drop_taxonomies_owner_auto_attach_all_systems_task_id_column.rb +1 -1
- data/db/migrate/20140624183938_add_foreign_keys_for_organizations.rb +1 -1
- data/db/migrate/20140624184401_remove_label_from_activation_key.rb +1 -1
- data/db/migrate/20140626055258_add_missing_foreign_keys.rb +1 -1
- data/db/migrate/20140626204657_add_unlimited_to_activation_keys.rb +1 -1
- data/db/migrate/20140626204902_add_unlimited_to_host_collection.rb +1 -1
- data/db/migrate/20140707203534_location_add_katello_default.rb +1 -1
- data/db/migrate/20140709150428_remove_deletion_task_id_from_taxonomies.rb +1 -1
- data/db/migrate/20140716211853_repo_rename_feed_to_url.rb +1 -1
- data/db/migrate/20140807175457_remove_hidden_column_from_user.rb +1 -1
- data/db/migrate/20140811141742_remove_delayed_jobs.rb +1 -1
- data/db/migrate/20140821084214_add_sync_plan_enabled_to_sync_plan.rb +1 -1
- data/db/migrate/20140928210618_add_description_to_content_view_versions.rb +1 -1
- data/db/migrate/20140930170628_add_errata.rb +1 -1
- data/db/migrate/20141001170628_add_system_repository.rb +1 -1
- data/db/migrate/20141003210742_add_docker_container_registry_url_to_providers.rb +1 -1
- data/db/migrate/20141015173220_add_docker_image_fields.rb +1 -1
- data/db/migrate/20141031150814_add_tag_repository_id_index.rb +1 -1
- data/db/migrate/20141112180709_add_auto_attach_to_activation_keys.rb +1 -1
- data/db/migrate/20141124182205_content_view_version_add_minor.rb +1 -1
- data/db/migrate/20141203123206_add_timestamps_to_repository_join_tables.rb +1 -1
- data/db/migrate/20141204203609_add_default_value_to_auto_attach.rb +1 -1
- data/db/migrate/20141209103005_disown_foreman_templates.rb +1 -1
- data/db/migrate/20141210173220_create_docker_tables.rb +1 -1
- data/db/migrate/20141215213720_track_version_components.rb +1 -1
- data/db/migrate/20141222151001_add_host_content_view_environment.rb +1 -1
- data/db/migrate/20150109012657_add_capsule_id_to_container.rb +1 -1
- data/db/migrate/20150114225023_add_upstream_name_to_repository.rb +1 -1
- data/db/migrate/20150119153452_update_promote_errata_email_description.rb +1 -1
- data/db/migrate/20150224083608_remove_docker_registry_url.rb +1 -1
- data/db/migrate/20150227213850_change_descriptions_to_text_fields.rb +1 -1
- data/db/migrate/20150423134004_add_content_host_id_to_smart_proxy.rb +1 -1
- data/db/migrate/20150505180030_change_errata_timestamps_to_dates.rb +1 -1
- data/db/migrate/20150507131145_update_composite_default_for_content_view.rb +1 -1
- data/db/migrate/20150513034751_add_ostree_branches.rb +1 -1
- data/db/migrate/20150602153753_remove_help_tips.rb +1 -1
- data/db/migrate/20150602153754_remove_search_histories.rb +1 -1
- data/db/migrate/20150602153755_remove_search_favorites.rb +1 -1
- data/db/migrate/20150602153756_remove_user_notices.rb +1 -1
- data/db/migrate/20150602153757_remove_notices.rb +1 -1
- data/db/migrate/20150603045418_remove_user_fields.rb +1 -1
- data/db/migrate/20150606021722_create_puppet_modules.rb +1 -1
- data/db/migrate/20150611140455_remove_default_and_custom_info.rb +1 -1
- data/db/migrate/20150613134559_add_rpm.rb +1 -1
- data/db/migrate/20150623135424_create_package_groups.rb +1 -1
- data/db/migrate/20150715142649_assign_content_host_to_smart_proxies.rb +1 -1
- data/db/migrate/20150717142559_add_distributions_to_repository.rb +1 -1
- data/db/migrate/20150813185339_create_subscriptions.rb +1 -1
- data/db/migrate/20150826165942_add_subscription_facet.rb +1 -1
- data/db/migrate/20150826170004_add_content_facet.rb +1 -1
- data/db/migrate/20150901213759_remove_distributors.rb +1 -1
- data/db/migrate/20150902164543_remove_apply_info_task_id_from_taxonomies.rb +1 -1
- data/db/migrate/20150908222711_drop_marketing_engineering_products.rb +1 -1
- data/db/migrate/20150928221648_update_location_katello_default.rb +1 -1
- data/db/migrate/20150930183738_migrate_content_hosts.rb +1 -1
- data/db/migrate/20151014144004_host_collection_to_hosts.rb +1 -1
- data/db/migrate/20151015152947_add_virt_only_to_katello_pools.rb +1 -1
- data/db/migrate/20151203230940_add_date_type_to_content_view_erratum_filter_rules.rb +1 -1
- data/db/migrate/20151219152536_rename_index_repository_errata.rb +1 -1
- data/db/migrate/20151219203225_rename_index_repository_puppet_module.rb +1 -1
- data/db/migrate/20160114200145_add_mirror_on_sync_to_repositories.rb +1 -1
- data/db/migrate/20160129192548_add_docker_v2_schema.rb +1 -1
- data/db/migrate/20160131182301_add_download_policy_to_katello_repositories.rb +1 -1
- data/db/migrate/20160203195736_remove_docker_image_schema.rb +1 -1
- data/db/migrate/20160211134035_remove_system_errata.rb +1 -1
- data/db/migrate/20160222143432_move_system_description_to_host.rb +1 -1
- data/db/migrate/20160224155909_add_registered_at_to_subscription_facet.rb +1 -1
- data/db/migrate/20160301070319_add_version_ostree_branches.rb +1 -1
- data/db/migrate/20160317171813_change_activation_key_column_names.rb +1 -1
- data/db/migrate/20160323065901_increase_cdn_length.rb +1 -1
- data/db/migrate/20160404132250_remove_katello_from_notification_name.rb +1 -1
- data/db/migrate/20160413230128_add_kickstart_repository_to_hosts_and_hostgroups.rb +1 -1
- data/db/migrate/20160426145517_move_host_description_to_host_comment.rb +1 -1
- data/db/migrate/20160505181337_rename_katello_settings.rb +1 -1
- data/db/migrate/20160520175340_add_host_applicable_package.rb +1 -1
- data/db/migrate/20160530184400_add_repo_id_indexes.rb +1 -1
- data/db/migrate/20160605160933_remove_jobs.rb +1 -1
- data/db/migrate/20160605162929_remove_system_smart_proxy.rb +1 -1
- data/db/migrate/20160613150922_add_event_queue.rb +1 -1
- data/db/migrate/20160617124149_remove_duplicate_view_filters.rb +1 -1
- data/db/migrate/20160619223332_fix_viewer_role.rb +1 -1
- data/db/migrate/20160627125310_delete_system.rb +1 -1
- data/db/migrate/20160701180402_add_sortable_version_to_puppet_modules.rb +1 -1
- data/db/migrate/20160722193256_add_verify_ssl_on_sync_to_repository.rb +1 -1
- data/db/migrate/20160727144242_add_registered_through_to_katello_subscription_facets.rb +1 -1
- data/db/migrate/20160728005028_add_latest_version_to_content_view_component.rb +1 -1
- data/db/migrate/20160808002834_add_files.rb +1 -1
- data/db/migrate/20160906181923_add_puppet_path_to_smart_proxy.rb +1 -1
- data/db/migrate/20160907231049_add_username_password_to_repository.rb +1 -1
- data/db/migrate/20160908234510_add_rpm_nvra.rb +1 -1
- data/db/migrate/20160923143611_add_action_to_content_view_histories.rb +1 -1
- data/db/migrate/20160924213020_change_katello_widget_names.rb +1 -1
- data/db/migrate/20160930121245_content_view_force_puppet_env.rb +1 -1
- data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +1 -1
- data/db/migrate/20161003130853_add_architecture_to_katello_content_view_package_filter_rule.rb +1 -1
- data/db/migrate/20161003204325_add_user_to_katello_subscription_facets.rb +1 -1
- data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +2 -4
- data/db/migrate/20161021072346_fix_subscription_permissions.rb +1 -1
- data/db/migrate/20161026191118_fix_invalid_interfaces.rb +1 -1
- data/db/migrate/20161028153131_sub_facet_user_index_not_uniq.rb +1 -1
- data/db/migrate/20161031204903_add_tracer_support.rb +1 -1
- data/db/migrate/20161102194100_create_content_view_docker_filter_rules.rb +1 -1
- data/db/migrate/20161209162947_add_virt_who_to_katello_pools.rb +1 -1
- data/db/migrate/20161214151548_move_content_source_id_to_content_facets.rb +1 -1
- data/db/migrate/20170114051758_add_depth_to_repositories.rb +1 -1
- data/db/migrate/20170122204325_add_hypervisor_to_subscription_facets.rb +1 -1
- data/db/migrate/20170125152421_move_default_location_to_settings.rb +1 -1
- data/db/migrate/20170208215148_add_docker_repo_name.rb +1 -1
- data/db/migrate/20170220679403_remove_system_permissions.rb +1 -1
- data/db/migrate/20170222131211_change_pool_columns_to_dates.rb +1 -1
- data/db/migrate/20170321012632_fill_in_content_view_components.rb +1 -1
- data/db/migrate/20170523182831_create_docker_meta_tag.rb +1 -1
- data/db/migrate/20170714144125_add_deb.rb +34 -0
- data/db/migrate/20170718142148_create_katello_subscription_facet_pools.rb +1 -1
- data/db/migrate/20170720142145_add_deb_release_parameters_to_repositories.rb +7 -0
- data/db/migrate/20170821170915_add_index_to_installed_packages.rb +1 -1
- data/db/migrate/20170821170916_add_nvra_index_to_installed_packages.rb +1 -1
- data/db/migrate/20170822104447_add_katello_content_to_image.rb +1 -1
- data/db/migrate/20170913183848_add_errata_counts.rb +1 -1
- data/db/migrate/20171010170443_add_index_to_katello_content_facet_errata.rb +1 -1
- data/db/migrate/20171010172724_add_docker_manifest_list.rb +67 -0
- data/db/migrate/20171011175510_add_srpm.rb +38 -0
- data/db/migrate/20171014051810_remove_docker_manifest_name.rb +9 -0
- data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +5 -0
- data/db/migrate/20171112174357_create_katello_content.rb +13 -0
- data/db/migrate/20171112174358_create_katello_product_content.rb +16 -0
- data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
- data/db/migrate/20171114183353_add_hypervisor_id_to_katello_pools.rb +1 -1
- data/db/migrate/20171120144843_add_repository_ignore_proxy.rb +5 -0
- data/db/migrate/20171211124439_add_uuid_index_to_katello_subscription_facets.rb +1 -1
- data/db/migrate/20180103230812_set_errata_updated_date.rb +7 -0
- data/db/seeds.d/101-locations.rb +6 -4
- 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/bastion-katello-bootstrap.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +1 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +8 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +5 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +13 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +44 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-deb-repositories.controller.js +48 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-deb-repositories-list.controller.js +46 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +11 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +4 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-deb-repositories.html +87 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +12 -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 +10 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +13 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +3 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-apt.html +25 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-deb.html +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +16 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/deb.factory.js +28 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +34 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.module.js +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.routes.js +71 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +44 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-repositories.controller.js +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb.controller.js +34 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-content-views.html +41 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +21 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-repositories.html +52 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb.html +37 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/views/debs.html +43 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-list.factory.js +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-lists.module.js +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +17 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-environments.controller.js +2 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html +7 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-content-hosts.controller.js +11 -25
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/incremental-update.service.js +2 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +6 -17
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization-selector.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +17 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +69 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-debs.html +68 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifest-lists.html +44 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +13 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +42 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js +3 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +21 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +8 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +1 -0
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +1 -0
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/docker.scss +16 -0
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -0
- data/lib/katello/engine.rb +4 -6
- data/lib/katello/permission_creator.rb +14 -12
- data/lib/katello/permissions/host_permissions.rb +1 -0
- data/lib/katello/plugin.rb +83 -54
- data/lib/katello/prevent_json_parsing.rb +15 -0
- data/lib/katello/repository_types/deb.rb +1 -0
- data/lib/katello/tasks/clean_old_file_repos.rake +33 -0
- data/lib/katello/tasks/clean_published_repo_directories.rake +4 -4
- data/lib/katello/tasks/reimport.rake +8 -1
- data/lib/katello/tasks/repository.rake +3 -3
- data/lib/katello/tasks/rubocop.rake +1 -1
- data/lib/katello/tasks/test.rake +1 -0
- data/lib/katello/tasks/upgrades/3.6/import_product_content.rake +12 -0
- data/lib/katello/tasks/upgrades/3.6/republish_file_repos.rake +16 -0
- data/lib/katello/tasks/virt_who_report.rake +2 -2
- data/lib/katello/version.rb +1 -1
- data/locale/README +1 -0
- metadata +121 -30
- data/app/lib/actions/candlepin/owner/upstream_regenerate_certificates.rb +0 -17
- data/app/lib/actions/candlepin/product/update.rb +0 -32
- data/app/lib/actions/katello/event_queue/run_once_coordinator_lock.rb +0 -12
- data/app/models/katello/candlepin/content.rb +0 -252
- data/app/models/katello/candlepin/product_content.rb +0 -48
- data/lib/katello/params_parser_wrapper.rb +0 -16
@@ -34,7 +34,7 @@ module Katello
|
|
34
34
|
param :available_for, String, :required => false,
|
35
35
|
:desc => N_("Interpret specified object to return only Host Collections that can be associated with specified object. The value 'host' is supported.")
|
36
36
|
def index
|
37
|
-
respond(:collection => scoped_search(index_relation.
|
37
|
+
respond(:collection => scoped_search(index_relation.distinct, :name, :asc))
|
38
38
|
end
|
39
39
|
|
40
40
|
def index_relation
|
@@ -80,7 +80,7 @@ module Katello
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def params_to_rhsm_params
|
83
|
-
rhsm_params = params.slice(:facts, :uuid, :name)
|
83
|
+
rhsm_params = params.slice(:facts, :uuid, :name).to_unsafe_h
|
84
84
|
rhsm_params[:releaseVer] = params['release_version'] if params['release_version']
|
85
85
|
rhsm_params[:serviceLevel] = params['service_level'] if params['service_level']
|
86
86
|
rhsm_params[:guestIds] = params['hypervisor_guest_uuids'] if params[:hypervisor_guest_uuids]
|
@@ -6,9 +6,9 @@ module Katello
|
|
6
6
|
before_action :find_host_collections, :only => [:bulk_add_host_collections, :bulk_remove_host_collections]
|
7
7
|
before_action :find_environment, :only => [:environment_content_view]
|
8
8
|
before_action :find_content_view, :only => [:environment_content_view]
|
9
|
-
before_action :find_editable_hosts, :except => [:destroy_hosts, :installable_errata]
|
9
|
+
before_action :find_editable_hosts, :except => [:destroy_hosts, :applicable_errata, :installable_errata]
|
10
10
|
before_action :find_deletable_hosts, :only => [:destroy_hosts]
|
11
|
-
before_action :find_readable_hosts, :only => [:installable_errata, :available_incremental_updates]
|
11
|
+
before_action :find_readable_hosts, :only => [:applicable_errata, :installable_errata, :available_incremental_updates]
|
12
12
|
before_action :find_errata, :only => [:available_incremental_updates]
|
13
13
|
|
14
14
|
before_action :validate_content_action, :only => [:install_content, :update_content, :remove_content]
|
@@ -91,6 +91,14 @@ module Katello
|
|
91
91
|
:resource => { 'displayMessages' => display_messages }
|
92
92
|
end
|
93
93
|
|
94
|
+
api :POST, "/hosts/bulk/applicable_errata",
|
95
|
+
N_("Fetch applicable errata for a host.")
|
96
|
+
param_group :bulk_params
|
97
|
+
def applicable_errata
|
98
|
+
respond_for_index(:collection => scoped_search(Katello::Erratum.applicable_to_hosts(@hosts), 'updated', 'desc',
|
99
|
+
:resource_class => Erratum))
|
100
|
+
end
|
101
|
+
|
94
102
|
api :POST, "/hosts/bulk/installable_errata",
|
95
103
|
N_("Fetch installable errata for a host.")
|
96
104
|
param_group :bulk_params
|
@@ -137,7 +145,7 @@ module Katello
|
|
137
145
|
respond_for_async :resource => task
|
138
146
|
end
|
139
147
|
|
140
|
-
api :PUT, "/hosts/bulk/
|
148
|
+
api :PUT, "/hosts/bulk/remove_subscriptions", N_("Remove subscriptions from one or more hosts")
|
141
149
|
param_group :bulk_params
|
142
150
|
param :subscriptions, Array, :desc => N_("Array of subscriptions to remove") do
|
143
151
|
param :id, String, :desc => N_("Subscription Pool id"), :required => true
|
@@ -154,7 +162,7 @@ module Katello
|
|
154
162
|
respond_for_async :resource => task
|
155
163
|
end
|
156
164
|
|
157
|
-
api :PUT, "/hosts/bulk/
|
165
|
+
api :PUT, "/hosts/bulk/add_subscriptions", N_("Add subscriptions to one or more hosts")
|
158
166
|
param_group :bulk_params
|
159
167
|
param :subscriptions, Array, :desc => N_("Array of subscriptions to add"), :required => true do
|
160
168
|
param :id, String, :desc => N_("Subscription Pool id"), :required => true
|
@@ -169,7 +177,7 @@ module Katello
|
|
169
177
|
respond_for_async :resource => task
|
170
178
|
end
|
171
179
|
|
172
|
-
api :PUT, "/hosts/bulk/
|
180
|
+
api :PUT, "/hosts/bulk/auto_attach", N_("Trigger an auto-attach of subscriptions on one or more hosts")
|
173
181
|
param_group :bulk_params
|
174
182
|
def auto_attach
|
175
183
|
task = async_task(::Actions::BulkAction, ::Actions::Katello::Host::AutoAttachSubscriptions, @hosts)
|
@@ -63,7 +63,8 @@ module Katello
|
|
63
63
|
param_group :resource, ::Api::V2::TaxonomiesController
|
64
64
|
def update
|
65
65
|
if params.key?(:redhat_repository_url)
|
66
|
-
|
66
|
+
org_params = params.permit(:redhat_repository_url).to_h
|
67
|
+
sync_task(::Actions::Katello::Provider::Update, @organization.redhat_provider, org_params)
|
67
68
|
end
|
68
69
|
super
|
69
70
|
end
|
@@ -38,7 +38,8 @@ module Katello
|
|
38
38
|
params[:user_visible] = ::Foreman::Cast.to_bool(params[:user_visible])
|
39
39
|
params[:user_visible] ||= true
|
40
40
|
|
41
|
-
|
41
|
+
create_params = params.slice(:name, :description, :user_visible, :mandatory_package_names, :optional_package_names, :conditional_package_names, :default_package_names).to_unsafe_h
|
42
|
+
sync_task(::Actions::Katello::Repository::UploadPackageGroup, @repo, create_params)
|
42
43
|
render :json => {:status => "success"}
|
43
44
|
end
|
44
45
|
|
@@ -54,7 +55,7 @@ module Katello
|
|
54
55
|
render :json => {:status => "success"}
|
55
56
|
end
|
56
57
|
|
57
|
-
def available_for_content_view_filter(filter,
|
58
|
+
def available_for_content_view_filter(filter, _collection)
|
58
59
|
collection_ids = []
|
59
60
|
current_ids = filter.package_group_rules.map(&:uuid)
|
60
61
|
filter.applicable_repos.each do |repo|
|
@@ -31,7 +31,7 @@ module Katello
|
|
31
31
|
validate_contents = ::Foreman::Cast.to_bool(params[:validate_contents])
|
32
32
|
|
33
33
|
syncable_products = @products.syncable
|
34
|
-
syncable_repositories = Repository.where(:product_id => syncable_products).has_url
|
34
|
+
syncable_repositories = Repository.where(:product_id => syncable_products).has_url.in_default_view
|
35
35
|
|
36
36
|
syncable_repositories = syncable_repositories.where(:content_type => Repository::YUM_TYPE) if skip_metadata_check || validate_contents
|
37
37
|
syncable_repositories = syncable_repositories.where.not(:download_policy => ::Runcible::Models::YumImporter::DOWNLOAD_ON_DEMAND) if validate_contents
|
@@ -36,7 +36,7 @@ module Katello
|
|
36
36
|
param_group :search, Api::V2::ApiController
|
37
37
|
def index
|
38
38
|
options = {:includes => [:sync_plan, :provider]}
|
39
|
-
respond(:collection => scoped_search(index_relation.
|
39
|
+
respond(:collection => scoped_search(index_relation.distinct, :name, :asc, options))
|
40
40
|
end
|
41
41
|
|
42
42
|
def index_relation
|
@@ -71,7 +71,7 @@ module Katello
|
|
71
71
|
def create
|
72
72
|
params[:product][:label] = labelize_params(product_params) if product_params
|
73
73
|
|
74
|
-
product = Product.new(product_params)
|
74
|
+
product = Product.new(product_params.to_h)
|
75
75
|
|
76
76
|
sync_task(::Actions::Katello::Product::Create, product, @organization)
|
77
77
|
respond(:resource => product)
|
@@ -89,7 +89,7 @@ module Katello
|
|
89
89
|
param_group :product
|
90
90
|
param :name, String, :desc => N_("Product name")
|
91
91
|
def update
|
92
|
-
sync_task(::Actions::Katello::Product::Update, @product, product_params)
|
92
|
+
sync_task(::Actions::Katello::Product::Update, @product, product_params.to_h)
|
93
93
|
|
94
94
|
respond(:resource => @product.reload)
|
95
95
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Katello
|
2
|
-
class Api::V2::RepositoriesController < Api::V2::ApiController
|
2
|
+
class Api::V2::RepositoriesController < Api::V2::ApiController # rubocop:disable Metrics/ClassLength
|
3
3
|
include Katello::Concerns::FilteredAutoCompleteSearch
|
4
4
|
|
5
5
|
before_action :find_optional_organization, :only => [:index, :auto_complete_search]
|
@@ -16,8 +16,6 @@ module Katello
|
|
16
16
|
before_action :error_on_rh_repo, :only => [:destroy]
|
17
17
|
|
18
18
|
skip_before_action :authorize, :only => [:sync_complete, :gpg_key_content]
|
19
|
-
skip_before_action :require_org, :only => [:sync_complete]
|
20
|
-
skip_before_action :require_user, :only => [:sync_complete]
|
21
19
|
skip_before_action :check_content_type, :only => [:upload_content]
|
22
20
|
|
23
21
|
def_param_group :repo do
|
@@ -27,7 +25,7 @@ module Katello
|
|
27
25
|
param :url, String, :desc => N_("repository source url")
|
28
26
|
param :gpg_key_id, :number, :desc => N_("id of the gpg key that will be assigned to the new repository")
|
29
27
|
param :unprotected, :bool, :desc => N_("true if this repository can be published via HTTP")
|
30
|
-
param :content_type, RepositoryTypeManager.creatable_repository_types.keys, :required => true, :desc => N_("type of repo (either 'yum', 'puppet', 'docker', or 'ostree')")
|
28
|
+
param :content_type, RepositoryTypeManager.creatable_repository_types.keys, :required => true, :desc => N_("type of repo (either 'yum', 'deb', 'puppet', 'docker', or 'ostree')")
|
31
29
|
param :checksum_type, String, :desc => N_("checksum of the repository, currently 'sha1' & 'sha256' are supported.")
|
32
30
|
param :docker_upstream_name, String, :desc => N_("name of the upstream docker repository")
|
33
31
|
param :download_policy, ["immediate", "on_demand", "background"], :desc => N_("download policy for yum repos (either 'immediate', 'on_demand', or 'background')")
|
@@ -37,6 +35,10 @@ module Katello
|
|
37
35
|
param :upstream_password, String, :desc => N_("Password of the upstream repository user used for authentication")
|
38
36
|
param :ostree_upstream_sync_policy, ::Katello::Repository::OSTREE_UPSTREAM_SYNC_POLICIES, :desc => N_("policies for syncing upstream ostree repositories.")
|
39
37
|
param :ostree_upstream_sync_depth, :number, :desc => N_("if a custom sync policy is chosen for ostree repositories then a 'depth' value must be provided.")
|
38
|
+
param :deb_releases, String, :desc => N_("comma separated list of releases to be synched from deb-archive")
|
39
|
+
param :deb_components, String, :desc => N_("comma separated list of repo components to be synched from deb-archive")
|
40
|
+
param :deb_architectures, String, :desc => N_("comma separated list of architectures to be synched from deb-archive")
|
41
|
+
param :ignore_global_proxy, :bool, :desc => N_("if true, will ignore the globally configured proxy when syncing.")
|
40
42
|
end
|
41
43
|
|
42
44
|
api :GET, "/repositories", N_("List of enabled repositories")
|
@@ -50,8 +52,9 @@ module Katello
|
|
50
52
|
param :environment_id, :number, :desc => N_("ID of an environment to show repositories in")
|
51
53
|
param :content_view_id, :number, :desc => N_("ID of a content view to show repositories in")
|
52
54
|
param :content_view_version_id, :number, :desc => N_("ID of a content view version to show repositories in")
|
55
|
+
param :deb_id, String, :desc => N_("Id of a deb package to find repositories that contain the deb")
|
53
56
|
param :erratum_id, String, :desc => N_("Id of an erratum to find repositories that contain the erratum")
|
54
|
-
param :rpm_id, String, :desc => N_("Id of a package to find repositories that contain the rpm")
|
57
|
+
param :rpm_id, String, :desc => N_("Id of a rpm package to find repositories that contain the rpm")
|
55
58
|
param :ostree_branch_id, String, :desc => N_("Id of an ostree branch to find repositories that contain that branch")
|
56
59
|
param :library, :bool, :desc => N_("show repositories in Library and the default content view")
|
57
60
|
param :content_type, RepositoryTypeManager.repository_types.keys, :desc => N_("limit to only repositories of this type")
|
@@ -61,7 +64,7 @@ module Katello
|
|
61
64
|
param_group :search, Api::V2::ApiController
|
62
65
|
def index
|
63
66
|
options = {:includes => [:gpg_key, :product, :environment]}
|
64
|
-
respond(:collection => scoped_search(index_relation.
|
67
|
+
respond(:collection => scoped_search(index_relation.distinct, :name, :asc, options))
|
65
68
|
end
|
66
69
|
|
67
70
|
def index_relation
|
@@ -70,6 +73,10 @@ module Katello
|
|
70
73
|
query = query.where(:content_type => params[:content_type]) if params[:content_type]
|
71
74
|
query = query.where(:name => params[:name]) if params[:name]
|
72
75
|
|
76
|
+
if params[:deb_id]
|
77
|
+
query = query.joins(:debs).where("#{Deb.table_name}.id" => Deb.with_identifiers(params[:deb_id]))
|
78
|
+
end
|
79
|
+
|
73
80
|
if params[:erratum_id]
|
74
81
|
query = query.joins(:errata).where("#{Erratum.table_name}.id" => Erratum.with_identifiers(params[:erratum_id]))
|
75
82
|
end
|
@@ -131,7 +138,7 @@ module Katello
|
|
131
138
|
|
132
139
|
api :POST, "/repositories", N_("Create a custom repository")
|
133
140
|
param_group :repo
|
134
|
-
def create
|
141
|
+
def create # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity
|
135
142
|
repo_params = repository_params
|
136
143
|
unless RepositoryTypeManager.creatable_by_user?(repo_params[:content_type])
|
137
144
|
msg = _("Invalid params provided - content_type must be one of %s") % RepositoryTypeManager.creatable_repository_types.keys.join(",")
|
@@ -147,9 +154,10 @@ module Katello
|
|
147
154
|
repo_params[:url] = nil if repo_params[:url].blank?
|
148
155
|
repo_params[:unprotected] = repo_params.key?(:unprotected) ? repo_params[:unprotected] : true
|
149
156
|
repo_params[:gpg_key] = gpg_key
|
150
|
-
repository = @product.add_repo(Hash[repo_params.slice(:label, :name, :url, :content_type, :arch, :unprotected, :gpg_key, :checksum_type, :download_policy).map { |k, v| [k.to_sym, v] }])
|
157
|
+
repository = @product.add_repo(Hash[repo_params.slice(:label, :name, :url, :content_type, :arch, :unprotected, :gpg_key, :checksum_type, :download_policy).to_h.map { |k, v| [k.to_sym, v] }])
|
151
158
|
repository.docker_upstream_name = repo_params[:docker_upstream_name] if repo_params[:docker_upstream_name]
|
152
159
|
repository.mirror_on_sync = ::Foreman::Cast.to_bool(repo_params[:mirror_on_sync]) if repo_params.key?(:mirror_on_sync)
|
160
|
+
repository.ignore_global_proxy = ::Foreman::Cast.to_bool(repo_params[:ignore_global_proxy]) if repo_params.key?(:ignore_global_proxy)
|
153
161
|
repository.verify_ssl_on_sync = ::Foreman::Cast.to_bool(repo_params[:verify_ssl_on_sync]) if repo_params.key?(:verify_ssl_on_sync)
|
154
162
|
repository.upstream_username = repo_params[:upstream_username] if repo_params.key?(:upstream_username)
|
155
163
|
repository.upstream_password = repo_params[:upstream_password] if repo_params.key?(:upstream_password)
|
@@ -157,6 +165,11 @@ module Katello
|
|
157
165
|
repository.ostree_upstream_sync_policy = repo_params[:ostree_upstream_sync_policy]
|
158
166
|
repository.ostree_upstream_sync_depth = repo_params[:ostree_upstream_sync_depth]
|
159
167
|
end
|
168
|
+
if repository.deb?
|
169
|
+
repository.deb_releases = repo_params[:deb_releases] if repo_params[:deb_releases]
|
170
|
+
repository.deb_components = repo_params[:deb_components] if repo_params[:deb_components]
|
171
|
+
repository.deb_architectures = repo_params[:deb_architectures] if repo_params[:deb_architectures]
|
172
|
+
end
|
160
173
|
sync_task(::Actions::Katello::Repository::Create, repository, false, true)
|
161
174
|
repository = Repository.find(repository.id)
|
162
175
|
respond_for_show(:resource => repository)
|
@@ -197,7 +210,7 @@ module Katello
|
|
197
210
|
:source_url => params[:source_url]
|
198
211
|
}
|
199
212
|
|
200
|
-
if params[:source_url].present? && params[:source_url] !~ /\A#{URI.
|
213
|
+
if params[:source_url].present? && params[:source_url] !~ /\A#{URI::DEFAULT_PARSER.make_regexp}\z/
|
201
214
|
fail HttpErrors::BadRequest, _("source URL is malformed")
|
202
215
|
end
|
203
216
|
|
@@ -355,7 +368,9 @@ module Katello
|
|
355
368
|
fail HttpErrors::BadRequest, _('No upload param specified. Either uploads or upload_ids (deprecated) is required.')
|
356
369
|
end
|
357
370
|
|
358
|
-
uploads = params[
|
371
|
+
uploads = (params[:uploads] || []).map do |upload|
|
372
|
+
upload.permit(:id, :size, :checksum, :name).to_h
|
373
|
+
end
|
359
374
|
|
360
375
|
if params.key?(:upload_ids)
|
361
376
|
::Foreman::Deprecation.api_deprecation_warning("The parameter upload_ids will be removed in Katello 3.3. Please update to use the uploads parameter.")
|
@@ -418,13 +433,14 @@ module Katello
|
|
418
433
|
|
419
434
|
def repository_params
|
420
435
|
keys = [:download_policy, :mirror_on_sync, :arch, :verify_ssl_on_sync, :upstream_password, :upstream_username,
|
421
|
-
:ostree_upstream_sync_depth, :ostree_upstream_sync_policy
|
436
|
+
:ostree_upstream_sync_depth, :ostree_upstream_sync_policy, :ignore_global_proxy,
|
437
|
+
:deb_releases, :deb_components, :deb_architectures
|
422
438
|
]
|
423
439
|
keys += [:label, :content_type] if params[:action] == "create"
|
424
440
|
if params[:action] == 'create' || @repository.custom?
|
425
441
|
keys += [:url, :gpg_key_id, :unprotected, :name, :checksum_type, :docker_upstream_name]
|
426
442
|
end
|
427
|
-
params.require(:repository).permit(*keys)
|
443
|
+
params.require(:repository).permit(*keys).to_h
|
428
444
|
end
|
429
445
|
|
430
446
|
def error_on_rh_product
|
@@ -14,19 +14,11 @@ module Katello
|
|
14
14
|
api :GET, "/products/:product_id/repository_sets", N_("List repository sets for a product.")
|
15
15
|
param :product_id, :number, :required => true, :desc => N_("ID of a product to list repository sets from")
|
16
16
|
param :name, String, :required => false, :desc => N_("Repository set name to search on")
|
17
|
+
param :enabled, :bool, :required => false, :desc => N_("If true, only return repository sets that have been enabled. Defaults to false")
|
17
18
|
param_group :search, Api::V2::ApiController
|
18
19
|
def index
|
19
|
-
collection
|
20
|
-
|
21
|
-
collection[:results] = @organization.enabled_product_content
|
22
|
-
else
|
23
|
-
collection[:results] = @product.displayable_product_contents
|
24
|
-
end
|
25
|
-
# filter on name if it is provided
|
26
|
-
collection[:results] = collection[:results].select { |pc| pc.content.name == params[:name] } if params[:name]
|
27
|
-
collection[:subtotal] = collection[:results].size
|
28
|
-
collection[:total] = collection[:subtotal]
|
29
|
-
respond_for_index :collection => collection
|
20
|
+
respond(:collection => scoped_search(index_relation, nil, nil, :custom_sort => default_sort,
|
21
|
+
:resource_class => Katello::ProductContent))
|
30
22
|
end
|
31
23
|
|
32
24
|
api :GET, "/products/:product_id/repository_sets/:id", N_("Get info about a repository set")
|
@@ -40,7 +32,7 @@ module Katello
|
|
40
32
|
param :id, :number, :required => true, :desc => N_("ID of the repository set")
|
41
33
|
param :product_id, :number, :required => true, :desc => N_("ID of a product to list repository sets from")
|
42
34
|
def available_repositories
|
43
|
-
scan_cdn = sync_task(::Actions::Katello::RepositorySet::ScanCdn, @product, @product_content.content.
|
35
|
+
scan_cdn = sync_task(::Actions::Katello::RepositorySet::ScanCdn, @product, @product_content.content.cp_content_id)
|
44
36
|
repos = scan_cdn.output[:results]
|
45
37
|
|
46
38
|
repos = repos.select do |repo|
|
@@ -83,6 +75,22 @@ module Katello
|
|
83
75
|
|
84
76
|
private
|
85
77
|
|
78
|
+
def default_sort
|
79
|
+
lambda { |relation| relation.joins(:content).order("name asc") }
|
80
|
+
end
|
81
|
+
|
82
|
+
def index_relation
|
83
|
+
if @product.nil?
|
84
|
+
relation = @organization.enabled_product_content
|
85
|
+
else
|
86
|
+
relation = @product.displayable_product_contents
|
87
|
+
end
|
88
|
+
|
89
|
+
relation = relation.enabled(@organization) if ::Foreman::Cast.to_bool(params[:enabled])
|
90
|
+
relation = relation.joins(:content).where(:name => params[:name]) if params[:name].present?
|
91
|
+
relation
|
92
|
+
end
|
93
|
+
|
86
94
|
def find_product_content
|
87
95
|
@product_content = @product.product_content_by_id(params[:id])
|
88
96
|
fail HttpErrors::NotFound, _("Couldn't find repository set with id '%s'.") % params[:id] if @product_content.nil?
|
@@ -106,7 +114,7 @@ module Katello
|
|
106
114
|
end
|
107
115
|
|
108
116
|
def substitutions
|
109
|
-
params.
|
117
|
+
params.permit(:basearch, :releasever).to_h
|
110
118
|
end
|
111
119
|
end
|
112
120
|
end
|
@@ -30,7 +30,7 @@ module Katello
|
|
30
30
|
param :no_overlap, :bool, :desc => N_("Return subscriptions which do not overlap with a currently-attached subscription")
|
31
31
|
def index
|
32
32
|
collection = scoped_search(
|
33
|
-
index_relation.
|
33
|
+
index_relation.distinct, :cp_id, :asc, resource_class: Pool, includes: [:subscription])
|
34
34
|
if params[:activation_key_id]
|
35
35
|
key_pools = @activation_key.get_key_pools
|
36
36
|
collection[:results] = collection[:results].map do |pool|
|
@@ -82,14 +82,6 @@ module Katello
|
|
82
82
|
respond_for_index(:collection => subscriptions, :template => 'index')
|
83
83
|
end
|
84
84
|
|
85
|
-
api :DELETE, "/activation_keys/:activation_key_id/subscriptions/:id", N_("Unattach a subscription"), :deprecated => true
|
86
|
-
param :id, String, :desc => N_("Subscription ID"), :required => false
|
87
|
-
param :activation_key_id, String, :desc => N_("activation key ID")
|
88
|
-
def destroy
|
89
|
-
@activation_key.unsubscribe(params[:id])
|
90
|
-
respond_for_index(:collection => scoped_search(import_subscriptions.uniq, :cp_id, :asc, :resource_class => Pool), :template => "index")
|
91
|
-
end
|
92
|
-
|
93
85
|
api :POST, "/organizations/:organization_id/subscriptions/upload", N_("Upload a subscription manifest")
|
94
86
|
param :organization_id, :number, :desc => N_("Organization id"), :required => true
|
95
87
|
param :content, File, :desc => N_("Subscription manifest file"), :required => true
|
@@ -171,16 +163,6 @@ module Katello
|
|
171
163
|
%w(id desc)
|
172
164
|
end
|
173
165
|
|
174
|
-
def import_subscriptions
|
175
|
-
subscriptions = if @activation_key
|
176
|
-
index_activation_key
|
177
|
-
else
|
178
|
-
index_organization
|
179
|
-
end
|
180
|
-
cp_ids = subscriptions.collect { |x| x["id"] }
|
181
|
-
index_relation.where("cp_id not in (?)", cp_ids)
|
182
|
-
end
|
183
|
-
|
184
166
|
def index_activation_key
|
185
167
|
@activation_key.subscriptions
|
186
168
|
end
|
@@ -23,7 +23,7 @@ module Katello
|
|
23
23
|
param :interval, SyncPlan::TYPES, :desc => N_("filter by interval")
|
24
24
|
param_group :search, Api::V2::ApiController
|
25
25
|
def index
|
26
|
-
respond_for_index(:collection => scoped_search(index_relation.
|
26
|
+
respond_for_index(:collection => scoped_search(index_relation.distinct, :name, :asc))
|
27
27
|
end
|
28
28
|
|
29
29
|
def index_relation
|
@@ -86,24 +86,6 @@ module Katello
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
def require_user
|
90
|
-
if current_user
|
91
|
-
#don't redirect if the user is trying to set an org
|
92
|
-
if params[:action] != 'set_org' && params[:controller] != 'user_sessions'
|
93
|
-
#redirect to originally requested page
|
94
|
-
unless session[:original_uri].nil?
|
95
|
-
redirect_to session[:original_uri]
|
96
|
-
session[:original_uri] = nil
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
return true
|
101
|
-
else
|
102
|
-
#save original uri and redirect to login page
|
103
|
-
session[:original_uri] = request.fullpath
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
89
|
# render bad params to user
|
108
90
|
# @overload render_bad_parameters()
|
109
91
|
# render bad_parameters with `default_message` and status `400`
|
@@ -4,9 +4,19 @@ module Katello
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
include ForemanTasks::Triggers
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
module Overrides
|
8
|
+
def action_permission
|
9
|
+
case params[:action]
|
10
|
+
when 'host_collections'
|
11
|
+
'edit'
|
12
|
+
else
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
9
17
|
|
18
|
+
included do
|
19
|
+
prepend Overrides
|
10
20
|
def destroy
|
11
21
|
sync_task(::Actions::Katello::Host::Destroy, @host)
|
12
22
|
process_response(:object => @host)
|
@@ -21,17 +31,6 @@ module Katello
|
|
21
31
|
render(:locals => { :resource => @host }, :template => 'katello/api/v2/hosts/show', :status => 200)
|
22
32
|
end
|
23
33
|
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def action_permission_with_katello
|
28
|
-
case params[:action]
|
29
|
-
when 'host_collections'
|
30
|
-
'edit'
|
31
|
-
else
|
32
|
-
action_permission_without_katello
|
33
|
-
end
|
34
|
-
end
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|