Sha256: ef745d14be5dfd51062bbe0cf7e6d3a54a5022fbb71f7d34b37704cefa88e185

Contents?: true

Size: 1.91 KB

Versions: 21

Compression:

Stored size: 1.91 KB

Contents

module Actions
  module Pulp3
    module Orchestration
      module Repository
        class GenerateMetadata < Pulp3::Abstract
          def plan(repository, smart_proxy, options = {})
            force_publication = options.fetch(:force_publication, repository.publication_href.nil?)

            options[:contents_changed] = (options && options.key?(:contents_changed)) ? options[:contents_changed] : true
            publication_content_type = !::Katello::RepositoryTypeManager.find(repository.content_type).pulp3_skip_publication

            sequence do
              if options[:source_repository] && publication_content_type
                plan_self(source_repository_id: options[:source_repository].id, target_repository_id: repository.id, smart_proxy_id: smart_proxy.id)
              elsif publication_content_type && (force_publication || repository.publication_href.nil? || !repository.using_mirrored_metadata?)
                plan_action(Actions::Pulp3::Repository::CreatePublication, repository, smart_proxy, options)
              end
              plan_action(Actions::Pulp3::ContentGuard::Refresh, smart_proxy) unless repository.unprotected
              plan_action(Actions::Pulp3::Repository::RefreshDistribution, repository, smart_proxy, :contents_changed => options[:contents_changed]) if repository.environment
            end
          end

          def run
            #we don't have to actually generate a publication, we can reuse the old one
            target_repo = ::Katello::Repository.find(input[:target_repository_id])
            source_repo = ::Katello::Repository.find(input[:source_repository_id])
            if (target_repo.publication_href != source_repo.publication_href && smart_proxy.pulp_primary?)
              target_repo.clear_smart_proxy_sync_histories
            end
            target_repo.update!(publication_href: source_repo.publication_href)
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
katello-4.4.2.2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.2.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.5.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.5.0 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.5.0.rc2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.5.0.rc1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.0.2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.0.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.0 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.0.rc2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.4.0.rc1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.2.2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.0 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.0.rc4 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.0.rc3 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.0.rc2.1 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb
katello-4.3.0.rc2 app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb