app/lib/actions/katello/host/remove_subscriptions.rb in katello-3.1.0.1 vs app/lib/actions/katello/host/remove_subscriptions.rb in katello-3.2.0.rc1

- old
+ new

@@ -2,17 +2,30 @@ module Katello module Host class RemoveSubscriptions < Actions::EntryAction middleware.use Actions::Middleware::KeepCurrentUser - def plan(host, entitlements) + def plan(host, pools_with_quantities_params) action_subject(host) + pools_with_quantities = pools_with_quantities_params.map do |pool_with_quantity| + ::Katello::PoolWithQuantities.fetch(pool_with_quantity) + end + cp_consumer = host.subscription_facet.candlepin_consumer + entitlements = pools_with_quantities.map do |pool_with_quantities| + cp_consumer.filter_entitlements(pool_with_quantities.pool.cp_id, pool_with_quantities.quantities) + end - entitlements.each do |entitlement| + entitlements.flatten.each do |entitlement| plan_action(::Actions::Candlepin::Consumer::RemoveSubscription, :uuid => host.subscription_facet.uuid, :entitlement_id => entitlement['id'], :pool_id => entitlement['pool']['id']) plan_self(:host_name => host.name) end + end + + def finalize + ::Katello::Pool.where(:id => input[:pool_ids]).each(&:import_data) + host = ::Host.find_by(:id => input[:managed][:id]) + host.subscription_facet.update_subscription_status end def rescue_strategy Dynflow::Action::Rescue::Skip end