Sha256: 1220b28451c4cb192d9358ad5a284bb3d8f2e5931b0ab82214a40b394399cc40

Contents?: true

Size: 1.66 KB

Versions: 3

Compression:

Stored size: 1.66 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, :facts => consumer_params.try(:[], :facts), :host_id => host.id)

          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
              host.subscription_facet.save!
              plan_action(::Actions::Candlepin::Consumer::Update, host.subscription_facet.uuid, consumer_params)
            end

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

        def run
          host = ::Host.find(input[:host_id])
          unless input[:facts].blank?
            ::Katello::Host::SubscriptionFacet.update_facts(host, input[:facts])
            input[:facts] = 'TRIMMED'
          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.3.2 app/lib/actions/katello/host/update.rb
katello-3.3.1.1 app/lib/actions/katello/host/update.rb
katello-3.3.1 app/lib/actions/katello/host/update.rb