def import_single_row(data)
org_id = data['org_id'].to_i
repo_ids, clone_parents, packages, has_local = load_custom_channel_info org_id, data['channel_id'].to_i
repo_ids.map! { |id| get_translated_id :repositories, id.to_i }
if has_local
local_repo = add_local_repo data
sync_repo local_repo unless repo_synced? local_repo
repo_ids.push local_repo['id'].to_i
end
clone_parents.collect { |x| Integer(x) } .each do |parent_id|
begin
begin
parent_cv = get_cache(:redhat_content_views)[get_translated_id :redhat_content_views, [org_id, parent_id]]
rescue
parent_cv = get_cache(:content_views)[get_translated_id :content_views, parent_id]
end
repo_ids += parent_cv['repositories'].collect { |x| x['id'] }
rescue HammerCLIImport::MissingObjectError
error "No such {redhat_,}content_view: #{parent_id}"
end
end
repo_ids.collect { |id| lookup_entity :repositories, id } .each do |repo|
unless repo_synced? repo
warn "Repository #{repo['label']} is not (fully) synchronized. Retry once synchronization has completed."
report_summary :skipped, :content_views
return
end
end
content_view = mk_content_view_hash data, repo_ids
cw = create_entity :content_views, content_view, data['channel_id'].to_i
add_repo_filters cw['id'], packages if option_filter?
publish_content_view cw['id'] if newer_repositories cw
end