Class: Actions::Katello::Repository::CloneContents

Inherits:
Base
  • Object
show all
Includes:
CheckMatchingContent
Defined in:
app/lib/actions/katello/repository/clone_contents.rb

Instance Method Summary collapse

Methods included from CheckMatchingContent

#check_matching_content

Instance Method Details

#finalizeObject



48
49
50
51
52
# File 'app/lib/actions/katello/repository/clone_contents.rb', line 48

def finalize
  repository = ::Katello::Repository.find(input[:target_repo_id])
  source_checksum_type = input[:source_checksum_type]
  repository.update!(saved_checksum_type: source_checksum_type) if (repository && source_checksum_type)
end

#metadata_generate(source_repositories, new_repository, filters, rpm_filenames, matching_content) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/lib/actions/katello/repository/clone_contents.rb', line 32

def (source_repositories, new_repository, filters, rpm_filenames, matching_content)
   = {}

  [:matching_content] = matching_content

  if source_repositories.count == 1 && filters.empty? && rpm_filenames.empty?
    [:source_repository] = source_repositories.first
  end

  plan_action(Katello::Repository::MetadataGenerate, new_repository, )
  unless source_repositories.first.saved_checksum_type == new_repository.saved_checksum_type
    plan_self(:source_checksum_type => source_repositories.first.saved_checksum_type,
              :target_repo_id => new_repository.id)
  end
end

#plan(source_repositories, new_repository, options) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/lib/actions/katello/repository/clone_contents.rb', line 7

def plan(source_repositories, new_repository, options)
  filters = options.fetch(:filters, nil)
  rpm_filenames = options.fetch(:rpm_filenames, nil)
   = options.fetch(:generate_metadata, true)
  copy_contents = options.fetch(:copy_contents, true)
  solve_dependencies = options.fetch(:solve_dependencies, false)

  sequence do
    if copy_contents
      plan_action(Pulp3::Orchestration::Repository::CopyAllUnits,
                  new_repository,
                  SmartProxy.pulp_primary,
                  source_repositories,
                  filters: filters, rpm_filenames: rpm_filenames, solve_dependencies: solve_dependencies)
    end

    matching_content = check_matching_content(new_repository, source_repositories)
    (source_repositories, new_repository, filters, rpm_filenames, matching_content) if 

    index_options = {id: new_repository.id, force_index: true}
    index_options[:source_repository_id] = source_repositories.first.id if source_repositories.count == 1 && filters.empty? && rpm_filenames.nil?
    plan_action(Katello::Repository::IndexContent, index_options)
  end
end