Sha256: d71566343c3d4fb724b14ca8108ba9b0bde6b33c8698316da1f8c7f4915a46dd

Contents?: true

Size: 1.88 KB

Versions: 4

Compression:

Stored size: 1.88 KB

Contents

module Actions
  module Katello
    module Repository
      class Update < Actions::EntryAction
        middleware.use Actions::Middleware::KeepCurrentUser

        def plan(root, repo_params)
          repository = root.library_instance
          action_subject root.library_instance

          repo_params[:url] = nil if repo_params[:url] == ''
          root.update_attributes!(repo_params)

          if update_content?(repository)
            content = root.content

            plan_action(::Actions::Candlepin::Product::ContentUpdate,
                        :owner => repository.organization.label,
                        :content_id => root.content_id,
                        :name => content.name,
                        :content_url => root.custom_content_path,
                        :gpg_key_url => repository.yum_gpg_key_url,
                        :label => content.label,
                        :type => root.content_type,
                        :arches => root.arch == "noarch" ? nil : root.arch)

            content.update_attributes!(name: content.name,
                                       content_url: root.custom_content_path,
                                       content_type: repository.content_type,
                                       label: content.label,
                                       gpg_url: repository.yum_gpg_key_url)
          end

          plan_action(::Actions::Pulp::Repository::Refresh, repository) if root.pulp_update_needed?
          plan_self(:repository_id => root.library_instance.id)
        end

        def run
          repository = ::Katello::Repository.find(input[:repository_id])
          ForemanTasks.async_task(Katello::Repository::MetadataGenerate, repository)
        end

        private

        def update_content?(repository)
          repository.library_instance? && !repository.product.redhat?
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
katello-3.9.1 app/lib/actions/katello/repository/update.rb
katello-3.9.0 app/lib/actions/katello/repository/update.rb
katello-3.9.0.rc2 app/lib/actions/katello/repository/update.rb
katello-3.9.0.rc1 app/lib/actions/katello/repository/update.rb