Class: Actions::Pulp3::ContentView::DeleteRepositoryReferences

Inherits:
AbstractAsyncTask show all
Defined in:
app/lib/actions/pulp3/content_view/delete_repository_references.rb

Instance Method Summary collapse

Methods inherited from AbstractAsyncTask

#cancel, #cancel!, #combined_tasks, #done?, #external_task, #humanized_state, #new_or_existing_objects, #pulp_tasks, #rescue_external_task, #run, #task_groups

Methods inherited from Abstract

#smart_proxy

Instance Method Details

#delete_href?(href, content_view) ⇒ Boolean

migrated composites may have the same RepositoryReference as their component

Returns:

  • (Boolean)


29
30
31
# File 'app/lib/actions/pulp3/content_view/delete_repository_references.rb', line 29

def delete_href?(href, content_view)
  ::Katello::Pulp3::RepositoryReference.where(:repository_href => href).where.not(:content_view_id => content_view.id).empty?
end

#invoke_external_taskObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/lib/actions/pulp3/content_view/delete_repository_references.rb', line 11

def invoke_external_task
  tasks = []
  content_view = ::Katello::ContentView.find(input[:content_view_id])
  to_delete = content_view.repository_references.select do |repository_reference|
    repo = repository_reference.root_repository.library_instance
    if delete_href?(repository_reference.repository_href, content_view)
      tasks << repo.backend_service(smart_proxy).delete_repository(repository_reference)
      true
    else
      false
    end
  end
  to_delete.each(&:destroy)

  output[:pulp_tasks] = tasks
end

#plan(content_view, smart_proxy) ⇒ Object



5
6
7
8
9
# File 'app/lib/actions/pulp3/content_view/delete_repository_references.rb', line 5

def plan(content_view, smart_proxy)
  if content_view.repository_references.any?
    plan_self(:content_view_id => content_view.id, :smart_proxy_id => smart_proxy.id)
  end
end