def create name, options = {}
if listeners = options[:listeners]
options[:listeners] = [listeners].flatten.map do |listener|
format_listener_opts(listener)
end
end
if zones = options[:availability_zones]
options[:availability_zones] = [zones].flatten.map do |zone|
zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone
end
end
if groups = options[:security_groups]
options[:security_groups] = [groups].flatten.map do |group|
group.is_a?(EC2::SecurityGroup) ? group.id : group
end
end
if subnets = options[:subnets]
options[:subnets] = [subnets].flatten.map do |subnet|
subnet.is_a?(EC2::Subnet) ? subnet.id : subnet
end
end
options[:load_balancer_name] = name.to_s
resp = client.create_load_balancer(options)
LoadBalancer.new(name, :dns_name => resp[:dns_name], :config => config)
end