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
data/lib/katello/engine.rb
CHANGED
@@ -254,28 +254,9 @@ module Katello
|
|
254
254
|
end
|
255
255
|
|
256
256
|
rake_tasks do
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/delete_orphaned_content.rake"
|
261
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/repository.rake"
|
262
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/reimport.rake"
|
263
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/rubocop.rake"
|
264
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/clean_backend_objects.rake"
|
265
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/unify_hosts.rake"
|
266
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrade_check.rake"
|
267
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/import_applicability.rake"
|
268
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/clean_published_repo_directories.rake"
|
269
|
-
|
270
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/2.4/import_package_groups.rake"
|
271
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/2.4/import_rpms.rake"
|
272
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/2.4/import_distributions.rake"
|
273
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/2.4/import_puppet_modules.rake"
|
274
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/2.4/import_subscriptions.rake"
|
275
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/3.0/add_export_distributor.rake"
|
276
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/3.0/delete_docker_v1_content.rake"
|
277
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/3.0/update_puppet_repository_distributors.rake"
|
278
|
-
load "#{Katello::Engine.root}/lib/katello/tasks/upgrades/3.0/update_subscription_facet_backend_data.rake"
|
257
|
+
Dir["#{Katello::Engine.root}/lib/katello/tasks/**/*"].each do |task|
|
258
|
+
load task if File.file?(task)
|
259
|
+
end
|
279
260
|
end
|
280
261
|
end
|
281
262
|
|
@@ -65,13 +65,13 @@ Foreman::Plugin.find(:katello).security_block :content_views do
|
|
65
65
|
permission :publish_content_views,
|
66
66
|
{
|
67
67
|
'katello/api/v2/content_views' => [:publish],
|
68
|
-
'katello/api/v2/content_view_versions' => [:incremental_update]
|
68
|
+
'katello/api/v2/content_view_versions' => [:incremental_update, :republish_repositories]
|
69
69
|
},
|
70
70
|
:resource_type => 'Katello::ContentView'
|
71
71
|
permission :promote_or_remove_content_views,
|
72
72
|
{
|
73
73
|
'katello/api/v2/content_view_versions' => [:promote],
|
74
|
-
'katello/api/v2/content_views' => [:remove_from_environment, :remove]
|
74
|
+
'katello/api/v2/content_views' => [:remove_from_environment, :remove, :republish_repositories]
|
75
75
|
},
|
76
76
|
:resource_type => 'Katello::ContentView'
|
77
77
|
permission :export_content_views,
|
@@ -22,6 +22,7 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
|
|
22
22
|
'katello/api/v2/hosts_bulk_actions/add_subscriptions',
|
23
23
|
'katello/api/v2/hosts_bulk_actions/remove_subscriptions',
|
24
24
|
'katello/api/v2/hosts_bulk_actions/auto_attach',
|
25
|
+
'katello/api/v2/hosts_bulk_actions/content_overrides',
|
25
26
|
'katello/api/v2/hosts_bulk_actions/environment_content_view',
|
26
27
|
'katello/api/rhsm/candlepin_proxies/upload_package_profile',
|
27
28
|
'katello/api/rhsm/candlepin_proxies/regenerate_identity_certificates',
|
@@ -9,7 +9,7 @@ Foreman::Plugin.find(:katello).security_block :products do
|
|
9
9
|
'katello/api/v2/packages' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch],
|
10
10
|
'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search],
|
11
11
|
'katello/api/v2/docker_manifests' => [:index, :show, :auto_complete_search],
|
12
|
-
'katello/api/v2/docker_tags' => [:index, :show, :auto_complete_search],
|
12
|
+
'katello/api/v2/docker_tags' => [:index, :show, :auto_complete_search, :auto_complete_name],
|
13
13
|
'katello/api/v2/file_units' => [:index, :show, :auto_complete_search],
|
14
14
|
'katello/api/v2/ostree_branches' => [:index, :show, :auto_complete_search],
|
15
15
|
'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
|
@@ -17,6 +17,7 @@ Foreman::Plugin.find(:katello).security_block :products do
|
|
17
17
|
'katello/errata' => [:short_details, :auto_complete],
|
18
18
|
'katello/packages' => [:details, :auto_complete],
|
19
19
|
'katello/puppet_modules' => [:show],
|
20
|
+
'katello/files' => [:auto_complete],
|
20
21
|
'katello/repositories' => [:auto_complete_library, :repository_types],
|
21
22
|
'katello/content_search' => [:index,
|
22
23
|
:products,
|
@@ -38,13 +39,14 @@ Foreman::Plugin.find(:katello).security_block :products do
|
|
38
39
|
permission :create_products,
|
39
40
|
{
|
40
41
|
'katello/api/v2/products' => [:create],
|
41
|
-
'katello/api/v2/repositories' => [:create]
|
42
|
+
'katello/api/v2/repositories' => [:create],
|
43
|
+
'katello/api/v2/package_groups' => [:create]
|
42
44
|
},
|
43
45
|
:resource_type => 'Katello::Product'
|
44
46
|
permission :edit_products,
|
45
47
|
{
|
46
48
|
'katello/api/v2/products' => [:update],
|
47
|
-
'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content],
|
49
|
+
'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content, :republish],
|
48
50
|
'katello/api/v2/products_bulk_actions' => [:update_sync_plans],
|
49
51
|
'katello/api/v2/content_uploads' => [:create, :update, :destroy],
|
50
52
|
'katello/api/v2/organizations' => [:repo_discover, :cancel_repo_discover]
|
@@ -55,7 +57,8 @@ Foreman::Plugin.find(:katello).security_block :products do
|
|
55
57
|
'katello/api/v2/products' => [:destroy],
|
56
58
|
'katello/api/v2/repositories' => [:destroy],
|
57
59
|
'katello/api/v2/products_bulk_actions' => [:destroy_products],
|
58
|
-
'katello/api/v2/repositories_bulk_actions' => [:destroy_repositories]
|
60
|
+
'katello/api/v2/repositories_bulk_actions' => [:destroy_repositories],
|
61
|
+
'katello/api/v2/package_groups' => [:destroy]
|
59
62
|
},
|
60
63
|
:resource_type => 'Katello::Product'
|
61
64
|
permission :sync_products,
|
data/lib/katello/plugin.rb
CHANGED
@@ -119,6 +119,15 @@ Foreman::Plugin.register :katello do
|
|
119
119
|
:engine => Katello::Engine,
|
120
120
|
:turbolinks => false
|
121
121
|
|
122
|
+
menu :top_menu,
|
123
|
+
:files,
|
124
|
+
:caption => N_('Files'),
|
125
|
+
:url => '/files',
|
126
|
+
:url_hash => {:controller => 'katello/api/v2/file_units',
|
127
|
+
:action => 'index'},
|
128
|
+
:engine => Katello::Engine,
|
129
|
+
:turbolinks => false
|
130
|
+
|
122
131
|
menu :top_menu,
|
123
132
|
:ostree_branches,
|
124
133
|
:caption => N_('OSTree Branches'),
|
@@ -195,6 +204,7 @@ Foreman::Plugin.register :katello do
|
|
195
204
|
|
196
205
|
register_custom_status(Katello::ErrataStatus)
|
197
206
|
register_custom_status(Katello::SubscriptionStatus)
|
207
|
+
register_custom_status(Katello::TraceStatus)
|
198
208
|
|
199
209
|
extend_page "smart_proxies/show" do |cx|
|
200
210
|
cx.add_pagelet :details_content,
|
@@ -234,7 +244,13 @@ Foreman::Plugin.register :katello do
|
|
234
244
|
|
235
245
|
add_controller_action_scope(HostsController, :index) do |base_scope|
|
236
246
|
base_scope
|
237
|
-
.
|
238
|
-
.
|
247
|
+
.includes(:content_view, :lifecycle_environment, :subscription_facet, :applicable_errata)
|
248
|
+
.includes(content_facet: [:bound_repositories, :applicable_errata, :content_view, :lifecycle_environment])
|
249
|
+
end
|
250
|
+
|
251
|
+
add_controller_action_scope(Api::V2::HostsController, :index) do |base_scope|
|
252
|
+
base_scope
|
253
|
+
.includes(:content_view, :lifecycle_environment, :subscription_facet, :applicable_errata)
|
254
|
+
.includes(content_facet: [:bound_repositories, :applicable_errata, :content_view, :lifecycle_environment])
|
239
255
|
end
|
240
256
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path("../engine", File.dirname(__FILE__))
|
2
|
+
|
3
|
+
# Use when regenerating the CA on the system, i.e. a hostname change
|
4
|
+
namespace :katello do
|
5
|
+
desc 'Regenerates the ueber cert for each organization in candlepin, can be passed an organization label.'
|
6
|
+
task :regenerate_ueber_certs, [:organization] => :environment do |_t, args|
|
7
|
+
user_org = Organization.where(:label => args.organization).first if args.organization
|
8
|
+
organizations = user_org.present? ? [user_org] : Organization.all
|
9
|
+
|
10
|
+
organizations.each do |org|
|
11
|
+
::Katello::Resources::Candlepin::Owner.generate_ueber_cert(org.label)
|
12
|
+
end
|
13
|
+
puts "Regenerated the ueber certificate(s) for #{organizations.map(&:name).join(', ')}"
|
14
|
+
end
|
15
|
+
end
|
@@ -3,12 +3,13 @@ require File.expand_path("../engine", File.dirname(__FILE__))
|
|
3
3
|
namespace :katello do
|
4
4
|
desc "Runs Rubocop style checker on Katello code"
|
5
5
|
task :rubocop do
|
6
|
-
system("
|
6
|
+
system("bundle exec rubocop #{Katello::Engine.root}")
|
7
|
+
exit($CHILD_STATUS.exitstatus)
|
7
8
|
end
|
8
9
|
|
9
10
|
desc "Runs Rubocop style checker with xml output for Jenkins"
|
10
11
|
task 'rubocop:jenkins' do
|
11
|
-
system("
|
12
|
+
system("bundle exec rubocop #{Katello::Engine.root} \
|
12
13
|
--require rubocop/formatter/checkstyle_formatter \
|
13
14
|
--format RuboCop::Formatter::CheckstyleFormatter \
|
14
15
|
--no-color --out rubocop.xml")
|
data/lib/katello/tasks/test.rake
CHANGED
@@ -36,11 +36,23 @@ namespace :test do
|
|
36
36
|
task :test => ['db:test:prepare'] do
|
37
37
|
test_task = Rake::TestTask.new('katello_test_task') do |t|
|
38
38
|
t.libs << ["test", "#{Katello::Engine.root}/test"]
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
if ENV['MATCH']
|
40
|
+
tests = ENV['MATCH'].split(',')
|
41
|
+
test_files = tests.map do |tst|
|
42
|
+
Dir.glob("#{Katello::Engine.root}/test/**/*#{tst}*").select do |fl|
|
43
|
+
fl.end_with?("_test.rb")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
test_files.flatten!
|
47
|
+
t.test_files = test_files
|
48
|
+
puts "Running Tests #{test_files.inspect}"
|
49
|
+
else
|
50
|
+
t.test_files = [
|
51
|
+
"#{Katello::Engine.root}/test/models/**/*_test.rb",
|
52
|
+
"#{Katello::Engine.root}/test/controllers/**/*_test.rb",
|
53
|
+
"#{Katello::Engine.root}/test/**/*_test.rb"
|
54
|
+
]
|
55
|
+
end
|
44
56
|
t.verbose = true
|
45
57
|
t.warning = false
|
46
58
|
end
|
@@ -105,7 +105,7 @@ namespace :katello do
|
|
105
105
|
end
|
106
106
|
|
107
107
|
if facet_host.managed?
|
108
|
-
puts "Host #{facet_host.name} is registered with subscription-manager but is managed, please un-
|
108
|
+
puts "Host #{facet_host.name} is registered with subscription-manager but is managed, please un-manage this host first."
|
109
109
|
return
|
110
110
|
end
|
111
111
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
namespace :katello do
|
2
|
+
task :update_subscription_facet_backend_data => ["environment"] do
|
3
|
+
def error(message)
|
4
|
+
@errors << message
|
5
|
+
@errors << "\n"
|
6
|
+
end
|
7
|
+
|
8
|
+
def report_errors
|
9
|
+
if @errors.any?
|
10
|
+
filename = "subscription_facet_upgrade-#{Time.now.to_i}.log"
|
11
|
+
path = "/var/log/foreman/#{filename}"
|
12
|
+
path = "/tmp/#{filename}" unless File.writable?(path)
|
13
|
+
|
14
|
+
file = File.open(path, 'w')
|
15
|
+
@errors.each { |error| file.write(error) }
|
16
|
+
file.close
|
17
|
+
$stderr.print "***********************************\n"
|
18
|
+
$stderr.print "*************WARNING***************\n"
|
19
|
+
$stderr.print "Errors detected during upgrade step.\n"
|
20
|
+
$stderr.print "Details saved to: #{file.path}\n"
|
21
|
+
$stderr.print "This step can be rerun with:\n"
|
22
|
+
$stderr.print " foreman-rake katello:update_subscription_facet_backend_data\n"
|
23
|
+
$stderr.print "You are likely encountering a bug.\n"
|
24
|
+
$stderr.print "***********************************\n"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
@errors ||= []
|
29
|
+
User.current = User.anonymous_api_admin
|
30
|
+
puts _("Updating backend data for subscription facets")
|
31
|
+
|
32
|
+
#there may be some invalid hosts, if there are create a primary interface
|
33
|
+
::Host.includes(:interfaces).find_each do |host|
|
34
|
+
if host.primary_interface.nil?
|
35
|
+
host.interfaces.create!(:primary => true)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
Katello::Host::SubscriptionFacet.find_each do |subscription_facet|
|
40
|
+
begin
|
41
|
+
candlepin_attrs = subscription_facet.candlepin_consumer.consumer_attributes
|
42
|
+
subscription_facet.import_database_attributes(candlepin_attrs)
|
43
|
+
subscription_facet.host = ::Host::Managed.find(subscription_facet.host_id)
|
44
|
+
subscription_facet.save!
|
45
|
+
|
46
|
+
host = subscription_facet.host
|
47
|
+
host.name = ::Katello::Host::SubscriptionFacet.sanitize_name(host.name)
|
48
|
+
host.save! if host.name_changed?
|
49
|
+
|
50
|
+
Katello::Host::SubscriptionFacet.update_facts(subscription_facet.host, candlepin_attrs[:facts])
|
51
|
+
rescue StandardError => exception
|
52
|
+
error("Error: #{subscription_facet.host.name} - #{subscription_facet.host.id}")
|
53
|
+
error(candlepin_attrs)
|
54
|
+
error(exception.message)
|
55
|
+
error(exception.backtrace.join("\n"))
|
56
|
+
error("\n")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
report_errors
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
namespace :katello do
|
2
|
+
namespace :upgrades do
|
3
|
+
namespace '3.3' do
|
4
|
+
task :import_subscriptions => ["environment"] do
|
5
|
+
User.current = User.anonymous_api_admin
|
6
|
+
puts _("Importing Subscriptions")
|
7
|
+
Katello::Subscription.import_all
|
8
|
+
Katello::Pool.import_all
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
namespace :katello do
|
2
|
+
desc <<-END_DESC
|
3
|
+
Report on hypervisors without VDC subscriptions and guests consuming virtual entitlements. Returns non-negative exit code if any issue is found.
|
4
|
+
Options:
|
5
|
+
CSV - Output in csv format. Example: CSV=true
|
6
|
+
LIMIT - only execute on a specified number of hosts (useful when re-running with different options). Example: LIMIT=500
|
7
|
+
IGNORE - ignore one or more pools, separated via a pipe character '|'.
|
8
|
+
Example: IGNORE="Red Hat Enterprise Linux Server with Smart Management, Standard (Physical or Virtual Nodes)|Some Other Pool"
|
9
|
+
END_DESC
|
10
|
+
task :virt_who_report => ["environment", "check_ping"] do
|
11
|
+
class ProblemItem
|
12
|
+
attr_accessor :host, :hypervisor, :message
|
13
|
+
|
14
|
+
def initialize(hash)
|
15
|
+
hash.each { |k, v| instance_variable_set("@#{k}", v) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def hostname
|
19
|
+
host.try(:name)
|
20
|
+
end
|
21
|
+
|
22
|
+
def host_id
|
23
|
+
host.try(:id)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def physical_entitlements(entitlements)
|
28
|
+
entitlements.select do |ent|
|
29
|
+
attributes = ent['pool']['productAttributes'] + ent['pool']["attributes"]
|
30
|
+
virtual = attributes.find { |att| att['name'] == 'virt_only' || att['name'] == 'virtual' }.try(:[], 'value') == 'true'
|
31
|
+
ent['pool']['quantity'] != -1 && virtual != true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
#version specific methods
|
36
|
+
def total_count
|
37
|
+
Katello::Host::SubscriptionFacet.count
|
38
|
+
end
|
39
|
+
|
40
|
+
def for_each_item_with_index
|
41
|
+
Katello::Host::SubscriptionFacet.find_each.with_index do |item, index|
|
42
|
+
yield(item, index)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def candlepin_attributes(item)
|
47
|
+
item.candlepin_consumer.consumer_attributes
|
48
|
+
end
|
49
|
+
|
50
|
+
def entitlements(item)
|
51
|
+
item.candlepin_consumer.entitlements
|
52
|
+
end
|
53
|
+
|
54
|
+
def hypervisor_for(item)
|
55
|
+
item.candlepin_consumer.virtual_host
|
56
|
+
end
|
57
|
+
|
58
|
+
def host_for(item)
|
59
|
+
item.host
|
60
|
+
end
|
61
|
+
|
62
|
+
#output writing
|
63
|
+
def output_txt(directory, hypervisors, guests, errors)
|
64
|
+
write_to_file(File.join(directory, 'hypervisors.txt'), hypervisors) do |file, problem|
|
65
|
+
file.write("#{problem.hostname} (#{problem.host_id}): #{problem.message}\n")
|
66
|
+
end
|
67
|
+
|
68
|
+
write_to_file(File.join(directory, 'guests.txt'), guests) do |file, problem|
|
69
|
+
hypervisor_msg = "Could not identify hypervisor."
|
70
|
+
hypervisor_msg = "Hypervisor identified as #{problem.hypervisor.name} (#{problem.hypervisor.id})." if problem.hypervisor
|
71
|
+
file.write("#{problem.hostname} (#{problem.host_id}): #{problem.message} #{hypervisor_msg}\n")
|
72
|
+
end
|
73
|
+
|
74
|
+
write_to_file(File.join(directory, 'errors.txt'), errors) do |file, problem|
|
75
|
+
file.write("#{problem.hostname} (#{problem.host_id}): #{problem.message}\n")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def output_csv(directory, hypervisors, guests, errors)
|
80
|
+
hypervisor_header = ['Name', 'Id', 'Problem reason']
|
81
|
+
write_to_file(File.join(directory, 'hypervisors.csv'), hypervisors, hypervisor_header) do |file, problem|
|
82
|
+
file << [problem.hostname, problem.host_id, problem.message]
|
83
|
+
end
|
84
|
+
|
85
|
+
guests_header = ['Name', 'Id', 'Problem reason', 'Hypervisor name', 'Hypervisor id']
|
86
|
+
write_to_file(File.join(directory, 'guests.csv'), guests, guests_header) do |file, problem|
|
87
|
+
file << [problem.hostname, problem.host_id, problem.message, problem.hypervisor.try(:name), problem.hypervisor.try(:id)]
|
88
|
+
end
|
89
|
+
|
90
|
+
errors_header = ['Name', 'Id', 'Error']
|
91
|
+
write_to_file(File.join(directory, 'errors.csv'), errors, errors_header) do |file, problem|
|
92
|
+
file << [problem.hostname, problem.host_id, problem.message]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def write_to_file(filename, items, csv_header = nil)
|
97
|
+
file_obj = csv_header ? CSV : File
|
98
|
+
file_obj.open(filename, 'w') do |file|
|
99
|
+
file << csv_header if csv_header
|
100
|
+
items.each do |item|
|
101
|
+
yield(file, item)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
total = total_count
|
107
|
+
guests = []
|
108
|
+
hypervisors = []
|
109
|
+
errors = []
|
110
|
+
ignored_pools = ENV['IGNORE'] ? ENV['IGNORE'].split('|') : []
|
111
|
+
|
112
|
+
for_each_item_with_index do |item, index|
|
113
|
+
break if ENV['LIMIT'] && ENV['LIMIT'].to_i < index
|
114
|
+
puts "#{index + 1}/#{total}"
|
115
|
+
begin
|
116
|
+
consumer_attributes = candlepin_attributes(item)
|
117
|
+
entitlements = entitlements(item)
|
118
|
+
if consumer_attributes['type']['label'] == 'hypervisor' && entitlements.empty?
|
119
|
+
hypervisors << ProblemItem.new(:host => host_for(item), :message => "Has no entitlements")
|
120
|
+
elsif consumer_attributes['facts']['virt.is_guest'].try(:to_s) == 'true'
|
121
|
+
physical_ents = physical_entitlements(entitlements).select { |ent| !ignored_pools.include?(ent) }
|
122
|
+
|
123
|
+
if physical_ents.count > 0
|
124
|
+
names = physical_ents.map { |ent| ent['pool']['productName'] }.join(',')
|
125
|
+
guests << ProblemItem.new(:host => host_for(item), :message => "Has physical entitlements: #{names}.", :hypervisor => hypervisor_for(item))
|
126
|
+
end
|
127
|
+
end
|
128
|
+
rescue StandardError => e
|
129
|
+
errors << ProblemItem.new(:host => host_for(item), :message => e.to_s)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
directory = Dir.mktmpdir('virt_who_report')
|
134
|
+
if hypervisors.any? || guests.any? || errors.any?
|
135
|
+
puts "#{hypervisors.count} hypervisor issues found."
|
136
|
+
puts "#{guests.count} guest issues found."
|
137
|
+
puts "#{errors.count} errors encountered."
|
138
|
+
puts "Saving results to #{directory}/."
|
139
|
+
|
140
|
+
if ENV['CSV'] && ENV['CSV'] == 'true'
|
141
|
+
output_csv(directory, hypervisors, guests, errors)
|
142
|
+
else
|
143
|
+
output_txt(directory, hypervisors, guests, errors)
|
144
|
+
end
|
145
|
+
exit(-1)
|
146
|
+
else
|
147
|
+
puts "No issues found."
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|