1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Add support for internal ELBs in VPC

This commit is contained in:
Aaron Bell 2012-06-12 16:18:20 -07:00
parent 27d4dc348a
commit 3344488d11
3 changed files with 5 additions and 2 deletions

View file

@ -148,7 +148,7 @@ module Fog
:host => @host,
:path => @path,
:port => @port,
:version => '2011-11-15'
:version => '2012-06-01'
}
)

View file

@ -16,6 +16,7 @@ module Fog
attribute :hosted_zone_name_id, :aliases => 'CanonicalHostedZoneNameID'
attribute :subnet_ids, :aliases => 'Subnets'
attribute :security_groups, :aliases => 'SecurityGroups'
attribute :scheme, :aliases => 'Scheme'
attribute :vpc_id, :aliases => 'VPCId'
def initialize(attributes={})
@ -144,7 +145,7 @@ module Fog
#requires :availability_zones
if (availability_zones || subnet_ids)
connection.create_load_balancer(availability_zones, id, listeners.map{|l| l.to_params}) if availability_zones
connection.create_load_balancer(nil, id, listeners.map{|l| l.to_params}, {:subnet_ids => subnet_ids, :security_groups => security_groups}) if subnet_ids && !availability_zones
connection.create_load_balancer(nil, id, listeners.map{|l| l.to_params}, scheme, {:subnet_ids => subnet_ids, :security_groups => security_groups}) if subnet_ids && !availability_zones
else
throw Fog::Errors::Error.new("No availability zones or subnet ids specified")
end

View file

@ -26,6 +26,7 @@ module Fog
def create_load_balancer(availability_zones, lb_name, listeners, options = {})
params = Fog::AWS.indexed_param('AvailabilityZones.member', [*availability_zones])
params.merge!(Fog::AWS.indexed_param('Subnets.member.%d', options[:subnet_ids]))
params.merge!(Fog::AWS.serialize_keys('Scheme', options[:scheme]))
params.merge!(Fog::AWS.indexed_param('SecurityGroups.member.%d', options[:security_groups]))
listener_protocol = []
@ -75,6 +76,7 @@ module Fog
self.data[:load_balancers][lb_name] = {
'AvailabilityZones' => availability_zones,
'Subnets' => options[:subnet_ids],
'Scheme' => options[:scheme],
'SecurityGroups' => options[:security_groups],
'CanonicalHostedZoneName' => '',
'CanonicalHostedZoneNameID' => '',