katello 3.9.1 → 3.10.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +28 -12
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +12 -3
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +4 -13
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -4
- data/app/controllers/katello/api/v2/content_views_controller.rb +8 -3
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +2 -1
- data/app/controllers/katello/api/v2/host_module_streams_controller.rb +39 -0
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +20 -11
- data/app/controllers/katello/api/v2/module_streams_controller.rb +2 -1
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +17 -8
- data/app/controllers/katello/application_controller.rb +0 -2
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +5 -2
- data/app/lib/actions/candlepin/consumer/attach_subscription.rb +0 -2
- data/app/lib/actions/candlepin/consumer/remove_subscription.rb +0 -2
- data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -25
- data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
- data/app/lib/actions/katello/content_view/promote.rb +2 -5
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +2 -5
- data/app/lib/actions/katello/content_view/publish.rb +1 -4
- data/app/lib/actions/katello/content_view_puppet_environment/create.rb +6 -10
- data/app/lib/actions/katello/content_view_version/export.rb +0 -2
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +19 -1
- data/app/lib/actions/katello/environment/publish_repositories.rb +2 -1
- data/app/lib/actions/katello/gpg_key/update.rb +17 -0
- data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -2
- data/app/lib/actions/katello/host/erratum/install.rb +6 -0
- data/app/lib/actions/katello/host/generate_applicability.rb +0 -2
- data/app/lib/actions/katello/host/hypervisors_update.rb +11 -6
- data/app/lib/actions/katello/host/package/install.rb +6 -0
- data/app/lib/actions/katello/host/package/remove.rb +6 -0
- data/app/lib/actions/katello/host/package/update.rb +7 -1
- data/app/lib/actions/katello/host/package_group/install.rb +6 -0
- data/app/lib/actions/katello/host/package_group/remove.rb +6 -0
- data/app/lib/actions/katello/host/recalculate_errata_status.rb +0 -2
- data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -2
- data/app/lib/actions/katello/host/update.rb +1 -0
- data/app/lib/actions/katello/host/update_content_overrides.rb +0 -2
- data/app/lib/actions/katello/host/upload_package_profile.rb +13 -12
- data/app/lib/actions/katello/host/upload_profiles.rb +70 -0
- data/app/lib/actions/katello/product/reindex_subscriptions.rb +0 -2
- data/app/lib/actions/katello/product/repositories_certs_reset.rb +4 -4
- data/app/lib/actions/katello/product/repositories_gpg_reset.rb +2 -2
- data/app/lib/actions/katello/repository/check_matching_content.rb +18 -6
- data/app/lib/actions/katello/repository/clone_deb_content.rb +1 -1
- data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -5
- data/app/lib/actions/katello/repository/clone_to_version.rb +2 -3
- data/app/lib/actions/katello/repository/clone_yum_content.rb +1 -2
- data/app/lib/actions/katello/repository/clone_yum_metadata.rb +2 -2
- data/app/lib/actions/katello/repository/create.rb +1 -31
- data/app/lib/actions/katello/repository/destroy.rb +1 -2
- data/app/lib/actions/katello/repository/export.rb +0 -2
- data/app/lib/actions/katello/repository/fetch_pxe_files.rb +0 -2
- data/app/lib/actions/katello/repository/filtered_index_content.rb +0 -2
- data/app/lib/actions/katello/repository/finish_upload.rb +0 -2
- data/app/lib/actions/katello/repository/import_upload.rb +0 -2
- data/app/lib/actions/katello/repository/index_content.rb +0 -1
- data/app/lib/actions/katello/repository/index_package_groups.rb +0 -2
- data/app/lib/actions/katello/repository/instance_update.rb +21 -0
- data/app/lib/actions/katello/repository/remove_content.rb +0 -2
- data/app/lib/actions/katello/repository/sync.rb +0 -1
- data/app/lib/actions/katello/repository/update.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/bind_entitlement.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/bind_entitlements.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +0 -1
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/update_entitlement.rb +0 -1
- data/app/lib/actions/katello/upstream_subscriptions/update_entitlements.rb +0 -2
- data/app/lib/actions/pulp/abstract.rb +13 -14
- data/app/lib/actions/pulp/repository/create.rb +13 -211
- data/app/lib/actions/pulp/repository/create_in_plan.rb +4 -18
- data/app/lib/actions/pulp/repository/refresh.rb +7 -70
- data/app/lib/actions/pulp/repository/sync.rb +1 -2
- data/app/lib/katello/capsule_content.rb +3 -3
- data/app/lib/katello/resources/candlepin/consumer.rb +1 -1
- data/app/lib/katello/resources/candlepin/product.rb +1 -1
- data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +1 -1
- data/app/models/katello/available_module_stream.rb +11 -0
- data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +56 -0
- data/app/models/katello/concerns/hostgroup_extensions.rb +17 -0
- data/app/models/katello/concerns/redhat_extensions.rb +20 -6
- data/app/models/katello/concerns/search_by_repository_name.rb +0 -1
- data/app/models/katello/concerns/smart_proxy_extensions.rb +26 -12
- data/app/models/katello/content_facet_applicable_module_stream.rb +7 -0
- data/app/models/katello/content_view_puppet_environment.rb +14 -35
- data/app/models/katello/erratum.rb +54 -24
- data/app/models/katello/erratum_package.rb +6 -0
- data/app/models/katello/glue/pulp/repo.rb +5 -228
- data/app/models/katello/gpg_key.rb +1 -0
- data/app/models/katello/host/content_facet.rb +38 -83
- data/app/models/katello/host_available_module_stream.rb +47 -0
- data/app/models/katello/module_stream.rb +18 -0
- data/app/models/katello/module_stream_erratum_package.rb +6 -0
- data/app/models/katello/product.rb +0 -2
- data/app/models/katello/product_content.rb +1 -0
- data/app/models/katello/repository.rb +15 -6
- data/app/models/katello/root_repository.rb +1 -1
- data/app/models/katello/rpm.rb +5 -17
- data/app/services/katello/applicable_content_helper.rb +111 -0
- data/app/services/katello/managed_content_medium_provider.rb +7 -0
- data/app/services/katello/pulp/consumer.rb +13 -7
- data/app/services/katello/pulp/repository.rb +157 -4
- data/app/services/katello/pulp/repository/deb.rb +47 -0
- data/app/services/katello/pulp/repository/docker.rb +43 -0
- data/app/services/katello/pulp/repository/file.rb +31 -0
- data/app/services/katello/pulp/repository/ostree.rb +40 -0
- data/app/services/katello/pulp/repository/puppet.rb +43 -0
- data/app/services/katello/pulp/repository/yum.rb +61 -0
- data/app/services/katello/repository_type.rb +1 -1
- data/app/views/katello/api/v2/content_facet/base.json.rabl +1 -0
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +0 -1
- data/app/views/katello/api/v2/errata/_counts.json.rabl +0 -1
- data/app/views/katello/api/v2/errata/show.json.rabl +9 -3
- data/app/views/katello/api/v2/host_collections/delta_activation_keys.rabl +0 -1
- data/app/views/katello/api/v2/host_module_streams/base.json.rabl +8 -0
- data/app/views/katello/api/v2/host_module_streams/index.json.rabl +7 -0
- data/app/views/katello/api/v2/packages/backend.json.rabl +0 -1
- data/app/views/katello/api/v2/repositories/show.json.rabl +6 -6
- data/app/views/katello/layouts/react.html.erb +2 -2
- data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +0 -1
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/overrides.rb +4 -0
- data/db/migrate/20181008201422_add_modules_to_errata_packages.rb +29 -0
- data/db/migrate/20181017181806_available_module_streams.rb +34 -0
- data/db/migrate/20181027014323_add_applicable_modules.rb +24 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/module-stream-actions.service.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +37 -22
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +27 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html +29 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html +15 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +3 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +0 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +0 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum.controller.js +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +0 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-packages.html +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum.html +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-module-streams.factory.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -2
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +13 -0
- data/lib/katello/permissions/host_permissions.rb +3 -0
- data/lib/katello/repository_types/deb.rb +3 -1
- data/lib/katello/repository_types/docker.rb +3 -1
- data/lib/katello/repository_types/file.rb +1 -0
- data/lib/katello/repository_types/ostree.rb +3 -1
- data/lib/katello/repository_types/puppet.rb +3 -1
- data/lib/katello/repository_types/yum.rb +3 -1
- data/lib/katello/tasks/delete_orphaned_content.rake +1 -1
- data/lib/katello/tasks/reset.rake +1 -0
- data/lib/katello/tasks/test.rake +14 -0
- data/lib/katello/tasks/unify_hosts.rake +2 -0
- data/lib/katello/tasks/virt_who_report.rake +2 -1
- data/lib/katello/version.rb +1 -1
- data/locale/Makefile +52 -17
- data/locale/update-i18n +22 -0
- data/package.json +11 -1
- data/webpack/__mocks__/foremanReact/components/common/EmptyState.js +8 -0
- data/webpack/move_to_foreman/components/common/table/components/Table.js +2 -1
- data/webpack/move_to_pf/react-bootstrap-select/index.js +4 -2
- data/webpack/move_to_pf/test-utils/testHelpers.js +9 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsActions.js +24 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsConstants.js +5 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsReducer.js +38 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsSelectors.js +7 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsActions.test.js +47 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsReducer.test.js +33 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsSelectors.test.js +19 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsActions.test.js.snap +49 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsReducer.test.js.snap +36 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsSelectors.test.js.snap +9 -0
- data/webpack/redux/OrganizationProducts/index.js +13 -0
- data/webpack/redux/actions/RedHatRepositories/enabled.js +7 -1
- data/webpack/redux/actions/RedHatRepositories/helpers.js +4 -0
- data/webpack/redux/actions/RedHatRepositories/sets.js +2 -0
- data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +8 -2
- data/webpack/redux/reducers/RedHatRepositories/enabled.js +1 -1
- data/webpack/redux/reducers/RedHatRepositories/sets.fixtures.js +12 -3
- data/webpack/redux/reducers/index.js +2 -0
- data/webpack/scenes/RedHatRepositories/components/SearchBar.js +68 -33
- data/webpack/scenes/RedHatRepositories/index.js +13 -2
- data/webpack/scenes/RedHatRepositories/index.scss +26 -0
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -1
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +1 -1
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +18 -2
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +8 -0
- data/webpack/scenes/Subscriptions/SubscriptionHelpers.js +15 -0
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +22 -14
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +39 -90
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +14 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +1 -3
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +0 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionHelpers.test.js +84 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +26 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +5 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +177 -75
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +29 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionHelpers.test.js.snap +31 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +32 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +18 -96
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +511 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +26 -0
- data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +6 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +3 -21
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +113 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +47 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +504 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/index.js +1 -0
- data/webpack/scenes/Subscriptions/index.js +15 -4
- metadata +59 -14
- data/app/lib/actions/pulp/repository/associate_distributor.rb +0 -20
- data/app/lib/actions/pulp/repository/associate_importer.rb +0 -23
- data/app/lib/actions/pulp/repository/delete_distributor.rb +0 -18
- data/app/lib/actions/pulp/repository/refresh_distributor.rb +0 -19
- data/app/lib/actions/pulp/repository/update_importer.rb +0 -33
- data/app/lib/katello/bulk_actions.rb +0 -63
- data/webpack/move_to_foreman/components/common/EmptyState/index.js +0 -68
@@ -19,8 +19,11 @@ module Katello
|
|
19
19
|
prepend Overrides
|
20
20
|
|
21
21
|
def destroy
|
22
|
-
Katello::RegistrationManager.unregister_host(@host, :unregistering => false)
|
23
|
-
|
22
|
+
if Katello::RegistrationManager.unregister_host(@host, :unregistering => false)
|
23
|
+
process_success(:success_redirect => hosts_path)
|
24
|
+
else
|
25
|
+
process_error :redirect => :back, :error_msg => _("Failed to delete %{host}: %{errors}") % { :host => @host, :errors => @host.errors.full_messages }
|
26
|
+
end
|
24
27
|
rescue StandardError => ex
|
25
28
|
process_error(:object => @host, :error_msg => ex.message, :redirect => saved_redirect_url_or(send("#{controller_name}_url")))
|
26
29
|
end
|
@@ -7,7 +7,7 @@ module Actions
|
|
7
7
|
fail _("Action not allowed for the default capsule.") if capsule_content.default_capsule?
|
8
8
|
|
9
9
|
repos_to_create(capsule_content, environment, content_view, repository).each do |repo|
|
10
|
-
|
10
|
+
plan_action(Pulp::Repository::Create, repo, capsule_content.capsule)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -26,30 +26,6 @@ module Actions
|
|
26
26
|
repos
|
27
27
|
end
|
28
28
|
|
29
|
-
def create_repo_in_pulp(capsule_content, repository)
|
30
|
-
ueber_cert = ::Cert::Certs.ueber_cert(repository.organization)
|
31
|
-
relative_path = repository_relative_path(repository, capsule_content)
|
32
|
-
checksum_type = repository.yum? ? repository.checksum_type : nil
|
33
|
-
|
34
|
-
plan_action(Pulp::Repository::Create,
|
35
|
-
content_type: repository.content_type,
|
36
|
-
pulp_id: repository.pulp_id,
|
37
|
-
name: repository.name,
|
38
|
-
feed: repository.docker? ? repository.docker_feed_url(capsule_content.capsule) : repository.full_path(nil, true),
|
39
|
-
ssl_ca_cert: ::Cert::Certs.ca_cert,
|
40
|
-
ssl_client_cert: ueber_cert[:cert],
|
41
|
-
ssl_client_key: ueber_cert[:key],
|
42
|
-
unprotected: repository.unprotected,
|
43
|
-
checksum_type: checksum_type,
|
44
|
-
path: relative_path,
|
45
|
-
with_importer: true,
|
46
|
-
docker_upstream_name: repository.docker? ? repository.container_repository_name : nil,
|
47
|
-
docker_tags_whitelist: repository.docker? ? repository.docker_tags_whitelist : nil,
|
48
|
-
repo_registry_id: repository.docker? ? repository.container_repository_name : nil,
|
49
|
-
download_policy: repository.capsule_download_policy(capsule_content.capsule),
|
50
|
-
capsule_id: capsule_content.capsule.id)
|
51
|
-
end
|
52
|
-
|
53
29
|
def repository_relative_path(repository, capsule_content)
|
54
30
|
if repository.is_a? ::Katello::ContentViewPuppetEnvironment
|
55
31
|
repository.generate_puppet_path(capsule_content.capsule)
|
@@ -73,7 +73,7 @@ module Actions
|
|
73
73
|
capsule_id: capsule_content.capsule.id,
|
74
74
|
repo_pulp_id: repo_id)
|
75
75
|
end
|
76
|
-
pulp_options = { remove_missing: repo && ["puppet", "yum"].include?(repo.content_type) }
|
76
|
+
pulp_options = { remove_missing: repo && ["deb", "puppet", "yum"].include?(repo.content_type) }
|
77
77
|
pulp_options[:force_full] = true if skip_metadata_check && repo.content_type == "yum"
|
78
78
|
plan_action(Pulp::Consumer::SyncCapsule,
|
79
79
|
capsule_id: capsule_content.capsule.id,
|
@@ -2,9 +2,7 @@ module Actions
|
|
2
2
|
module Katello
|
3
3
|
module ContentView
|
4
4
|
class Promote < Actions::EntryAction
|
5
|
-
|
6
|
-
|
7
|
-
def plan(version, environments, is_force = false, description = nil, options = {})
|
5
|
+
def plan(version, environments, is_force = false, description = nil)
|
8
6
|
action_subject(version.content_view)
|
9
7
|
version.check_ready_to_promote!(environments)
|
10
8
|
|
@@ -15,8 +13,7 @@ module Actions
|
|
15
13
|
environments.each do |environment|
|
16
14
|
sequence do
|
17
15
|
plan_action(Katello::ContentViewVersion::BeforePromoteHook, :id => version.id)
|
18
|
-
plan_action(ContentView::PromoteToEnvironment, version, environment, description
|
19
|
-
:force_yum_metadata_regeneration => options[:force_yum_metadata_regeneration])
|
16
|
+
plan_action(ContentView::PromoteToEnvironment, version, environment, description)
|
20
17
|
plan_action(Katello::ContentViewVersion::AfterPromoteHook, :id => version.id)
|
21
18
|
end
|
22
19
|
end
|
@@ -3,9 +3,7 @@ module Actions
|
|
3
3
|
module Katello
|
4
4
|
module ContentView
|
5
5
|
class PromoteToEnvironment < Actions::EntryAction
|
6
|
-
|
7
|
-
|
8
|
-
def plan(version, environment, description, options = {})
|
6
|
+
def plan(version, environment, description)
|
9
7
|
history = ::Katello::ContentViewHistory.create!(:content_view_version => version, :user => ::User.current.login,
|
10
8
|
:environment => environment, :task => self.task,
|
11
9
|
:status => ::Katello::ContentViewHistory::IN_PROGRESS,
|
@@ -17,8 +15,7 @@ module Actions
|
|
17
15
|
concurrence do
|
18
16
|
version.archived_repos.non_puppet.each do |repository|
|
19
17
|
sequence do
|
20
|
-
plan_action(Repository::CloneToEnvironment, repository, environment
|
21
|
-
:force_yum_metadata_regeneration => options[:force_yum_metadata_regeneration])
|
18
|
+
plan_action(Repository::CloneToEnvironment, repository, environment)
|
22
19
|
end
|
23
20
|
end
|
24
21
|
|
@@ -3,8 +3,6 @@ module Actions
|
|
3
3
|
module Katello
|
4
4
|
module ContentView
|
5
5
|
class Publish < Actions::EntryAction
|
6
|
-
middleware.use Actions::Middleware::KeepCurrentUser
|
7
|
-
|
8
6
|
# rubocop:disable MethodLength
|
9
7
|
def plan(content_view, description = "", options = {})
|
10
8
|
action_subject(content_view)
|
@@ -45,8 +43,7 @@ module Actions
|
|
45
43
|
content_view.publish_repositories do |repositories|
|
46
44
|
sequence do
|
47
45
|
clone_to_version = plan_action(Repository::CloneToVersion, repositories, version, :repos_units => options[:repos_units])
|
48
|
-
plan_action(Repository::CloneToEnvironment, clone_to_version.new_repository, library
|
49
|
-
:force_yum_metadata_regeneration => options[:force_yum_metadata_regeneration])
|
46
|
+
plan_action(Repository::CloneToEnvironment, clone_to_version.new_repository, library)
|
50
47
|
end
|
51
48
|
end
|
52
49
|
|
@@ -9,17 +9,8 @@ module Actions
|
|
9
9
|
User.as_anonymous_admin { puppet_environment.save! }
|
10
10
|
|
11
11
|
action_subject(puppet_environment)
|
12
|
-
plan_self
|
13
|
-
|
14
|
-
puppet_path = puppet_environment.generate_puppet_path(internal_capsule)
|
15
|
-
|
16
12
|
sequence do
|
17
|
-
|
18
|
-
content_type: ::Katello::Repository::PUPPET_TYPE,
|
19
|
-
pulp_id: puppet_environment.pulp_id,
|
20
|
-
name: puppet_environment.name,
|
21
|
-
with_importer: true,
|
22
|
-
path: puppet_path)
|
13
|
+
plan_self(:content_view_puppet_environment_id => puppet_environment.id)
|
23
14
|
|
24
15
|
# when creating a clone, the following actions are handled by the
|
25
16
|
# publish/promote process
|
@@ -29,6 +20,11 @@ module Actions
|
|
29
20
|
end
|
30
21
|
end
|
31
22
|
|
23
|
+
def run
|
24
|
+
puppet_environment = ::Katello::ContentViewPuppetEnvironment.find(input[:content_view_puppet_environment_id])
|
25
|
+
output[:response] = ::Katello::Pulp::Repository::Puppet.new(puppet_environment.nonpersisted_repository, SmartProxy.pulp_master).create
|
26
|
+
end
|
27
|
+
|
32
28
|
def humanized_name
|
33
29
|
_("Create")
|
34
30
|
end
|
@@ -2,8 +2,6 @@ module Actions
|
|
2
2
|
module Katello
|
3
3
|
module ContentViewVersion
|
4
4
|
class Export < Actions::EntryAction
|
5
|
-
middleware.use Actions::Middleware::KeepCurrentUser
|
6
|
-
|
7
5
|
def plan(content_view_version, export_to_iso, since, iso_size)
|
8
6
|
# assemble data to feed to Pulp
|
9
7
|
content_view = ::Katello::ContentView.find(content_view_version.content_view_id)
|
@@ -7,6 +7,7 @@ module Actions
|
|
7
7
|
HUMANIZED_TYPES = {
|
8
8
|
::Katello::Erratum::CONTENT_TYPE => "Errata",
|
9
9
|
::Katello::Rpm::CONTENT_TYPE => "Packages",
|
10
|
+
::Katello::Deb::CONTENT_TYPE => "Deb Packages",
|
10
11
|
::Katello::PuppetModule::CONTENT_TYPE => "Puppet Modules"
|
11
12
|
}.freeze
|
12
13
|
|
@@ -67,7 +68,8 @@ module Actions
|
|
67
68
|
copy_output = []
|
68
69
|
sequence do
|
69
70
|
new_repo = plan_action(Repository::CloneToVersion, source_repos, new_version, :incremental => true).new_repository
|
70
|
-
copy_output
|
71
|
+
copy_output += copy_deb_content(new_repo, dep_solve, content[:deb_ids])
|
72
|
+
copy_output += copy_yum_content(new_repo, dep_solve, content[:package_ids], content[:errata_ids])
|
71
73
|
|
72
74
|
plan_action(Katello::Repository::MetadataGenerate, new_repo)
|
73
75
|
plan_action(Katello::Repository::IndexContent, id: new_repo.id)
|
@@ -118,6 +120,7 @@ module Actions
|
|
118
120
|
def run
|
119
121
|
content = { ::Katello::Erratum::CONTENT_TYPE => [],
|
120
122
|
::Katello::Rpm::CONTENT_TYPE => [],
|
123
|
+
::Katello::Deb::CONTENT_TYPE => [],
|
121
124
|
::Katello::PuppetModule::CONTENT_TYPE => []}
|
122
125
|
|
123
126
|
input[:copy_action_outputs].each do |copy_output|
|
@@ -130,6 +133,8 @@ module Actions
|
|
130
133
|
content[::Katello::Erratum::CONTENT_TYPE] << unit['id']
|
131
134
|
when ::Katello::Rpm::CONTENT_TYPE
|
132
135
|
content[::Katello::Rpm::CONTENT_TYPE] << ::Katello::Util::Package.build_nvra(unit)
|
136
|
+
when ::Katello::Deb::CONTENT_TYPE
|
137
|
+
content[::Katello::Deb::CONTENT_TYPE] << "#{unit['name']}_#{unit['version']}_#{unit['architecture']}"
|
133
138
|
when ::Katello::PuppetModule::CONTENT_TYPE
|
134
139
|
content[::Katello::PuppetModule::CONTENT_TYPE] << "#{unit['author']}-#{unit['name']}-#{unit['version']}"
|
135
140
|
end
|
@@ -210,6 +215,19 @@ module Actions
|
|
210
215
|
plan_action(Katello::ContentView::Promote, new_version, environments, true)
|
211
216
|
end
|
212
217
|
|
218
|
+
def copy_deb_content(new_repo, dep_solve, deb_ids)
|
219
|
+
copy_outputs = []
|
220
|
+
if new_repo.content_type == ::Katello::Repository::DEB_TYPE
|
221
|
+
unless deb_ids.blank?
|
222
|
+
deb_uuids = ::Katello::Deb.with_identifiers(deb_ids).pluck(:uuid)
|
223
|
+
copy_outputs << plan_copy(Pulp::Repository::CopyDeb, new_repo.library_instance, new_repo,
|
224
|
+
{ :filters => {:association => {'unit_id' => {'$in' => deb_uuids}}}},
|
225
|
+
:recursive => true, :resolve_dependencies => dep_solve).output
|
226
|
+
end
|
227
|
+
end
|
228
|
+
copy_outputs
|
229
|
+
end
|
230
|
+
|
213
231
|
def copy_yum_content(new_repo, dep_solve, package_ids, errata_ids)
|
214
232
|
copy_outputs = []
|
215
233
|
if new_repo.content_type == ::Katello::Repository::YUM_TYPE
|
@@ -15,7 +15,8 @@ module Actions
|
|
15
15
|
concurrence do
|
16
16
|
repositories.each do |repository|
|
17
17
|
sequence do
|
18
|
-
|
18
|
+
repository.set_container_repository_name
|
19
|
+
plan_action(::Actions::Katello::Repository::InstanceUpdate, repository)
|
19
20
|
plan_action(::Actions::Katello::Repository::CapsuleSync, repository)
|
20
21
|
end
|
21
22
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Actions
|
2
|
+
module Katello
|
3
|
+
module GpgKey
|
4
|
+
class Update < Actions::EntryAction
|
5
|
+
def plan(gpg_key, gpg_key_params)
|
6
|
+
action_subject gpg_key
|
7
|
+
gpg_key.update_attributes!(gpg_key_params)
|
8
|
+
gpg_key.repositories.each do |repository|
|
9
|
+
if repository.content_type == ::Katello::Repository::DEB_TYPE
|
10
|
+
plan_action(::Actions::Katello::Repository::RefreshRepository, repository)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -22,6 +22,7 @@ module Actions
|
|
22
22
|
type: 'erratum',
|
23
23
|
args: errata_ids)
|
24
24
|
end
|
25
|
+
plan_self(:host_id => host.id)
|
25
26
|
end
|
26
27
|
|
27
28
|
def humanized_name
|
@@ -39,6 +40,11 @@ module Actions
|
|
39
40
|
def presenter
|
40
41
|
Helpers::Presenter::Delegated.new(self, planned_actions(Pulp::Consumer::ContentInstall))
|
41
42
|
end
|
43
|
+
|
44
|
+
def finalize
|
45
|
+
host = ::Host.find_by(:id => input[:host_id])
|
46
|
+
host.update(audit_comment: _("Installation of errata requested: %{errata}") % {errata: input[:errata].join(", ")})
|
47
|
+
end
|
42
48
|
end
|
43
49
|
end
|
44
50
|
end
|
@@ -2,8 +2,6 @@ module Actions
|
|
2
2
|
module Katello
|
3
3
|
module Host
|
4
4
|
class GenerateApplicability < Actions::Base
|
5
|
-
middleware.use Actions::Middleware::KeepCurrentUser
|
6
|
-
|
7
5
|
def plan(hosts, use_queue = true)
|
8
6
|
uuids = hosts.map { |host| host.content_facet.try(:uuid) }.compact
|
9
7
|
unless uuids.empty?
|
@@ -30,9 +30,9 @@ module Actions
|
|
30
30
|
@organizations = ::Organization.where(label: hypervisors_field(:organization_label)).map { |org| [org.label, org] }.to_h
|
31
31
|
@hosts = {}
|
32
32
|
|
33
|
-
load_hosts_by_uuid
|
34
|
-
load_hosts_by_duplicate_name
|
35
|
-
create_missing_hosts
|
33
|
+
@hosts.merge!(load_hosts_by_uuid)
|
34
|
+
@hosts.merge!(load_hosts_by_duplicate_name)
|
35
|
+
@hosts.merge!(create_missing_hosts)
|
36
36
|
|
37
37
|
candlepin_data = ::Katello::Resources::Candlepin::Consumer.get_all(@hosts.keys)
|
38
38
|
@candlepin_attributes = candlepin_data.map { |consumer| [consumer[:uuid], consumer] }.to_h
|
@@ -40,7 +40,10 @@ module Actions
|
|
40
40
|
|
41
41
|
def load_hosts_by_uuid
|
42
42
|
hosts_by_uuid = ::Host.eager_load(:subscription_facet).where(katello_subscription_facets: { uuid: hypervisors_field(:uuid) })
|
43
|
-
|
43
|
+
hosts_by_uuid.each do |host|
|
44
|
+
validate_host_organization(host, host.organization.try(:id))
|
45
|
+
end
|
46
|
+
hosts_by_uuid.map { |host| [host.subscription_facet.uuid, host] }.to_h
|
44
47
|
end
|
45
48
|
|
46
49
|
def load_hosts_by_duplicate_name
|
@@ -52,16 +55,18 @@ module Actions
|
|
52
55
|
validate_host_organization(host, duplicate_name_orgs[host.name].try(:id))
|
53
56
|
end
|
54
57
|
|
55
|
-
|
58
|
+
hosts_by_dup_name.map { |host| [duplicate_names[host.name], host] }.to_h
|
56
59
|
end
|
57
60
|
|
58
61
|
def create_missing_hosts
|
59
62
|
# remaining hypervisors
|
63
|
+
new_hypervisors = {}
|
60
64
|
@hypervisors.each do |hypervisor|
|
61
65
|
next if @hosts.key?(hypervisor[:uuid])
|
62
66
|
duplicate_name, org = duplicate_name(hypervisor)
|
63
|
-
|
67
|
+
new_hypervisors[hypervisor[:uuid]] = create_host_for_hypervisor(duplicate_name, org)
|
64
68
|
end
|
69
|
+
new_hypervisors
|
65
70
|
end
|
66
71
|
|
67
72
|
def generate_duplicates_list
|
@@ -13,6 +13,7 @@ module Actions
|
|
13
13
|
consumer_uuid: host.content_facet.uuid,
|
14
14
|
type: 'rpm',
|
15
15
|
args: packages)
|
16
|
+
plan_self(:host_id => host.id)
|
16
17
|
end
|
17
18
|
|
18
19
|
def humanized_name
|
@@ -30,6 +31,11 @@ module Actions
|
|
30
31
|
def rescue_strategy
|
31
32
|
Dynflow::Action::Rescue::Skip
|
32
33
|
end
|
34
|
+
|
35
|
+
def finalize
|
36
|
+
host = ::Host.find_by(:id => input[:host_id])
|
37
|
+
host.update(audit_comment: _("Installation of package(s) requested: %{packages}") % {packages: input[:packages].join(", ")})
|
38
|
+
end
|
33
39
|
end
|
34
40
|
end
|
35
41
|
end
|
@@ -11,6 +11,7 @@ module Actions
|
|
11
11
|
consumer_uuid: host.content_facet.uuid,
|
12
12
|
type: 'rpm',
|
13
13
|
args: packages)
|
14
|
+
plan_self(:host_id => host.id)
|
14
15
|
end
|
15
16
|
|
16
17
|
def humanized_name
|
@@ -43,6 +44,11 @@ module Actions
|
|
43
44
|
def rescue_strategy
|
44
45
|
Dynflow::Action::Rescue::Skip
|
45
46
|
end
|
47
|
+
|
48
|
+
def finalize
|
49
|
+
host = ::Host.find_by(:id => input[:host_id])
|
50
|
+
host.update(audit_comment: _("Removal of package(s) requested: %{packages}") % {packages: input[:packages].join(", ")})
|
51
|
+
end
|
46
52
|
end
|
47
53
|
end
|
48
54
|
end
|
@@ -13,6 +13,7 @@ module Actions
|
|
13
13
|
consumer_uuid: host.content_facet.uuid,
|
14
14
|
type: 'rpm',
|
15
15
|
args: packages)
|
16
|
+
plan_self(:host_id => host.id)
|
16
17
|
end
|
17
18
|
|
18
19
|
def humanized_name
|
@@ -20,7 +21,7 @@ module Actions
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def humanized_input
|
23
|
-
[input[:packages].join(", ")] + super
|
24
|
+
[(input[:packages] && input[:packages].join(", ") || "all packages")] + super
|
24
25
|
end
|
25
26
|
|
26
27
|
def presenter
|
@@ -30,6 +31,11 @@ module Actions
|
|
30
31
|
def rescue_strategy
|
31
32
|
Dynflow::Action::Rescue::Skip
|
32
33
|
end
|
34
|
+
|
35
|
+
def finalize
|
36
|
+
host = ::Host.find_by(:id => input[:host_id])
|
37
|
+
host.update(audit_comment: _("Update of package(s) requested: %{packages}") % {packages: input[:packages].join(", ")})
|
38
|
+
end
|
33
39
|
end
|
34
40
|
end
|
35
41
|
end
|
@@ -13,6 +13,7 @@ module Actions
|
|
13
13
|
consumer_uuid: host.content_facet.uuid,
|
14
14
|
type: 'package_group',
|
15
15
|
args: groups)
|
16
|
+
plan_self(:host_id => host.id)
|
16
17
|
end
|
17
18
|
|
18
19
|
def humanized_name
|
@@ -30,6 +31,11 @@ module Actions
|
|
30
31
|
def rescue_strategy
|
31
32
|
Dynflow::Action::Rescue::Skip
|
32
33
|
end
|
34
|
+
|
35
|
+
def finalize
|
36
|
+
host = ::Host.find_by(:id => input[:host_id])
|
37
|
+
host.update(audit_comment: _("Installation of package group(s) requested: %{groups}") % {groups: input[:groups].join(", ")})
|
38
|
+
end
|
33
39
|
end
|
34
40
|
end
|
35
41
|
end
|