def create_load_balancer(load_balancer_name, availability_zones=[], listeners=[])
request_hash = { 'LoadBalancerName' => load_balancer_name }
request_hash.merge!( amazonize_list("AvailabilityZones.member", availability_zones) )
if listeners.blank?
listeners = { :protocol => :http,
:load_balancer_port => 80,
:instance_port => 80 }
end
listeners = [listeners] unless listeners.is_a?(Array)
request_hash.merge!( amazonize_list( ['Listeners.member.?.Protocol',
'Listeners.member.?.LoadBalancerPort',
'Listeners.member.?.InstancePort'],
listeners.map{|i| [ (i[:protocol] || 'HTTP').to_s.upcase,
(i[:load_balancer_port] || 80),
(i[:instance_port] || 80) ] } ) )
link = generate_request("CreateLoadBalancer", request_hash)
request_info(link, CreateLoadBalancerParser.new(:logger => @logger))
end