Sha256: 732daa8929bdf49a394b695bd57faaffb7f8c2beba104eca7aca329af0463ccd

Contents?: true

Size: 1.78 KB

Versions: 3

Compression:

Stored size: 1.78 KB

Contents

module Actions
  module Katello
    module Host
      class Update < Actions::EntryAction
        middleware.use ::Actions::Middleware::RemoteAction

        def plan(host, consumer_params = nil)
          action_subject host
          plan_self(:hostname => host.name)

          sequence do
            host.content_facet.save! if host.content_facet

            if host.subscription_facet
              if consumer_params
                host.subscription_facet.update_from_consumer_attributes(consumer_params)
              else
                consumer_params = host.subscription_facet.consumer_attributes
              end
              ::Katello::Host::SubscriptionFacet.update_facts(::Host.find(host.id), consumer_params[:facts]) unless consumer_params[:facts].blank?
              host.subscription_facet.save!
              plan_action(::Actions::Candlepin::Consumer::Update, host.subscription_facet.uuid, consumer_params)
            end

            if host.content_facet && host.content_host
              host.content_host.content_view = host.content_facet.try(:content_view)
              host.content_host.environment = host.content_facet.try(:lifecycle_environment)
              host.content_host.save!
            end

            if host.subscription_facet.try(:autoheal)
              plan_action(::Actions::Candlepin::Consumer::AutoAttachSubscriptions, :uuid => host.subscription_facet.uuid)
            end
          end
        end

        def resource_locks
          :update
        end

        def rescue_strategy
          Dynflow::Action::Rescue::Skip
        end

        def humanized_name
          if input.try(:[], :hostname)
            _('Update for host %s') % input[:hostname]
          else
            _('Update for host')
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
katello-3.1.0.1 app/lib/actions/katello/host/update.rb
katello-3.1.0 app/lib/actions/katello/host/update.rb
katello-3.1.0.rc2.1 app/lib/actions/katello/host/update.rb