Sha256: bfed2f795f478ed7d237c8fe5c30c703d9f1b9643a0d76b0790c8e9173f5fc19

Contents?: true

Size: 1.7 KB

Versions: 7

Compression:

Stored size: 1.7 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
              unless consumer_params
                consumer_params = host.subscription_facet.consumer_attributes
              end

              host.subscription_facet.update_from_consumer_attributes(consumer_params)
              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
          User.as_anonymous_admin do
            host = ::Host.find(input[:host_id])
            unless input[:facts].blank?
              ::Katello::Host::SubscriptionFacet.update_facts(host, input[:facts])
              input[:facts] = 'TRIMMED'
            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

7 entries across 7 versions & 1 rubygems

Version Path
katello-3.4.2 app/lib/actions/katello/host/update.rb
katello-3.4.1 app/lib/actions/katello/host/update.rb
katello-3.4.0.2 app/lib/actions/katello/host/update.rb
katello-3.4.0.1 app/lib/actions/katello/host/update.rb
katello-3.4.0 app/lib/actions/katello/host/update.rb
katello-3.4.0.rc2 app/lib/actions/katello/host/update.rb
katello-3.4.0.rc1 app/lib/actions/katello/host/update.rb