Sha256: ad25526306eb6bd1b2909e006b7199e9cfa7974db406be2a8ed44fa3ef9ff3cd

Contents?: true

Size: 1.91 KB

Versions: 136

Compression:

Stored size: 1.91 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!(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

136 entries across 136 versions & 1 rubygems

Version Path
katello-4.14.2 app/lib/actions/katello/activation_key/update.rb
katello-4.15.0 app/lib/actions/katello/activation_key/update.rb
katello-4.15.0.rc2 app/lib/actions/katello/activation_key/update.rb
katello-4.15.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-4.14.1 app/lib/actions/katello/activation_key/update.rb
katello-4.14.0 app/lib/actions/katello/activation_key/update.rb
katello-4.14.0.rc3 app/lib/actions/katello/activation_key/update.rb
katello-4.14.0.rc2 app/lib/actions/katello/activation_key/update.rb
katello-4.14.0.rc1.1 app/lib/actions/katello/activation_key/update.rb
katello-4.14.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-4.13.1 app/lib/actions/katello/activation_key/update.rb
katello-4.13.0 app/lib/actions/katello/activation_key/update.rb
katello-4.12.1 app/lib/actions/katello/activation_key/update.rb
katello-4.13.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-4.12.0 app/lib/actions/katello/activation_key/update.rb
katello-4.12.0.rc3 app/lib/actions/katello/activation_key/update.rb
katello-4.12.0.rc2 app/lib/actions/katello/activation_key/update.rb
katello-4.12.0.rc1 app/lib/actions/katello/activation_key/update.rb
katello-4.11.1 app/lib/actions/katello/activation_key/update.rb
katello-4.11.0 app/lib/actions/katello/activation_key/update.rb