Initial implementation of elb scheme

This commit is contained in:
Chris Henry 2015-12-02 17:46:24 -05:00
parent 1bca6f2849
commit 6017a481cf
2 changed files with 9 additions and 7 deletions

View File

@ -44,13 +44,14 @@ class FakeBackend(object):
class FakeLoadBalancer(object): class FakeLoadBalancer(object):
def __init__(self, name, zones, ports): def __init__(self, name, zones, ports, scheme='internet-facing',):
self.name = name self.name = name
self.health_check = None self.health_check = None
self.instance_ids = [] self.instance_ids = []
self.zones = zones self.zones = zones
self.listeners = [] self.listeners = []
self.backends = [] self.backends = []
self.scheme = scheme
self.attributes = FakeLoadBalancer.get_default_attributes() self.attributes = FakeLoadBalancer.get_default_attributes()
self.policies = Policies() self.policies = Policies()
self.policies.other_policies = [] self.policies.other_policies = []
@ -135,8 +136,10 @@ class ELBBackend(BaseBackend):
def __init__(self): def __init__(self):
self.load_balancers = {} self.load_balancers = {}
def create_load_balancer(self, name, zones, ports): def create_load_balancer(self, name, zones, ports, scheme='internet-facing'):
new_load_balancer = FakeLoadBalancer(name=name, zones=zones, ports=ports) print scheme
new_load_balancer = FakeLoadBalancer(name=name, zones=zones, ports=ports, scheme=scheme)
self.load_balancers[name] = new_load_balancer self.load_balancers[name] = new_load_balancer
return new_load_balancer return new_load_balancer

View File

@ -21,17 +21,16 @@ class ELBResponse(BaseResponse):
return elb_backends[self.region] return elb_backends[self.region]
def create_load_balancer(self): def create_load_balancer(self):
"""
u'Scheme': [u'internet-facing'],
"""
load_balancer_name = self._get_param('LoadBalancerName') load_balancer_name = self._get_param('LoadBalancerName')
availability_zones = self._get_multi_param("AvailabilityZones.member") availability_zones = self._get_multi_param("AvailabilityZones.member")
ports = self._get_list_prefix("Listeners.member") ports = self._get_list_prefix("Listeners.member")
scheme = self._get_param('Scheme')
self.elb_backend.create_load_balancer( self.elb_backend.create_load_balancer(
name=load_balancer_name, name=load_balancer_name,
zones=availability_zones, zones=availability_zones,
ports=ports, ports=ports,
scheme=scheme
) )
template = self.response_template(CREATE_LOAD_BALANCER_TEMPLATE) template = self.response_template(CREATE_LOAD_BALANCER_TEMPLATE)
return template.render() return template.render()
@ -325,7 +324,7 @@ DESCRIBE_LOAD_BALANCERS_TEMPLATE = """<DescribeLoadBalancersResponse xmlns="http
</AvailabilityZones> </AvailabilityZones>
<CanonicalHostedZoneName>tests.us-east-1.elb.amazonaws.com</CanonicalHostedZoneName> <CanonicalHostedZoneName>tests.us-east-1.elb.amazonaws.com</CanonicalHostedZoneName>
<CanonicalHostedZoneNameID>Z3ZONEID</CanonicalHostedZoneNameID> <CanonicalHostedZoneNameID>Z3ZONEID</CanonicalHostedZoneNameID>
<Scheme>internet-facing</Scheme> <Scheme>{{ load_balancer.scheme }}</Scheme>
<DNSName>tests.us-east-1.elb.amazonaws.com</DNSName> <DNSName>tests.us-east-1.elb.amazonaws.com</DNSName>
<BackendServerDescriptions> <BackendServerDescriptions>
{% for backend in load_balancer.backends %} {% for backend in load_balancer.backends %}