Merge pull request #967 from JackDanger/elb-timeout-is-not-required
ELB connection draining timeout defaults to 300 seconds
This commit is contained in:
commit
8f7f306f48
@ -159,9 +159,8 @@ class ELBResponse(BaseResponse):
|
|||||||
if connection_draining:
|
if connection_draining:
|
||||||
attribute = ConnectionDrainingAttribute()
|
attribute = ConnectionDrainingAttribute()
|
||||||
attribute.enabled = connection_draining["enabled"] == "true"
|
attribute.enabled = connection_draining["enabled"] == "true"
|
||||||
attribute.timeout = connection_draining["timeout"]
|
attribute.timeout = connection_draining.get("timeout", 300)
|
||||||
self.elb_backend.set_connection_draining_attribute(
|
self.elb_backend.set_connection_draining_attribute(load_balancer_name, attribute)
|
||||||
load_balancer_name, attribute)
|
|
||||||
|
|
||||||
connection_settings = self._get_dict_param(
|
connection_settings = self._get_dict_param(
|
||||||
"LoadBalancerAttributes.ConnectionSettings.")
|
"LoadBalancerAttributes.ConnectionSettings.")
|
||||||
@ -172,7 +171,7 @@ class ELBResponse(BaseResponse):
|
|||||||
load_balancer_name, attribute)
|
load_balancer_name, attribute)
|
||||||
|
|
||||||
template = self.response_template(MODIFY_ATTRIBUTES_TEMPLATE)
|
template = self.response_template(MODIFY_ATTRIBUTES_TEMPLATE)
|
||||||
return template.render(attributes=load_balancer.attributes)
|
return template.render(load_balancer=load_balancer, attributes=load_balancer.attributes)
|
||||||
|
|
||||||
def create_load_balancer_policy(self):
|
def create_load_balancer_policy(self):
|
||||||
load_balancer_name = self._get_param('LoadBalancerName')
|
load_balancer_name = self._get_param('LoadBalancerName')
|
||||||
@ -592,9 +591,11 @@ DESCRIBE_ATTRIBUTES_TEMPLATE = """<DescribeLoadBalancerAttributesResponse xmlns
|
|||||||
<Enabled>{{ attributes.cross_zone_load_balancing.enabled }}</Enabled>
|
<Enabled>{{ attributes.cross_zone_load_balancing.enabled }}</Enabled>
|
||||||
</CrossZoneLoadBalancing>
|
</CrossZoneLoadBalancing>
|
||||||
<ConnectionDraining>
|
<ConnectionDraining>
|
||||||
<Enabled>{{ attributes.connection_draining.enabled }}</Enabled>
|
|
||||||
{% if attributes.connection_draining.enabled %}
|
{% if attributes.connection_draining.enabled %}
|
||||||
|
<Enabled>true</Enabled>
|
||||||
<Timeout>{{ attributes.connection_draining.timeout }}</Timeout>
|
<Timeout>{{ attributes.connection_draining.timeout }}</Timeout>
|
||||||
|
{% else %}
|
||||||
|
<Enabled>false</Enabled>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ConnectionDraining>
|
</ConnectionDraining>
|
||||||
</LoadBalancerAttributes>
|
</LoadBalancerAttributes>
|
||||||
@ -607,7 +608,7 @@ DESCRIBE_ATTRIBUTES_TEMPLATE = """<DescribeLoadBalancerAttributesResponse xmlns
|
|||||||
|
|
||||||
MODIFY_ATTRIBUTES_TEMPLATE = """<ModifyLoadBalancerAttributesResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
MODIFY_ATTRIBUTES_TEMPLATE = """<ModifyLoadBalancerAttributesResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
||||||
<ModifyLoadBalancerAttributesResult>
|
<ModifyLoadBalancerAttributesResult>
|
||||||
<LoadBalancerName>my-loadbalancer</LoadBalancerName>
|
<LoadBalancerName>{{ load_balancer.name }}</LoadBalancerName>
|
||||||
<LoadBalancerAttributes>
|
<LoadBalancerAttributes>
|
||||||
<AccessLog>
|
<AccessLog>
|
||||||
<Enabled>{{ attributes.access_log.enabled }}</Enabled>
|
<Enabled>{{ attributes.access_log.enabled }}</Enabled>
|
||||||
@ -624,9 +625,11 @@ MODIFY_ATTRIBUTES_TEMPLATE = """<ModifyLoadBalancerAttributesResponse xmlns="htt
|
|||||||
<Enabled>{{ attributes.cross_zone_load_balancing.enabled }}</Enabled>
|
<Enabled>{{ attributes.cross_zone_load_balancing.enabled }}</Enabled>
|
||||||
</CrossZoneLoadBalancing>
|
</CrossZoneLoadBalancing>
|
||||||
<ConnectionDraining>
|
<ConnectionDraining>
|
||||||
<Enabled>{{ attributes.connection_draining.enabled }}</Enabled>
|
|
||||||
{% if attributes.connection_draining.enabled %}
|
{% if attributes.connection_draining.enabled %}
|
||||||
|
<Enabled>true</Enabled>
|
||||||
<Timeout>{{ attributes.connection_draining.timeout }}</Timeout>
|
<Timeout>{{ attributes.connection_draining.timeout }}</Timeout>
|
||||||
|
{% else %}
|
||||||
|
<Enabled>false</Enabled>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ConnectionDraining>
|
</ConnectionDraining>
|
||||||
</LoadBalancerAttributes>
|
</LoadBalancerAttributes>
|
||||||
|
@ -816,6 +816,42 @@ def test_create_with_tags():
|
|||||||
tags.should.have.key('k').which.should.equal('v')
|
tags.should.have.key('k').which.should.equal('v')
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_modify_attributes():
|
||||||
|
client = boto3.client('elb', region_name='us-east-1')
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName='my-lb',
|
||||||
|
Listeners=[{'Protocol': 'tcp', 'LoadBalancerPort': 80, 'InstancePort': 8080}],
|
||||||
|
AvailabilityZones=['us-east-1a', 'us-east-1b']
|
||||||
|
)
|
||||||
|
|
||||||
|
# Default ConnectionDraining timeout of 300 seconds
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName='my-lb',
|
||||||
|
LoadBalancerAttributes={
|
||||||
|
'ConnectionDraining': {'Enabled': True},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
lb_attrs = client.describe_load_balancer_attributes(LoadBalancerName='my-lb')
|
||||||
|
lb_attrs['LoadBalancerAttributes']['ConnectionDraining']['Enabled'].should.equal(True)
|
||||||
|
lb_attrs['LoadBalancerAttributes']['ConnectionDraining']['Timeout'].should.equal(300)
|
||||||
|
|
||||||
|
# specify a custom ConnectionDraining timeout
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName='my-lb',
|
||||||
|
LoadBalancerAttributes={
|
||||||
|
'ConnectionDraining': {
|
||||||
|
'Enabled': True,
|
||||||
|
'Timeout': 45,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
lb_attrs = client.describe_load_balancer_attributes(LoadBalancerName='my-lb')
|
||||||
|
lb_attrs['LoadBalancerAttributes']['ConnectionDraining']['Enabled'].should.equal(True)
|
||||||
|
lb_attrs['LoadBalancerAttributes']['ConnectionDraining']['Timeout'].should.equal(45)
|
||||||
|
|
||||||
|
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
@mock_elb
|
@mock_elb
|
||||||
def test_subnets():
|
def test_subnets():
|
||||||
|
Loading…
Reference in New Issue
Block a user