Class: Actions::Pulp::Repository::DistributorPublish

Inherits:
AbstractAsyncTask show all
Defined in:
app/lib/actions/pulp/repository/distributor_publish.rb

Constant Summary

Constants inherited from AbstractAsyncTask

AbstractAsyncTask::FINISHED_STATES

Instance Method Summary collapse

Methods inherited from AbstractAsyncTask

#cancel, #cancel!, #done?, #external_task, #humanized_state, #rescue_external_task, #run

Methods inherited from Abstract

#pulp_extensions, #pulp_resources

Instance Method Details

#distributor_configObject



27
28
29
30
31
32
33
34
35
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 27

def distributor_config
  # the check for YumCloneDistributor is here for backwards compatibility
  if input[:distributor_type_id] == Runcible::Models::YumCloneDistributor.type_id
    { override_config: { source_repo_id: input[:source_pulp_id],
                         source_distributor_id: source_distributor_id} }
  else
    { override_config: input[:override_config] }
  end
end

#distributor_id(pulp_id, distributor_type_id) ⇒ Object



20
21
22
23
24
25
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 20

def distributor_id(pulp_id, distributor_type_id)
  distributor = repo(pulp_id)["distributors"].find do |dist|
    dist["distributor_type_id"] == distributor_type_id
  end
  distributor['id']
end

#humanized_nameObject



45
46
47
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 45

def humanized_name
  _("Repository metadata publish")
end

#invoke_external_taskObject



13
14
15
16
17
18
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 13

def invoke_external_task
  pulp_extensions.repository.
      publish(input[:pulp_id],
              distributor_id(input[:pulp_id], input[:distributor_type_id]),
              distributor_config)
end

#repo(pulp_id) ⇒ Object



41
42
43
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 41

def repo(pulp_id)
  pulp_extensions.repository.retrieve_with_details(pulp_id)
end

#source_distributor_idObject



37
38
39
# File 'app/lib/actions/pulp/repository/distributor_publish.rb', line 37

def source_distributor_id
  distributor_id(input[:source_pulp_id], Runcible::Models::YumDistributor.type_id)
end