Sha256: c670398bbccf261baa7f1846e24531576618401e85e92da2a3da27542d9c3783

Contents?: true

Size: 1.93 KB

Versions: 1

Compression:

Stored size: 1.93 KB

Contents

#
# Copyright 2014 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.

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)
          activation_key.disable_auto_reindex!
          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)
          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])
        end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katello-2.2.2 app/lib/actions/katello/activation_key/update.rb