def create_installation_medias_from_csv(line)
line[COUNT].to_i.times do |number|
name = namify(line[NAME], number)
if !@existing.include? name
print "Creating installation_media '#{name}'..." if option_verbose?
installation_media_id = @api.resource(:media).call(:create, {
'name' => name
})['id']
else
print "Updating installation_media '#{name}'..." if option_verbose?
installation_media_id = @api.resource(:media).call(:update, {
'id' => @existing[name],
'name' => name
})['id']
end
installation_medias ||= {}
CSV.parse_line(line[ORGANIZATIONS]).each do |organization|
organization_id = foreman_organization(:name => organization)
if installation_medias[organization].nil?
installation_medias[organization] = @api.resource(:organizations).call(:show, {'id' => organization_id})['installation_medias'].collect do |installation_media|
installation_media['id']
end
end
installation_medias[organization] += [installation_media_id] if !installation_medias[organization].include? installation_media_id
@api.resource(:organizations).call(:update, {
'id' => organization_id,
'organization' => {
'installation_media_ids' => installation_medias[organization]
}
})
end
print "done\n" if option_verbose?
end
rescue RuntimeError => e
raise "#{e}\n #{line}"
end