katello 3.3.2 → 3.4.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/stylesheets/katello/containers/container.scss +1 -2
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -1
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +28 -23
- data/app/controllers/katello/api/v2/api_controller.rb +2 -1
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +2 -0
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +12 -2
- data/app/controllers/katello/api/v2/content_views_controller.rb +4 -1
- data/app/controllers/katello/api/v2/docker_tags_controller.rb +14 -0
- data/app/controllers/katello/api/v2/environments_controller.rb +2 -1
- data/app/controllers/katello/api/v2/host_collections_controller.rb +2 -1
- data/app/controllers/katello/api/v2/host_packages_controller.rb +1 -0
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +27 -23
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +19 -0
- data/app/controllers/katello/api/v2/organizations_controller.rb +8 -4
- data/app/controllers/katello/api/v2/package_groups_controller.rb +51 -0
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +15 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +57 -32
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -0
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -0
- data/app/controllers/katello/concerns/api/v2/content_overrides_controller.rb +39 -0
- data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -0
- data/app/controllers/katello/providers_controller.rb +3 -1
- data/app/controllers/katello/sync_management_controller.rb +2 -0
- data/app/helpers/katello/errata_mailer_helper.rb +1 -1
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +2 -7
- data/app/lib/actions/candlepin/candlepin_listening_service.rb +2 -1
- data/app/lib/actions/candlepin/environment/set_content.rb +1 -1
- data/app/lib/actions/candlepin/owner/upstream_regenerate_certificates.rb +17 -0
- data/app/lib/actions/candlepin/product/content_add.rb +2 -1
- data/app/lib/actions/candlepin/product/content_create.rb +3 -1
- data/app/lib/actions/candlepin/product/content_destroy.rb +2 -1
- data/app/lib/actions/candlepin/product/content_remove.rb +2 -1
- data/app/lib/actions/candlepin/product/content_update.rb +3 -1
- data/app/lib/actions/candlepin/product/create.rb +12 -1
- data/app/lib/actions/candlepin/product/destroy.rb +2 -1
- data/app/lib/actions/candlepin/product/update.rb +4 -0
- data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -1
- data/app/lib/actions/katello/content_view/promote.rb +3 -2
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +3 -2
- data/app/lib/actions/katello/content_view/publish.rb +3 -2
- data/app/lib/actions/katello/content_view_version/destroy.rb +7 -1
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +1 -1
- data/app/lib/actions/katello/content_view_version/republish_repositories.rb +40 -0
- data/app/lib/actions/katello/host/destroy.rb +1 -0
- data/app/lib/actions/katello/host/erratum/install.rb +13 -4
- data/app/lib/actions/katello/host/hypervisors_update.rb +3 -2
- data/app/lib/actions/katello/host/register.rb +10 -4
- data/app/lib/actions/katello/host/remove_subscriptions.rb +14 -12
- data/app/lib/actions/katello/host/update.rb +9 -7
- data/app/lib/actions/katello/host/update_content_overrides.rb +43 -0
- data/app/lib/actions/katello/organization/destroy.rb +1 -1
- data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -0
- data/app/lib/actions/katello/product/content_create.rb +3 -0
- data/app/lib/actions/katello/product/content_destroy.rb +2 -0
- data/app/lib/actions/katello/product/create.rb +1 -2
- data/app/lib/actions/katello/product/destroy.rb +3 -2
- data/app/lib/actions/katello/repository/check_matching_content.rb +49 -0
- data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -2
- data/app/lib/actions/katello/repository/clone_yum_content.rb +17 -1
- data/app/lib/actions/katello/repository/create.rb +4 -1
- data/app/lib/actions/katello/repository/destroy_package_group.rb +26 -0
- data/app/lib/actions/katello/repository/discover.rb +8 -3
- data/app/lib/actions/katello/repository/errata_mail.rb +1 -1
- data/app/lib/actions/katello/repository/finish_upload.rb +6 -2
- data/app/lib/actions/katello/repository/import_upload.rb +30 -7
- data/app/lib/actions/katello/repository/index_content.rb +2 -1
- data/app/lib/actions/katello/repository/metadata_generate.rb +19 -5
- data/app/lib/actions/katello/repository/remove_content.rb +7 -4
- data/app/lib/actions/katello/repository/sync.rb +28 -14
- data/app/lib/actions/katello/repository/update.rb +1 -0
- data/app/lib/actions/katello/repository/upload_package_group.rb +34 -0
- data/app/lib/actions/katello/repository_set/scan_cdn.rb +2 -4
- data/app/lib/actions/middleware/skip_if_matching_content.rb +24 -0
- data/app/lib/actions/pulp/abstract.rb +2 -2
- data/app/lib/actions/pulp/consumer/generate_applicability.rb +5 -1
- data/app/lib/actions/pulp/consumer/sync_capsule.rb +10 -0
- data/app/lib/actions/pulp/content_view_puppet_environment/index_content.rb +5 -3
- data/app/lib/actions/pulp/repository/copy_errata.rb +4 -0
- data/app/lib/actions/pulp/repository/create.rb +6 -1
- data/app/lib/actions/pulp/repository/distributor_publish.rb +3 -0
- data/app/lib/actions/pulp/repository/download.rb +16 -0
- data/app/lib/actions/pulp/repository/import_upload.rb +2 -1
- data/app/lib/actions/pulp/repository/presenters/{file_presenter.rb → file_unit_presenter.rb} +0 -0
- data/app/lib/actions/pulp/repository/presenters/ostree_presenter.rb +16 -3
- data/app/lib/actions/pulp/repository/remove_errata.rb +4 -0
- data/app/lib/actions/pulp/repository/sync.rb +3 -3
- data/app/lib/katello/errors.rb +2 -0
- data/app/lib/katello/repo_discovery.rb +33 -8
- data/app/lib/katello/resources/candlepin.rb +87 -68
- data/app/lib/katello/resources/cdn.rb +26 -13
- data/app/lib/katello/util/cdn_var_substitutor.rb +39 -124
- data/app/lib/katello/util/path_with_substitutions.rb +58 -0
- data/app/models/katello/activation_key.rb +11 -15
- data/app/models/katello/candlepin/content.rb +6 -14
- data/app/models/katello/candlepin/product_content.rb +11 -3
- data/app/models/katello/concerns/content_facet_host_extensions.rb +19 -10
- data/app/models/katello/concerns/environment_extensions.rb +6 -3
- data/app/models/katello/concerns/host_managed_extensions.rb +21 -7
- data/app/models/katello/concerns/hostgroup_extensions.rb +3 -3
- data/app/models/katello/concerns/location_extensions.rb +32 -24
- data/app/models/katello/concerns/pulp_database_unit.rb +10 -2
- data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -6
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +27 -10
- data/app/models/katello/content_override.rb +63 -0
- data/app/models/katello/content_view.rb +3 -8
- data/app/models/katello/content_view_history.rb +1 -1
- data/app/models/katello/content_view_puppet_environment.rb +10 -2
- data/app/models/katello/content_view_puppet_module.rb +1 -1
- data/app/models/katello/content_view_version.rb +2 -2
- data/app/models/katello/docker_manifest.rb +1 -1
- data/app/models/katello/docker_tag.rb +3 -3
- data/app/models/katello/erratum.rb +4 -4
- data/app/models/katello/file_unit.rb +1 -1
- data/app/models/katello/glue/candlepin/activation_key.rb +10 -8
- data/app/models/katello/glue/candlepin/content.rb +1 -21
- data/app/models/katello/glue/candlepin/owner.rb +3 -1
- data/app/models/katello/glue/candlepin/pool.rb +3 -1
- data/app/models/katello/glue/candlepin/product.rb +2 -7
- data/app/models/katello/glue/provider.rb +19 -1
- data/app/models/katello/glue/pulp/repo.rb +33 -19
- data/app/models/katello/glue/pulp/repos.rb +0 -8
- data/app/models/katello/gpg_key.rb +1 -1
- data/app/models/katello/host/subscription_facet.rb +47 -4
- data/app/models/katello/host_collection.rb +2 -2
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/ostree_branch.rb +1 -1
- data/app/models/katello/package_group.rb +1 -1
- data/app/models/katello/pool.rb +14 -15
- data/app/models/katello/product.rb +2 -2
- data/app/models/katello/provider.rb +0 -28
- data/app/models/katello/repository.rb +91 -29
- data/app/models/katello/subscription.rb +12 -0
- data/app/models/katello/subscription_status.rb +1 -1
- data/app/models/katello/sync_plan.rb +9 -2
- data/app/models/katello/trace_status.rb +53 -0
- data/app/models/setting/content.rb +55 -25
- data/app/overrides/add_activation_keys_input.rb +0 -5
- data/app/presenters/katello/product_content_presenter.rb +11 -3
- data/app/services/katello/candlepin/consumer.rb +24 -16
- data/app/services/katello/pulp/erratum.rb +1 -0
- data/app/services/katello/pulp/file_unit.rb +1 -1
- data/app/views/dashboard/_errata_widget.html.erb +2 -2
- data/app/views/foreman/unattended/kickstart-katello.erb +1 -1
- data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +14 -1
- data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +15 -1
- data/app/views/katello/api/v2/repositories/base.json.rabl +1 -0
- data/app/views/katello/api/v2/repositories/show.json.rabl +5 -0
- data/app/views/katello/api/v2/subscription_facet/show.json.rabl +1 -1
- data/app/views/katello/api/v2/subscriptions/base.json.rabl +1 -0
- data/app/views/katello/providers/redhat/_repo_sets.html.erb +1 -1
- data/app/views/katello/providers/redhat/_repos.html.erb +1 -1
- data/app/views/katello/providers/redhat/show.html.erb +1 -1
- data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -1
- data/app/views/overrides/hosts/_subscription_link.html.erb +1 -1
- data/config/initializers/pagelets.rb +6 -0
- data/config/routes/api/v2.rb +8 -0
- data/config/routes/overrides.rb +1 -0
- data/db/migrate/20161209162947_add_virt_who_to_katello_pools.rb +9 -0
- data/db/migrate/20170114051758_add_depth_to_repositories.rb +6 -0
- data/db/migrate/20170122204325_add_hypervisor_to_subscription_facets.rb +6 -0
- data/db/migrate/20170125152421_move_default_location_to_settings.rb +25 -0
- data/db/migrate/20170208215148_add_docker_repo_name.rb +14 -0
- data/db/migrate/20170222131211_change_pool_columns_to_dates.rb +19 -0
- data/db/seeds.d/101-locations.rb +9 -3
- data/db/seeds.d/103-provisioning_templates.rb +2 -2
- data/db/seeds.d/106-mail_notifications.rb +6 -0
- data/db/seeds.d/108-subcription-bookmarks.rb +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.module.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-host-collections.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-host-collections.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +64 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +2 -52
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-repository-sets.html +85 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +3 -39
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +15 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +3 -3
- 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/common/views/subscription-add-or-remove.html +50 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-environment.controller.js → content-hosts-bulk-environment-modal.controller.js} +24 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +124 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +86 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-packages.controller.js → content-hosts-bulk-packages-modal.controller.js} +24 -17
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-subscriptions.controller.js → content-hosts-bulk-subscriptions-modal.controller.js} +31 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-destroy-modal.html +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/{bulk-actions-environment.html → content-hosts-bulk-environment-modal.html} +27 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +107 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-host-collections-modal.html +91 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +162 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +121 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/errata-details.html +0 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +108 -16
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +2 -279
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +251 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +19 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +5 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +5 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +35 -34
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +8 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +12 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +28 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html +42 -62
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +17 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +22 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +17 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-repository-sets.controller.js +64 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +12 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +21 -49
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +136 -148
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-events.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-host-collections-table.html +59 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-host-collections.html +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +198 -256
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +38 -54
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html +93 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +6 -54
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +47 -82
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-tasks.html +3 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +107 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +26 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +115 -33
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/content-view-deletion.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-confirm.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-content-hosts.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-available-content-views.html +4 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +4 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories-list.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +10 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +9 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/docker-tag-filter.controller.js +137 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter-list.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-helper.service.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter.factory.js +28 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filters.controller.js +11 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +22 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +66 -80
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-list-filter.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-filter.html +28 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-tag-filter-details.html +65 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +10 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter.html +48 -51
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +5 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +17 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +49 -42
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +144 -171
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter.html +7 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter-details.html +4 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter.html +9 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/partials/filter-repositories-count.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +17 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-versions.html +17 -21
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +20 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +6 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +5 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +2 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +5 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +21 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +29 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +8 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +34 -16
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +2 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +2 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +2 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-puppet-modules.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +13 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +7 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment-content.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +2 -8
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +15 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +5 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +7 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +5 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html +5 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +4 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html +4 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +32 -51
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +73 -29
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/new-environment.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +8 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/new-environment.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +17 -21
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-content-hosts.controller.js → erratum-content-hosts.controller.js} +13 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-details-repositories.controller.js → erratum-repositories.controller.js} +7 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-details.controller.js → erratum.controller.js} +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +78 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +58 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/{errata-details-repositories.html → erratum-repositories.html} +22 -35
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum.html +37 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.controller.js +8 -30
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.module.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +90 -83
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/incremental-update.service.js +149 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +7 -17
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-select-content-hosts.html +4 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata.html +9 -26
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-task-details.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks-list.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks.html +6 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +77 -34
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +44 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-repositories.controller.js +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file.controller.js +37 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-content-views.html +43 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-info.html +15 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-repositories.html +54 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file.html +37 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +28 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +35 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.module.js +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.routes.js +71 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/views/files.html +39 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-products.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/new-gpg-key.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +3 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-add-hosts.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-hosts.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +3 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-copy.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/new-host-collection.html +24 -23
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-subscription.factory.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +6 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +10 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +24 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/views/organization-selector.html +3 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/{ostree-branches-details-repositories.controller.js → ostree-branch-repositories.controller.js} +7 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/{ostree-branches-details.controller.js → ostree-branch.controller.js} +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/{ostree-branches-details-repositories.html → ostree-branch-repositories.html} +25 -34
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch.html +30 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +24 -27
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches.html +28 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-files.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-repositories.html +17 -27
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +12 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/{product-bulk-action.factory.js → bulk/product-bulk-action.factory.js} +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +54 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-sync-plan-modal.controller.js +80 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-advanced-sync-modal.html +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-sync-plan-modal.html +87 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-advanced-sync.controller.js +33 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +17 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +29 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +5 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +54 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync.html +29 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +26 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +46 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-files.html +64 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +5 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +6 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +52 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/ostree-upstream-sync-policy.service.js +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +12 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/{discovery-form.controller.js → discovery-create.controller.js} +109 -35
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-repositories.service.js +94 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +84 -30
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-base.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create-status.html +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +154 -123
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +94 -67
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new-form.html +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +93 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +3 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +43 -44
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details-content-views.controller.js → puppet-module-content-views.controller.js} +6 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details-repositories.controller.js → puppet-module-repositories.controller.js} +6 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details.controller.js → puppet-module.controller.js} +4 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/{puppet-modules-details-content-views.html → puppet-module-content-views.html} +12 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module-info.html +32 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/{puppet-modules-details-repositories.html → puppet-module-repositories.html} +11 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module.html +37 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.controller.js +3 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.routes.js +31 -29
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +34 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/content-override-helper.service.js +47 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-sets-enabled.filter.js +34 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-sets.module.js +8 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-content-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-info.html +13 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-products.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-import.controller.js +8 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-delete-modal.html +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +11 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscription-start-date.directive.js +21 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.controller.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +8 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-add-products.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-products.controller.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-nutupane.factory.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +53 -66
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +5 -0
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/host_subscriptions.scss +14 -0
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/tasks.scss +4 -0
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -0
- data/lib/katello/engine.rb +3 -22
- data/lib/katello/permissions/content_view_permissions.rb +2 -2
- data/lib/katello/permissions/host_permissions.rb +1 -0
- data/lib/katello/permissions/product_permissions.rb +7 -4
- data/lib/katello/plugin.rb +18 -2
- data/lib/katello/tasks/regenerate_ueber_certs.rake +15 -0
- data/lib/katello/tasks/rubocop.rake +3 -2
- data/lib/katello/tasks/test.rake +17 -5
- data/lib/katello/tasks/unify_hosts.rake +1 -1
- data/lib/katello/tasks/update_subscription_facet_backend_data.rake +61 -0
- data/lib/katello/tasks/upgrades/3.3/hypervisors.rake +7 -0
- data/lib/katello/tasks/upgrades/3.3/import_subscriptions.rake +12 -0
- data/lib/katello/tasks/virt_who_report.rake +150 -0
- data/lib/katello/version.rb +1 -1
- metadata +116 -115
- data/app/lib/actions/candlepin/owner/refresh_subscriptions.rb +0 -15
- data/app/lib/actions/candlepin/product/delete_unused.rb +0 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-product-details.controller.js +0 -88
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-products.controller.js +0 -46
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-products.html +0 -49
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-errata.controller.js +0 -127
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-host-collections.controller.js +0 -79
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action.controller.js +0 -81
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-errata.html +0 -113
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-host-collections.html +0 -82
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-packages.html +0 -153
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-subscriptions.html +0 -86
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions.html +0 -92
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-products.controller.js +0 -99
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-products.html +0 -56
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections-table.html +0 -90
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections.html +0 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-collapsed.html +0 -25
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-full.html +0 -61
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-content-hosts.html +0 -91
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-info.html +0 -62
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details.html +0 -52
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-table-collapsed.html +0 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-table-full.html +0 -46
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-info.html +0 -23
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details.html +0 -43
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-collapsed.html +0 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-full.html +0 -21
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products-bulk-action.controller.js +0 -93
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details-info.html +0 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details.html +0 -52
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules-table-collapsed.html +0 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules-table-full.html +0 -29
- data/lib/katello/tasks/gettext.rake +0 -5
- data/lib/katello/tasks/jshint.rake +0 -50
- data/lib/katello/tasks/jsroutes.rake +0 -5
- data/lib/katello/tasks/pretty_routes.rake +0 -30
- data/lib/katello/tasks/simplecov.rake +0 -7
- data/vendor/assets/javascripts/katello/jquery-1.7.2.js +0 -9404
@@ -17,7 +17,7 @@ module Katello
|
|
17
17
|
class CdnResource
|
18
18
|
CDN_DOCKER_CONTAINER_LISTING = "CONTAINER_REGISTRY_LISTING".freeze
|
19
19
|
|
20
|
-
attr_reader :url, :product
|
20
|
+
attr_reader :url, :product, :options
|
21
21
|
attr_accessor :proxy_host, :proxy_port, :proxy_user, :proxy_password
|
22
22
|
|
23
23
|
def substitutor(logger = nil)
|
@@ -37,25 +37,29 @@ module Katello
|
|
37
37
|
|
38
38
|
@url = url
|
39
39
|
@uri = URI.parse(url)
|
40
|
-
@
|
41
|
-
|
40
|
+
@options = options
|
41
|
+
end
|
42
|
+
|
43
|
+
def http_downloader
|
44
|
+
net = net_http_class.new(@uri.host, @uri.port)
|
45
|
+
net.use_ssl = @uri.is_a?(URI::HTTPS)
|
42
46
|
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
net.cert = @options[:ssl_client_cert]
|
48
|
+
net.key = @options[:ssl_client_key]
|
49
|
+
net.ca_file = @options[:ssl_ca_file]
|
46
50
|
|
47
51
|
# NOTE: This was added because some proxies dont support SSLv23 and do not handle TLS 1.2
|
48
52
|
# Valid values in ruby 1.9.3 are 'SSLv23' or 'TLSV1'
|
49
53
|
# Run the following command in rails console to figure out other
|
50
54
|
# valid constants in other ruby versions
|
51
55
|
# "OpenSSL::SSL::SSLContext::METHODS"
|
52
|
-
|
56
|
+
net.ssl_version = SETTINGS[:katello][:cdn_ssl_version] if SETTINGS[:katello].key?(:cdn_ssl_version)
|
53
57
|
|
54
|
-
if (options[:verify_ssl] == false) || (options[:verify_ssl] == OpenSSL::SSL::VERIFY_NONE)
|
55
|
-
|
56
|
-
elsif options[:verify_ssl].is_a? Integer
|
57
|
-
|
58
|
-
|
58
|
+
if (@options[:verify_ssl] == false) || (@options[:verify_ssl] == OpenSSL::SSL::VERIFY_NONE)
|
59
|
+
net.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
60
|
+
elsif @options[:verify_ssl].is_a? Integer
|
61
|
+
net.verify_mode = @options[:verify_ssl]
|
62
|
+
net.verify_callback = lambda do |preverify_ok, ssl_context|
|
59
63
|
if !preverify_ok || ssl_context.error != 0
|
60
64
|
err_msg = "SSL Verification failed -- Preverify: #{preverify_ok}, Error: #{ssl_context.error_string} (#{ssl_context.error})"
|
61
65
|
fail RestClient::SSLCertificateNotVerified, err_msg
|
@@ -63,15 +67,17 @@ module Katello
|
|
63
67
|
true
|
64
68
|
end
|
65
69
|
end
|
70
|
+
net
|
66
71
|
end
|
67
72
|
|
68
73
|
def get(path, _headers = {})
|
74
|
+
net = http_downloader
|
69
75
|
path = File.join(@uri.request_uri, path)
|
70
76
|
used_url = File.join("#{@uri.scheme}://#{@uri.host}:#{@uri.port}", path)
|
71
77
|
Rails.logger.debug "CDN: Requesting path #{used_url}"
|
72
78
|
req = Net::HTTP::Get.new(path)
|
73
79
|
begin
|
74
|
-
|
80
|
+
net.start do |http|
|
75
81
|
res = http.request(req, nil) { |http_response| http_response.read_body }
|
76
82
|
code = res.code.to_i
|
77
83
|
if code == 200
|
@@ -100,6 +106,13 @@ module Katello
|
|
100
106
|
end
|
101
107
|
end
|
102
108
|
|
109
|
+
def fetch_substitutions(base_path)
|
110
|
+
get(File.join(base_path, "listing")).split("\n")
|
111
|
+
rescue Errors::NotFound => e # some of listing file points to not existing content
|
112
|
+
log :error, e.message
|
113
|
+
[] # return no substitution for unreachable listings
|
114
|
+
end
|
115
|
+
|
103
116
|
def self.ca_file
|
104
117
|
"#{Katello::Engine.root}/ca/redhat-uep.pem"
|
105
118
|
end
|
@@ -8,104 +8,40 @@ module Katello
|
|
8
8
|
# /content/rhel/6.2/listing) and returns the body response)
|
9
9
|
def initialize(cdn_resource)
|
10
10
|
@resource = cdn_resource
|
11
|
-
@substitutions = Thread.current[:cdn_var_substitutor_cache] || {}
|
12
|
-
@good_listings = Set.new
|
13
|
-
@bad_listings = Set.new
|
14
|
-
end
|
15
|
-
|
16
|
-
# using substitutor from whithin the block makes sure that every
|
17
|
-
# request is made only once.
|
18
|
-
def self.with_cache(&_block)
|
19
|
-
Thread.current[:cdn_var_substitutor_cache] = {}
|
20
|
-
yield
|
21
|
-
ensure
|
22
|
-
Thread.current[:cdn_var_substitutor_cache] = nil
|
23
|
-
end
|
24
|
-
|
25
|
-
# precalcuclate all paths at once - let's you discover errors and stop
|
26
|
-
# before it causes more pain
|
27
|
-
def precalculate(paths_with_vars)
|
28
|
-
paths_with_vars.uniq.reduce({}) do |ret, path_with_vars|
|
29
|
-
ret[path_with_vars] = substitute_vars(path_with_vars)
|
30
|
-
ret
|
31
|
-
end
|
32
11
|
end
|
33
12
|
|
34
13
|
# takes path e.g. "/rhel/server/5/$releasever/$basearch/os"
|
35
|
-
# returns
|
14
|
+
# returns PathWithSubstitutions objects
|
36
15
|
#
|
37
16
|
# { {"releasever" => "6Server", "basearch" => "i386"} => "/rhel/server/5/6Server/i386/os",
|
38
17
|
# {"releasever" => "6Server", "basearch" => "x86_64"} => "/rhel/server/5/6Server/x84_64/os"}
|
39
18
|
#
|
40
19
|
# values are loaded from CDN
|
41
|
-
def substitute_vars(
|
42
|
-
|
43
|
-
prefix_with_vars, suffix_without_vars = Regexp.last_match[1], Regexp.last_match[2]
|
44
|
-
else
|
45
|
-
prefix_with_vars, suffix_without_vars = "", path_with_vars
|
46
|
-
end
|
47
|
-
|
48
|
-
prefixes_without_vars = substitute_vars_in_prefix(prefix_with_vars)
|
49
|
-
paths_without_vars = prefixes_without_vars.reduce({}) do |h, (substitutions, prefix_without_vars)|
|
50
|
-
h[substitutions] = prefix_without_vars + suffix_without_vars
|
51
|
-
h
|
52
|
-
end
|
53
|
-
return paths_without_vars
|
20
|
+
def substitute_vars(path)
|
21
|
+
find_substitutions([PathWithSubstitutions.new(path, {})])
|
54
22
|
end
|
55
23
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
# for the first path.
|
62
|
-
def substitute_vars_in_prefix(prefix_with_vars)
|
63
|
-
paths_with_vars = { {} => prefix_with_vars}
|
64
|
-
prefixes_without_vars = @substitutions[prefix_with_vars]
|
65
|
-
|
66
|
-
unless prefixes_without_vars
|
67
|
-
prefixes_without_vars = {}
|
68
|
-
until paths_with_vars.empty?
|
69
|
-
substitutions, path = paths_with_vars.shift
|
24
|
+
def validate_substitutions(content, substitutions)
|
25
|
+
path_with_subs = PathWithSubstitutions.new(content.contentUrl, substitutions)
|
26
|
+
real_path = path_with_subs.apply_substitutions
|
27
|
+
unused_substitutions = path_with_subs.unused_substitutions
|
28
|
+
needed_substitutions = PathWithSubstitutions.new(real_path, {}).substitutions_needed
|
70
29
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
rescue Errors::SecurityViolation
|
76
|
-
# Some paths may not be accessible
|
77
|
-
@resource.log :warn, "#{new_path} is not accessible, ignoring"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
else
|
81
|
-
prefixes_without_vars[substitutions] = path
|
82
|
-
end
|
83
|
-
end
|
84
|
-
@substitutions[prefix_with_vars] = prefixes_without_vars
|
30
|
+
if unused_substitutions.any?
|
31
|
+
fail Errors::CdnSubstitutionError, _("%{unused_substitutes} cannot be specified for %{content_name}"\
|
32
|
+
" as that information is not substitutable in %{content_url} ") %
|
33
|
+
{ unaccepted_substitutions: unused_substitutions, content_name: content.name, content_url: content.contentUrl }
|
85
34
|
end
|
86
|
-
return prefixes_without_vars
|
87
|
-
end
|
88
|
-
|
89
|
-
def substituable?(path)
|
90
|
-
path.include?("$")
|
91
|
-
end
|
92
35
|
|
93
|
-
|
94
|
-
validate_all_substitutions_accepted(content, substitutions)
|
95
|
-
content_url = content.contentUrl
|
96
|
-
real_path = gsub_vars(content_url, substitutions)
|
97
|
-
|
98
|
-
if substituable?(real_path)
|
36
|
+
if needed_substitutions.any?
|
99
37
|
fail Errors::CdnSubstitutionError, _("Missing arguments %{substitutions} for %{content_url}") %
|
100
|
-
{ substitutions:
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
{real_path: real_path}
|
108
|
-
end
|
38
|
+
{ substitutions: needed_substitutions.join(','), content_url: real_path }
|
39
|
+
end
|
40
|
+
|
41
|
+
unless any_valid_metadata_file?(real_path)
|
42
|
+
@resource.log :error, "No valid metadata files found for #{real_path}"
|
43
|
+
fail Errors::CdnSubstitutionError, _("The path %{real_path} does not seem to be a valid repository."\
|
44
|
+
" If you think this is an error, please try refreshing your manifest.") % {real_path: real_path}
|
109
45
|
end
|
110
46
|
end
|
111
47
|
|
@@ -115,21 +51,28 @@ module Katello
|
|
115
51
|
|
116
52
|
protected
|
117
53
|
|
118
|
-
def
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
54
|
+
def find_substitutions(paths_with_substitutions)
|
55
|
+
to_resolve = paths_with_substitutions.select { |path| path.substitutable? }
|
56
|
+
resolved = paths_with_substitutions - to_resolve
|
57
|
+
|
58
|
+
return resolved if to_resolve.empty?
|
123
59
|
|
124
|
-
|
125
|
-
|
126
|
-
|
60
|
+
futures = to_resolve.map do |path_with_substitution|
|
61
|
+
Concurrent.future do
|
62
|
+
path_with_substitution.resolve_substitutions(@resource)
|
63
|
+
end
|
127
64
|
end
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
65
|
+
|
66
|
+
futures.each do |future|
|
67
|
+
begin
|
68
|
+
resolved << future.value
|
69
|
+
rescue StandardError => e
|
70
|
+
Rails.logger.error("Error Recieved: #{e.to_s}")
|
71
|
+
Rails.logger.error("Error Recieved: #{e.backtrace.join("\n")}")
|
72
|
+
end
|
132
73
|
end
|
74
|
+
|
75
|
+
find_substitutions(resolved.compact.flatten)
|
133
76
|
end
|
134
77
|
|
135
78
|
def valid_path?(path, postfix)
|
@@ -139,34 +82,6 @@ module Katello
|
|
139
82
|
rescue Errors::NotFound
|
140
83
|
return false
|
141
84
|
end
|
142
|
-
|
143
|
-
def gsub_vars(content_url, substitutions)
|
144
|
-
substitutions.reduce(content_url) do |url, (key, value)|
|
145
|
-
url.gsub("$#{key}", value)
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
def for_each_substitute_of_next_var(substitutions, path)
|
150
|
-
if path =~ /^(.*?)\$([^\/]*)/
|
151
|
-
base_path, var = Regexp.last_match[1], Regexp.last_match[2]
|
152
|
-
get_substitutions_from(base_path).compact.each do |value|
|
153
|
-
new_substitutions = substitutions.merge(var => value)
|
154
|
-
new_path = path.sub("$#{var}", value)
|
155
|
-
|
156
|
-
yield new_substitutions, new_path
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
def get_substitutions_from(base_path)
|
162
|
-
ret = @resource.get(File.join(base_path, "listing")).split("\n")
|
163
|
-
@good_listings << base_path
|
164
|
-
ret
|
165
|
-
rescue Errors::NotFound => e # some of listing file points to not existing content
|
166
|
-
@bad_listings << base_path
|
167
|
-
@resource.log :error, e.message
|
168
|
-
[] # return no substitution for unreachable listings
|
169
|
-
end
|
170
85
|
end
|
171
86
|
end
|
172
87
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Katello
|
2
|
+
module Util
|
3
|
+
class PathWithSubstitutions
|
4
|
+
include Comparable
|
5
|
+
|
6
|
+
attr_accessor :substitutions
|
7
|
+
attr_accessor :path
|
8
|
+
|
9
|
+
#path /content/rhel/server/$arch/$releasever/os
|
10
|
+
#substitutions {$arch => 'x86_64'}
|
11
|
+
def initialize(path, substitutions)
|
12
|
+
@substitutions = substitutions
|
13
|
+
@path = path
|
14
|
+
@resolved = []
|
15
|
+
end
|
16
|
+
|
17
|
+
def substitutions_needed
|
18
|
+
# e.g. if content_url = "/content/dist/rhel/server/7/$releasever/$basearch/kickstart"
|
19
|
+
# return ['releasever', 'basearch']
|
20
|
+
path.split('/').map { |word| word.start_with?('$') ? word[1..-1] : nil }.compact
|
21
|
+
end
|
22
|
+
|
23
|
+
def substitutable?
|
24
|
+
path =~ /^(.*?)\$([^\/]*)/
|
25
|
+
end
|
26
|
+
|
27
|
+
def resolve_substitutions(cdn_resource)
|
28
|
+
if @resolved.empty? && path =~ /^(.*?)\$([^\/]*)/
|
29
|
+
base_path, var = Regexp.last_match[1], Regexp.last_match[2]
|
30
|
+
cdn_resource.fetch_substitutions(base_path).compact.map do |value|
|
31
|
+
new_substitutions = substitutions.merge(var => value)
|
32
|
+
new_path = path.sub("$#{var}", value)
|
33
|
+
@resolved << PathWithSubstitutions.new(new_path, new_substitutions)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
@resolved
|
37
|
+
end
|
38
|
+
|
39
|
+
def unused_substitutions
|
40
|
+
substitutions.keys.reject do |key|
|
41
|
+
path.include?("$#{key}")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def apply_substitutions
|
46
|
+
substitutions.reduce(path) do |url, (key, value)|
|
47
|
+
url.gsub("$#{key}", value)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def <=>(other)
|
52
|
+
key1 = path + substitutions.to_s
|
53
|
+
key2 = other.path + other.substitutions.to_s
|
54
|
+
key1 <=> key2
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -49,10 +49,10 @@ module Katello
|
|
49
49
|
scope :in_environment, ->(env) { where(:environment_id => env) }
|
50
50
|
|
51
51
|
scoped_search :on => :name, :complete_value => true
|
52
|
-
scoped_search :on => :organization_id, :complete_value => true, :only_explicit => true
|
53
|
-
scoped_search :rename => :environment, :on => :name, :
|
54
|
-
scoped_search :rename => :content_view, :on => :name, :
|
55
|
-
scoped_search :on => :content_view_id, :complete_value => true, :only_explicit => true
|
52
|
+
scoped_search :on => :organization_id, :complete_value => true, :only_explicit => true, :validator => ScopedSearch::Validators::INTEGER
|
53
|
+
scoped_search :rename => :environment, :on => :name, :relation => :environment, :complete_value => true
|
54
|
+
scoped_search :rename => :content_view, :on => :name, :relation => :content_view, :complete_value => true
|
55
|
+
scoped_search :on => :content_view_id, :complete_value => true, :only_explicit => true, :validator => ScopedSearch::Validators::INTEGER
|
56
56
|
scoped_search :on => :description, :complete_value => true
|
57
57
|
|
58
58
|
def environment_exists
|
@@ -85,7 +85,7 @@ module Katello
|
|
85
85
|
|
86
86
|
def available_subscriptions
|
87
87
|
all_pools = self.get_pools.map { |pool| pool["id"] }
|
88
|
-
added_pools = self.
|
88
|
+
added_pools = self.pools.pluck(:cp_id)
|
89
89
|
available_pools = all_pools - added_pools
|
90
90
|
Pool.where(:cp_id => available_pools,
|
91
91
|
:subscription_id => Subscription.with_subscribable_content)
|
@@ -94,15 +94,11 @@ module Katello
|
|
94
94
|
def products
|
95
95
|
all_products = []
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
all_products << pool.subscription.products
|
103
|
-
else
|
104
|
-
Rails.logger.error("Pool #{pool.id} is missing its subscription id.")
|
105
|
-
end
|
97
|
+
self.pools.each do |pool|
|
98
|
+
if pool.subscription
|
99
|
+
all_products << pool.subscription.products
|
100
|
+
else
|
101
|
+
Rails.logger.error("Pool #{pool.id} is missing its subscription id.")
|
106
102
|
end
|
107
103
|
end
|
108
104
|
all_products.flatten!
|
@@ -112,7 +108,7 @@ module Katello
|
|
112
108
|
self.products ? self.products.map(&:available_content).flatten.uniq { |product| product.content.id } : []
|
113
109
|
end
|
114
110
|
|
115
|
-
def
|
111
|
+
def valid_content_override_label?(content_label)
|
116
112
|
self.available_content.map(&:content).any? { |content| content.label == content_label }
|
117
113
|
end
|
118
114
|
|
@@ -6,8 +6,8 @@ module Katello
|
|
6
6
|
load_attributes(params)
|
7
7
|
end
|
8
8
|
|
9
|
-
def self.find(id)
|
10
|
-
found = Resources::Candlepin::Content.get(id)
|
9
|
+
def self.find(owner_key, id)
|
10
|
+
found = Resources::Candlepin::Content.get(owner_key, id)
|
11
11
|
Candlepin::Content.new(found)
|
12
12
|
end
|
13
13
|
|
@@ -46,8 +46,10 @@ module Katello
|
|
46
46
|
|
47
47
|
def find_repository
|
48
48
|
::Katello::Repository.where(product_id: product.id,
|
49
|
+
content_id: content.id,
|
49
50
|
environment_id: product.organization.library.id,
|
50
|
-
|
51
|
+
minor: minor,
|
52
|
+
arch: arch).first
|
51
53
|
end
|
52
54
|
|
53
55
|
def build_repository
|
@@ -56,7 +58,6 @@ module Katello
|
|
56
58
|
repository = Repository.new(
|
57
59
|
:environment => product.organization.library,
|
58
60
|
:product => product,
|
59
|
-
:pulp_id => pulp_id,
|
60
61
|
:cp_label => content.label,
|
61
62
|
:content_id => content.id,
|
62
63
|
:arch => arch,
|
@@ -93,7 +94,7 @@ module Katello
|
|
93
94
|
|
94
95
|
def validate!
|
95
96
|
return if katello_content_type == Repository::OSTREE_TYPE
|
96
|
-
substitutor.
|
97
|
+
substitutor.validate_substitutions(content, substitutions)
|
97
98
|
end
|
98
99
|
|
99
100
|
def substitutor
|
@@ -107,10 +108,6 @@ module Katello
|
|
107
108
|
repo_name_parts.join(" ").gsub(/[^a-z0-9\-\._ ]/i, "")
|
108
109
|
end
|
109
110
|
|
110
|
-
def pulp_id
|
111
|
-
product.repo_id(name)
|
112
|
-
end
|
113
|
-
|
114
111
|
def path
|
115
112
|
substitutions.inject(content.contentUrl) do |url, (key, value)|
|
116
113
|
url.gsub("$#{key}", value)
|
@@ -212,7 +209,6 @@ module Katello
|
|
212
209
|
end
|
213
210
|
::Katello::Repository.new(:environment => product.organization.library,
|
214
211
|
:product => product,
|
215
|
-
:pulp_id => pulp_id,
|
216
212
|
:cp_label => content.label,
|
217
213
|
:content_id => content.id,
|
218
214
|
:relative_path => relative_path,
|
@@ -237,10 +233,6 @@ module Katello
|
|
237
233
|
"#{content.name} - (#{registry['name']})"
|
238
234
|
end
|
239
235
|
|
240
|
-
def pulp_id
|
241
|
-
product.repo_id(content.name, nil, registry['name'])
|
242
|
-
end
|
243
|
-
|
244
236
|
def feed_url
|
245
237
|
cdn_uri = URI.parse(product.provider.repository_url)
|
246
238
|
docker_repo_uri = URI.parse(registry["url"])
|