Sha256: ee4d9fa47718b549e884bd54afbe000de6d48f0b81031edba169bc99a5d82747

Contents?: true

Size: 1.92 KB

Versions: 24

Compression:

Stored size: 1.92 KB

Contents

module Actions
  module Katello
    module ActivationKey
      class Update < Actions::EntryAction
        def plan(activation_key, activation_key_params)
          # need to check if candlepin attributes have changed prior to updating attributes
          update_candlepin = update_candlepin?(activation_key, activation_key_params)
          action_subject activation_key
          activation_key.update_attributes!(activation_key_params)
          if update_candlepin
            plan_action(::Actions::Candlepin::ActivationKey::Update,
                        cp_id: activation_key.cp_id,
                        release_version: activation_key.release_version,
                        service_level: activation_key.service_level,
                        auto_attach: activation_key.auto_attach,
                        purpose_role: activation_key.purpose_role,
                        purpose_usage: activation_key.purpose_usage,
                        purpose_addons: activation_key.purpose_addons.pluck(:name))
          end
        end

        def update_candlepin?(activation_key, activation_key_params)
          cp_changed?(activation_key.auto_attach, activation_key_params[:auto_attach]) ||
          cp_changed?(activation_key.service_level, activation_key_params[:service_level]) ||
          cp_changed?(activation_key.release_version, activation_key_params[:release_version]) ||
          cp_changed?(activation_key.purpose_role, activation_key_params[:purpose_role]) ||
          cp_changed?(activation_key.purpose_usage, activation_key_params[:purpose_usage]) ||
          cp_changed?(activation_key.purpose_addon_ids, activation_key_params[:purpose_addon_ids])
        end

        def cp_changed?(activation_key, activation_key_params)
          !activation_key_params.nil? && activation_key.to_s != activation_key_params.to_s
        end

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

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
katello-3.15.3.1 app/lib/actions/katello/activation_key/update.rb
katello-3.15.3 app/lib/actions/katello/activation_key/update.rb
katello-3.15.2 app/lib/actions/katello/activation_key/update.rb
katello-3.15.1.1 app/lib/actions/katello/activation_key/update.rb
katello-3.15.1 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.1 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.rc2 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.rc1.3 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.rc1.2 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.rc1.1 app/lib/actions/katello/activation_key/update.rb
katello-3.15.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-3.14.1 app/lib/actions/katello/activation_key/update.rb
katello-3.13.4 app/lib/actions/katello/activation_key/update.rb
katello-3.14.0 app/lib/actions/katello/activation_key/update.rb
katello-3.13.3 app/lib/actions/katello/activation_key/update.rb
katello-3.14.0.rc2 app/lib/actions/katello/activation_key/update.rb
katello-3.13.2 app/lib/actions/katello/activation_key/update.rb
katello-3.14.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-3.13.1 app/lib/actions/katello/activation_key/update.rb