def create_subnets_from_csv(line)
line[DOMAINS] = (CSV.parse_line(line[DOMAINS]) || []).collect do |domain|
foreman_domain(:name => domain)
end
line[COUNT].to_i.times do |number|
name = namify(line[NAME], number)
if !@existing.include? name
print "Creating subnet '#{name}'..." if option_verbose?
id = @api.resource(:subnets)\
.call(:create, {
'subnet' => {
'name' => name
}
})['id']
else
print "Updating subnet '#{name}'..." if option_verbose?
id = @api.resource(:subnets)\
.call(:update, {
'id' => @existing[name],
'subnet' => {
'name' => name,
'network' => line[NETWORK],
'mask' => line[NETWORK_MASK],
'from' => line[NETWORK_FROM],
'to' => line[NETWORK_TO],
'domain_ids' => line[DOMAINS]
}
})['id']
end
associate_organizations(id, line[ORGANIZATIONS], 'subnet')
associate_locations(id, line[LOCATIONS], 'subnet')
print "done\n" if option_verbose?
end
rescue RuntimeError => e
raise "#{e}\n #{line}"
end