Class: Actions::Katello::ContentView::AddRollingRepoClone

Inherits:
EntryAction
  • Object
show all
Defined in:
app/lib/actions/katello/content_view/add_rolling_repo_clone.rb

Instance Method Summary collapse

Instance Method Details

#plan(content_view, repository_ids, environment_ids) ⇒ Object



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

def plan(content_view, repository_ids, environment_ids)
  clone_ids = []
  environments = ::Katello::KTEnvironment.where(id: environment_ids)
  repositories = ::Katello::Repository.where(id: repository_ids)

  environments.each do |environment|
    concurrence do
      repositories.each do |repository|
        sequence do
          clone = content_view.get_repo_clone(environment, repository).first
          if clone.nil?
            clone = repository.build_clone(content_view: content_view, environment: environment)
            clone.save!
          end
          plan_action(RefreshRollingRepo, clone, false)

          view_env_cp_id = content_view.content_view_environment(environment).cp_id
          content_id = repository.content_id
          plan_action(Actions::Candlepin::Environment::AddContentToEnvironment, :view_env_cp_id => view_env_cp_id, :content_id => content_id)
          clone_ids << clone.id
        end
      end
    end
  end
end