Merge pull request #477 from chrishenry/elb-scheme
Implement Elb Scheme
This commit is contained in:
commit
420b705a24
@ -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,8 @@ 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)
|
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
|
||||||
|
|
||||||
|
@ -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 %}
|
||||||
|
@ -25,11 +25,12 @@ def test_create_load_balancer():
|
|||||||
|
|
||||||
zones = ['us-east-1a', 'us-east-1b']
|
zones = ['us-east-1a', 'us-east-1b']
|
||||||
ports = [(80, 8080, 'http'), (443, 8443, 'tcp')]
|
ports = [(80, 8080, 'http'), (443, 8443, 'tcp')]
|
||||||
conn.create_load_balancer('my-lb', zones, ports)
|
conn.create_load_balancer('my-lb', zones, ports, scheme='internal')
|
||||||
|
|
||||||
balancers = conn.get_all_load_balancers()
|
balancers = conn.get_all_load_balancers()
|
||||||
balancer = balancers[0]
|
balancer = balancers[0]
|
||||||
balancer.name.should.equal("my-lb")
|
balancer.name.should.equal("my-lb")
|
||||||
|
balancer.scheme.should.equal("internal")
|
||||||
set(balancer.availability_zones).should.equal(set(['us-east-1a', 'us-east-1b']))
|
set(balancer.availability_zones).should.equal(set(['us-east-1a', 'us-east-1b']))
|
||||||
listener1 = balancer.listeners[0]
|
listener1 = balancer.listeners[0]
|
||||||
listener1.load_balancer_port.should.equal(80)
|
listener1.load_balancer_port.should.equal(80)
|
||||||
@ -66,6 +67,7 @@ def test_create_load_balancer_with_certificate():
|
|||||||
balancers = conn.get_all_load_balancers()
|
balancers = conn.get_all_load_balancers()
|
||||||
balancer = balancers[0]
|
balancer = balancers[0]
|
||||||
balancer.name.should.equal("my-lb")
|
balancer.name.should.equal("my-lb")
|
||||||
|
balancer.scheme.should.equal("internet-facing")
|
||||||
set(balancer.availability_zones).should.equal(set(['us-east-1a']))
|
set(balancer.availability_zones).should.equal(set(['us-east-1a']))
|
||||||
listener = balancer.listeners[0]
|
listener = balancer.listeners[0]
|
||||||
listener.load_balancer_port.should.equal(443)
|
listener.load_balancer_port.should.equal(443)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user