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