Make all existing ELB endpoints compatible with boto3
This commit is contained in:
parent
8093505e89
commit
1d8252feea
2 changed files with 188 additions and 32 deletions
|
|
@ -1,4 +1,5 @@
|
|||
from __future__ import unicode_literals
|
||||
import boto3
|
||||
import boto
|
||||
import boto.ec2.elb
|
||||
from boto.ec2.elb import HealthCheck
|
||||
|
|
@ -73,6 +74,22 @@ def test_create_load_balancer_with_certificate():
|
|||
listener.ssl_certificate_id.should.equal('arn:aws:iam:123456789012:server-certificate/test-cert')
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_create_and_delete_boto3_support():
|
||||
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']
|
||||
)
|
||||
list(client.describe_load_balancers()['LoadBalancerDescriptions']).should.have.length_of(1)
|
||||
|
||||
client.delete_load_balancer(
|
||||
LoadBalancerName='my-lb'
|
||||
)
|
||||
list(client.describe_load_balancers()['LoadBalancerDescriptions']).should.have.length_of(0)
|
||||
|
||||
@mock_elb
|
||||
def test_add_listener():
|
||||
conn = boto.connect_elb()
|
||||
|
|
@ -110,6 +127,31 @@ def test_delete_listener():
|
|||
balancer.listeners.should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_create_and_delete_listener_boto3_support():
|
||||
client = boto3.client('elb', region_name='us-east-1')
|
||||
|
||||
client.create_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Listeners=[{'Protocol':'http', 'LoadBalancerPort':80, 'InstancePort':8080}],
|
||||
AvailabilityZones=['us-east-1a', 'us-east-1b']
|
||||
)
|
||||
list(client.describe_load_balancers()['LoadBalancerDescriptions']).should.have.length_of(1)
|
||||
|
||||
client.create_load_balancer_listeners(
|
||||
LoadBalancerName='my-lb',
|
||||
Listeners=[{'Protocol':'tcp', 'LoadBalancerPort':443, 'InstancePort':8443}]
|
||||
)
|
||||
balancer = client.describe_load_balancers()['LoadBalancerDescriptions'][0]
|
||||
list(balancer['ListenerDescriptions']).should.have.length_of(2)
|
||||
balancer['ListenerDescriptions'][0]['Listener']['Protocol'].should.equal('HTTP')
|
||||
balancer['ListenerDescriptions'][0]['Listener']['LoadBalancerPort'].should.equal(80)
|
||||
balancer['ListenerDescriptions'][0]['Listener']['InstancePort'].should.equal(8080)
|
||||
balancer['ListenerDescriptions'][1]['Listener']['Protocol'].should.equal('TCP')
|
||||
balancer['ListenerDescriptions'][1]['Listener']['LoadBalancerPort'].should.equal(443)
|
||||
balancer['ListenerDescriptions'][1]['Listener']['InstancePort'].should.equal(8443)
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_set_sslcertificate():
|
||||
conn = boto.connect_elb()
|
||||
|
|
@ -183,6 +225,34 @@ def test_create_health_check():
|
|||
health_check.timeout.should.equal(23)
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_create_health_check_boto3():
|
||||
client = boto3.client('elb', region_name='us-east-1')
|
||||
|
||||
client.create_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Listeners=[{'Protocol':'http', 'LoadBalancerPort':80, 'InstancePort':8080}],
|
||||
AvailabilityZones=['us-east-1a', 'us-east-1b']
|
||||
)
|
||||
client.configure_health_check(
|
||||
LoadBalancerName='my-lb',
|
||||
HealthCheck={
|
||||
'Target': 'HTTP:8080/health',
|
||||
'Interval': 20,
|
||||
'Timeout': 23,
|
||||
'HealthyThreshold': 3,
|
||||
'UnhealthyThreshold': 5
|
||||
}
|
||||
)
|
||||
|
||||
balancer = client.describe_load_balancers()['LoadBalancerDescriptions'][0]
|
||||
balancer['HealthCheck']['Target'].should.equal('HTTP:8080/health')
|
||||
balancer['HealthCheck']['Interval'].should.equal(20)
|
||||
balancer['HealthCheck']['Timeout'].should.equal(23)
|
||||
balancer['HealthCheck']['HealthyThreshold'].should.equal(3)
|
||||
balancer['HealthCheck']['UnhealthyThreshold'].should.equal(5)
|
||||
|
||||
|
||||
@mock_ec2
|
||||
@mock_elb
|
||||
def test_register_instances():
|
||||
|
|
@ -202,6 +272,32 @@ def test_register_instances():
|
|||
set(instance_ids).should.equal(set([instance_id1, instance_id2]))
|
||||
|
||||
|
||||
@mock_ec2
|
||||
@mock_elb
|
||||
def test_register_instances_boto3():
|
||||
ec2 = boto3.resource('ec2', region_name='us-east-1')
|
||||
response = ec2.create_instances(ImageId='ami-1234abcd', MinCount=2, MaxCount=2)
|
||||
instance_id1 = response[0].id
|
||||
instance_id2 = response[1].id
|
||||
|
||||
client = boto3.client('elb', region_name='us-east-1')
|
||||
client.create_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Listeners=[{'Protocol':'http', 'LoadBalancerPort':80, 'InstancePort':8080}],
|
||||
AvailabilityZones=['us-east-1a', 'us-east-1b']
|
||||
)
|
||||
client.register_instances_with_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Instances=[
|
||||
{'InstanceId': instance_id1},
|
||||
{'InstanceId': instance_id2}
|
||||
]
|
||||
)
|
||||
balancer = client.describe_load_balancers()['LoadBalancerDescriptions'][0]
|
||||
instance_ids = [instance['InstanceId'] for instance in balancer['Instances']]
|
||||
set(instance_ids).should.equal(set([instance_id1, instance_id2]))
|
||||
|
||||
|
||||
@mock_ec2
|
||||
@mock_elb
|
||||
def test_deregister_instances():
|
||||
|
|
@ -223,6 +319,42 @@ def test_deregister_instances():
|
|||
balancer.instances.should.have.length_of(1)
|
||||
balancer.instances[0].id.should.equal(instance_id2)
|
||||
|
||||
@mock_ec2
|
||||
@mock_elb
|
||||
def test_deregister_instances_boto3():
|
||||
ec2 = boto3.resource('ec2', region_name='us-east-1')
|
||||
response = ec2.create_instances(ImageId='ami-1234abcd', MinCount=2, MaxCount=2)
|
||||
instance_id1 = response[0].id
|
||||
instance_id2 = response[1].id
|
||||
|
||||
client = boto3.client('elb', region_name='us-east-1')
|
||||
client.create_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Listeners=[{'Protocol':'http', 'LoadBalancerPort':80, 'InstancePort':8080}],
|
||||
AvailabilityZones=['us-east-1a', 'us-east-1b']
|
||||
)
|
||||
client.register_instances_with_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Instances=[
|
||||
{'InstanceId': instance_id1},
|
||||
{'InstanceId': instance_id2}
|
||||
]
|
||||
)
|
||||
|
||||
balancer = client.describe_load_balancers()['LoadBalancerDescriptions'][0]
|
||||
balancer['Instances'].should.have.length_of(2)
|
||||
|
||||
client.deregister_instances_from_load_balancer(
|
||||
LoadBalancerName='my-lb',
|
||||
Instances=[
|
||||
{'InstanceId': instance_id1}
|
||||
]
|
||||
)
|
||||
|
||||
balancer = client.describe_load_balancers()['LoadBalancerDescriptions'][0]
|
||||
balancer['Instances'].should.have.length_of(1)
|
||||
balancer['Instances'][0]['InstanceId'].should.equal(instance_id2)
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_default_attributes():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue