Rewrite deprecated ELB tests (#4342)
This commit is contained in:
parent
c846e92e7e
commit
8ab76cb1d5
@ -75,7 +75,7 @@ class FakeLoadBalancer(CloudFormationModel):
|
|||||||
name,
|
name,
|
||||||
zones,
|
zones,
|
||||||
ports,
|
ports,
|
||||||
scheme="internet-facing",
|
scheme=None,
|
||||||
vpc_id=None,
|
vpc_id=None,
|
||||||
subnets=None,
|
subnets=None,
|
||||||
security_groups=None,
|
security_groups=None,
|
||||||
@ -88,7 +88,7 @@ class FakeLoadBalancer(CloudFormationModel):
|
|||||||
self.listeners = []
|
self.listeners = []
|
||||||
self.backends = []
|
self.backends = []
|
||||||
self.created_time = datetime.datetime.now(pytz.utc)
|
self.created_time = datetime.datetime.now(pytz.utc)
|
||||||
self.scheme = scheme
|
self.scheme = scheme or "internet-facing"
|
||||||
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 = []
|
||||||
@ -398,7 +398,7 @@ class ELBBackend(BaseBackend):
|
|||||||
load_balancer.health_check = check
|
load_balancer.health_check = check
|
||||||
return check
|
return check
|
||||||
|
|
||||||
def set_load_balancer_listener_sslcertificate(
|
def set_load_balancer_listener_ssl_certificate(
|
||||||
self, name, lb_port, ssl_certificate_id
|
self, name, lb_port, ssl_certificate_id
|
||||||
):
|
):
|
||||||
balancer = self.load_balancers.get(name, None)
|
balancer = self.load_balancers.get(name, None)
|
||||||
|
@ -121,7 +121,7 @@ class ELBResponse(BaseResponse):
|
|||||||
ssl_certificate_id = self.querystring["SSLCertificateId"][0]
|
ssl_certificate_id = self.querystring["SSLCertificateId"][0]
|
||||||
lb_port = self.querystring["LoadBalancerPort"][0]
|
lb_port = self.querystring["LoadBalancerPort"][0]
|
||||||
|
|
||||||
self.elb_backend.set_load_balancer_listener_sslcertificate(
|
self.elb_backend.set_load_balancer_listener_ssl_certificate(
|
||||||
load_balancer_name, lb_port, ssl_certificate_id
|
load_balancer_name, lb_port, ssl_certificate_id
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ class ELBResponse(BaseResponse):
|
|||||||
|
|
||||||
self.elb_backend.create_app_cookie_stickiness_policy(load_balancer_name, policy)
|
self.elb_backend.create_app_cookie_stickiness_policy(load_balancer_name, policy)
|
||||||
|
|
||||||
template = self.response_template(CREATE_LOAD_BALANCER_POLICY_TEMPLATE)
|
template = self.response_template(CREATE_APP_COOKIE_STICKINESS_POLICY_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def create_lb_cookie_stickiness_policy(self):
|
def create_lb_cookie_stickiness_policy(self):
|
||||||
@ -232,7 +232,7 @@ class ELBResponse(BaseResponse):
|
|||||||
|
|
||||||
self.elb_backend.create_lb_cookie_stickiness_policy(load_balancer_name, policy)
|
self.elb_backend.create_lb_cookie_stickiness_policy(load_balancer_name, policy)
|
||||||
|
|
||||||
template = self.response_template(CREATE_LOAD_BALANCER_POLICY_TEMPLATE)
|
template = self.response_template(CREATE_LB_COOKIE_STICKINESS_POLICY_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def set_load_balancer_policies_of_listener(self):
|
def set_load_balancer_policies_of_listener(self):
|
||||||
@ -701,6 +701,22 @@ CREATE_LOAD_BALANCER_POLICY_TEMPLATE = """<CreateLoadBalancerPolicyResponse xmln
|
|||||||
</CreateLoadBalancerPolicyResponse>
|
</CreateLoadBalancerPolicyResponse>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
CREATE_LB_COOKIE_STICKINESS_POLICY_TEMPLATE = """<CreateLBCookieStickinessPolicyResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
||||||
|
<CreateLBCookieStickinessPolicyResult/>
|
||||||
|
<ResponseMetadata>
|
||||||
|
<RequestId>83c88b9d-12b7-11e3-8b82-87b12EXAMPLE</RequestId>
|
||||||
|
</ResponseMetadata>
|
||||||
|
</CreateLBCookieStickinessPolicyResponse>
|
||||||
|
"""
|
||||||
|
|
||||||
|
CREATE_APP_COOKIE_STICKINESS_POLICY_TEMPLATE = """<CreateAppCookieStickinessPolicyResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
||||||
|
<CreateAppCookieStickinessPolicyResult/>
|
||||||
|
<ResponseMetadata>
|
||||||
|
<RequestId>83c88b9d-12b7-11e3-8b82-87b12EXAMPLE</RequestId>
|
||||||
|
</ResponseMetadata>
|
||||||
|
</CreateAppCookieStickinessPolicyResponse>
|
||||||
|
"""
|
||||||
|
|
||||||
SET_LOAD_BALANCER_POLICIES_OF_LISTENER_TEMPLATE = """<SetLoadBalancerPoliciesOfListenerResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
SET_LOAD_BALANCER_POLICIES_OF_LISTENER_TEMPLATE = """<SetLoadBalancerPoliciesOfListenerResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
||||||
<SetLoadBalancerPoliciesOfListenerResult/>
|
<SetLoadBalancerPoliciesOfListenerResult/>
|
||||||
<ResponseMetadata>
|
<ResponseMetadata>
|
||||||
|
@ -17,8 +17,10 @@ import sure # noqa
|
|||||||
from moto import mock_elb, mock_ec2, mock_elb_deprecated, mock_ec2_deprecated
|
from moto import mock_elb, mock_ec2, mock_elb_deprecated, mock_ec2_deprecated
|
||||||
from moto.core import ACCOUNT_ID
|
from moto.core import ACCOUNT_ID
|
||||||
from tests import EXAMPLE_AMI_ID
|
from tests import EXAMPLE_AMI_ID
|
||||||
|
from uuid import uuid4
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
@mock_ec2_deprecated
|
@mock_ec2_deprecated
|
||||||
def test_create_load_balancer():
|
def test_create_load_balancer():
|
||||||
@ -49,6 +51,86 @@ def test_create_load_balancer():
|
|||||||
listener2.protocol.should.equal("TCP")
|
listener2.protocol.should.equal("TCP")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("region_name", ["us-east-1", "ap-south-1"])
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"zones",
|
||||||
|
[
|
||||||
|
["us-east-1a"],
|
||||||
|
["us-east-1a", "us-east-1b"],
|
||||||
|
["eu-north-1a", "eu-north-1b", "eu-north-1c"],
|
||||||
|
],
|
||||||
|
)
|
||||||
|
@mock_elb
|
||||||
|
@mock_ec2
|
||||||
|
def test_create_load_balancer_boto3(zones, region_name):
|
||||||
|
# Both regions and availability zones are parametrized
|
||||||
|
# This does not seem to have an effect on the DNS name
|
||||||
|
client = boto3.client("elb", region_name=region_name)
|
||||||
|
ec2 = boto3.resource("ec2", region_name=region_name)
|
||||||
|
|
||||||
|
security_group = ec2.create_security_group(
|
||||||
|
GroupName="sg01", Description="Test security group sg01"
|
||||||
|
)
|
||||||
|
|
||||||
|
lb = client.create_load_balancer(
|
||||||
|
LoadBalancerName="my-lb",
|
||||||
|
Listeners=[
|
||||||
|
{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080},
|
||||||
|
{"Protocol": "http", "LoadBalancerPort": 81, "InstancePort": 9000},
|
||||||
|
],
|
||||||
|
AvailabilityZones=zones,
|
||||||
|
Scheme="internal",
|
||||||
|
SecurityGroups=[security_group.id],
|
||||||
|
)
|
||||||
|
lb.should.have.key("DNSName").equal("my-lb.us-east-1.elb.amazonaws.com")
|
||||||
|
|
||||||
|
describe = client.describe_load_balancers(LoadBalancerNames=["my-lb"])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
describe.should.have.key("LoadBalancerName").equal("my-lb")
|
||||||
|
describe.should.have.key("DNSName").equal("my-lb.us-east-1.elb.amazonaws.com")
|
||||||
|
describe.should.have.key("CanonicalHostedZoneName").equal(
|
||||||
|
"my-lb.us-east-1.elb.amazonaws.com"
|
||||||
|
)
|
||||||
|
describe.should.have.key("AvailabilityZones").equal(zones)
|
||||||
|
describe.should.have.key("VPCId")
|
||||||
|
describe.should.have.key("SecurityGroups").equal([security_group.id])
|
||||||
|
describe.should.have.key("Scheme").equal("internal")
|
||||||
|
|
||||||
|
describe.should.have.key("ListenerDescriptions")
|
||||||
|
describe["ListenerDescriptions"].should.have.length_of(2)
|
||||||
|
|
||||||
|
tcp = [
|
||||||
|
l["Listener"]
|
||||||
|
for l in describe["ListenerDescriptions"]
|
||||||
|
if l["Listener"]["Protocol"] == "TCP"
|
||||||
|
][0]
|
||||||
|
http = [
|
||||||
|
l["Listener"]
|
||||||
|
for l in describe["ListenerDescriptions"]
|
||||||
|
if l["Listener"]["Protocol"] == "HTTP"
|
||||||
|
][0]
|
||||||
|
tcp.should.equal(
|
||||||
|
{
|
||||||
|
"Protocol": "TCP",
|
||||||
|
"LoadBalancerPort": 80,
|
||||||
|
"InstanceProtocol": "TCP",
|
||||||
|
"InstancePort": 8080,
|
||||||
|
"SSLCertificateId": "None",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
http.should.equal(
|
||||||
|
{
|
||||||
|
"Protocol": "HTTP",
|
||||||
|
"LoadBalancerPort": 81,
|
||||||
|
"InstanceProtocol": "HTTP",
|
||||||
|
"InstancePort": 9000,
|
||||||
|
"SSLCertificateId": "None",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_getting_missing_elb():
|
def test_getting_missing_elb():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -57,6 +139,19 @@ def test_getting_missing_elb():
|
|||||||
).should.throw(BotoServerError)
|
).should.throw(BotoServerError)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_get_missing_elb_boto3():
|
||||||
|
client = boto3.client("elb", region_name="us-west-2")
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
client.describe_load_balancers(LoadBalancerNames=["unknown-lb"])
|
||||||
|
err = ex.value.response["Error"]
|
||||||
|
err["Code"].should.equal("LoadBalancerNotFound")
|
||||||
|
err["Message"].should.equal(
|
||||||
|
"The specified load balancer does not exist: unknown-lb"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_elb_in_multiple_region():
|
def test_create_elb_in_multiple_region():
|
||||||
zones = ["us-east-1a", "us-east-1b"]
|
zones = ["us-east-1a", "us-east-1b"]
|
||||||
@ -72,6 +167,41 @@ def test_create_elb_in_multiple_region():
|
|||||||
list(west2_conn.get_all_load_balancers()).should.have.length_of(1)
|
list(west2_conn.get_all_load_balancers()).should.have.length_of(1)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_elb_in_multiple_region_boto3():
|
||||||
|
client_east = boto3.client("elb", region_name="us-east-2")
|
||||||
|
client_west = boto3.client("elb", region_name="us-west-2")
|
||||||
|
|
||||||
|
name_east = str(uuid4())[0:6]
|
||||||
|
name_west = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client_east.create_load_balancer(
|
||||||
|
LoadBalancerName=name_east,
|
||||||
|
Listeners=[{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
client_west.create_load_balancer(
|
||||||
|
LoadBalancerName=name_west,
|
||||||
|
Listeners=[{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
east_names = [
|
||||||
|
lb["LoadBalancerName"]
|
||||||
|
for lb in client_east.describe_load_balancers()["LoadBalancerDescriptions"]
|
||||||
|
]
|
||||||
|
east_names.should.contain(name_east)
|
||||||
|
east_names.shouldnt.contain(name_west)
|
||||||
|
|
||||||
|
west_names = [
|
||||||
|
lb["LoadBalancerName"]
|
||||||
|
for lb in client_west.describe_load_balancers()["LoadBalancerDescriptions"]
|
||||||
|
]
|
||||||
|
west_names.should.contain(name_west)
|
||||||
|
west_names.shouldnt.contain(name_east)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_load_balancer_with_certificate():
|
def test_create_load_balancer_with_certificate():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -101,6 +231,35 @@ def test_create_load_balancer_with_certificate():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_load_balancer_with_certificate_boto3():
|
||||||
|
client = boto3.client("elb", region_name="us-east-2")
|
||||||
|
|
||||||
|
name = str(uuid4())[0:6]
|
||||||
|
cert_id = "arn:aws:iam:{}:server-certificate/test-cert".format(ACCOUNT_ID)
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=name,
|
||||||
|
Listeners=[
|
||||||
|
{
|
||||||
|
"Protocol": "https",
|
||||||
|
"LoadBalancerPort": 8443,
|
||||||
|
"InstancePort": 443,
|
||||||
|
"SSLCertificateId": cert_id,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
describe = client.describe_load_balancers(LoadBalancerNames=[name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
describe["Scheme"].should.equal("internet-facing")
|
||||||
|
|
||||||
|
listener = describe["ListenerDescriptions"][0]["Listener"]
|
||||||
|
listener.should.have.key("Protocol").equal("HTTPS")
|
||||||
|
listener.should.have.key("SSLCertificateId").equals(cert_id)
|
||||||
|
|
||||||
|
|
||||||
@mock_elb
|
@mock_elb
|
||||||
def test_create_and_delete_boto3_support():
|
def test_create_and_delete_boto3_support():
|
||||||
client = boto3.client("elb", region_name="us-east-1")
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
@ -190,6 +349,7 @@ def test_apply_security_groups_to_load_balancer():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_add_listener():
|
def test_add_listener():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -210,6 +370,7 @@ def test_add_listener():
|
|||||||
listener2.protocol.should.equal("TCP")
|
listener2.protocol.should.equal("TCP")
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_delete_listener():
|
def test_delete_listener():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -272,6 +433,7 @@ def test_create_and_delete_listener_boto3_support():
|
|||||||
list(balancer["ListenerDescriptions"]).should.have.length_of(1)
|
list(balancer["ListenerDescriptions"]).should.have.length_of(1)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_set_sslcertificate():
|
def test_set_sslcertificate():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -289,6 +451,38 @@ def test_set_sslcertificate():
|
|||||||
listener1.ssl_certificate_id.should.equal("arn:certificate")
|
listener1.ssl_certificate_id.should.equal("arn:certificate")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_set_sslcertificate_boto3():
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[
|
||||||
|
{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080},
|
||||||
|
{"Protocol": "https", "LoadBalancerPort": 81, "InstancePort": 8081},
|
||||||
|
],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.set_load_balancer_listener_ssl_certificate(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
LoadBalancerPort=81,
|
||||||
|
SSLCertificateId="arn:certificate",
|
||||||
|
)
|
||||||
|
|
||||||
|
elb = client.describe_load_balancers()["LoadBalancerDescriptions"][0]
|
||||||
|
|
||||||
|
listener = elb["ListenerDescriptions"][0]["Listener"]
|
||||||
|
listener.should.have.key("LoadBalancerPort").equals(80)
|
||||||
|
listener.should.have.key("SSLCertificateId").equals("None")
|
||||||
|
|
||||||
|
listener = elb["ListenerDescriptions"][1]["Listener"]
|
||||||
|
listener.should.have.key("LoadBalancerPort").equals(81)
|
||||||
|
listener.should.have.key("SSLCertificateId").equals("arn:certificate")
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_get_load_balancers_by_name():
|
def test_get_load_balancers_by_name():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -306,6 +500,50 @@ def test_get_load_balancers_by_name():
|
|||||||
).should.have.length_of(2)
|
).should.have.length_of(2)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_get_load_balancers_by_name_boto3():
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
lb_name1 = str(uuid4())[0:6]
|
||||||
|
lb_name2 = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name1,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name2,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
lbs = client.describe_load_balancers(LoadBalancerNames=[lb_name1])
|
||||||
|
lbs["LoadBalancerDescriptions"].should.have.length_of(1)
|
||||||
|
|
||||||
|
lbs = client.describe_load_balancers(LoadBalancerNames=[lb_name2])
|
||||||
|
lbs["LoadBalancerDescriptions"].should.have.length_of(1)
|
||||||
|
|
||||||
|
lbs = client.describe_load_balancers(LoadBalancerNames=[lb_name1, lb_name2])
|
||||||
|
lbs["LoadBalancerDescriptions"].should.have.length_of(2)
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
client.describe_load_balancers(LoadBalancerNames=["unknownlb"])
|
||||||
|
err = ex.value.response["Error"]
|
||||||
|
err["Code"].should.equal("LoadBalancerNotFound")
|
||||||
|
err["Message"].should.equal(
|
||||||
|
f"The specified load balancer does not exist: unknownlb"
|
||||||
|
)
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
client.describe_load_balancers(LoadBalancerNames=[lb_name1, "unknownlb"])
|
||||||
|
err = ex.value.response["Error"]
|
||||||
|
err["Code"].should.equal("LoadBalancerNotFound")
|
||||||
|
# Bug - message sometimes shows the lb that does exist
|
||||||
|
err["Message"].should.match(f"The specified load balancer does not exist:")
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_delete_load_balancer():
|
def test_delete_load_balancer():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -322,6 +560,38 @@ def test_delete_load_balancer():
|
|||||||
balancers.should.have.length_of(0)
|
balancers.should.have.length_of(0)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_delete_load_balancer_boto3():
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
lb_name1 = str(uuid4())[0:6]
|
||||||
|
lb_name2 = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name1,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name2,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
lbs = client.describe_load_balancers()["LoadBalancerDescriptions"]
|
||||||
|
lb_names = [lb["LoadBalancerName"] for lb in lbs]
|
||||||
|
lb_names.should.contain(lb_name1)
|
||||||
|
lb_names.should.contain(lb_name2)
|
||||||
|
|
||||||
|
client.delete_load_balancer(LoadBalancerName=lb_name1)
|
||||||
|
|
||||||
|
lbs = client.describe_load_balancers()["LoadBalancerDescriptions"]
|
||||||
|
lb_names = [lb["LoadBalancerName"] for lb in lbs]
|
||||||
|
lb_names.shouldnt.contain(lb_name1)
|
||||||
|
lb_names.should.contain(lb_name2)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_health_check():
|
def test_create_health_check():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -375,6 +645,7 @@ def test_create_health_check_boto3():
|
|||||||
balancer["HealthCheck"]["UnhealthyThreshold"].should.equal(5)
|
balancer["HealthCheck"]["UnhealthyThreshold"].should.equal(5)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_ec2_deprecated
|
@mock_ec2_deprecated
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_register_instances():
|
def test_register_instances():
|
||||||
@ -417,6 +688,7 @@ def test_register_instances_boto3():
|
|||||||
set(instance_ids).should.equal(set([instance_id1, instance_id2]))
|
set(instance_ids).should.equal(set([instance_id1, instance_id2]))
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_ec2_deprecated
|
@mock_ec2_deprecated
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_deregister_instances():
|
def test_deregister_instances():
|
||||||
@ -470,6 +742,7 @@ def test_deregister_instances_boto3():
|
|||||||
balancer["Instances"][0]["InstanceId"].should.equal(instance_id2)
|
balancer["Instances"][0]["InstanceId"].should.equal(instance_id2)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_default_attributes():
|
def test_default_attributes():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -483,6 +756,27 @@ def test_default_attributes():
|
|||||||
attributes.connecting_settings.idle_timeout.should.equal(60)
|
attributes.connecting_settings.idle_timeout.should.equal(60)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_default_attributes_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes = client.describe_load_balancer_attributes(LoadBalancerName=lb_name)[
|
||||||
|
"LoadBalancerAttributes"
|
||||||
|
]
|
||||||
|
attributes.should.have.key("CrossZoneLoadBalancing").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("AccessLog").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("ConnectionDraining").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("ConnectionSettings").equal({"IdleTimeout": 60})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_cross_zone_load_balancing_attribute():
|
def test_cross_zone_load_balancing_attribute():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -498,6 +792,43 @@ def test_cross_zone_load_balancing_attribute():
|
|||||||
attributes.cross_zone_load_balancing.enabled.should.be.false
|
attributes.cross_zone_load_balancing.enabled.should.be.false
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_cross_zone_load_balancing_attribute_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
LoadBalancerAttributes={"CrossZoneLoadBalancing": {"Enabled": True}},
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes = client.describe_load_balancer_attributes(LoadBalancerName=lb_name)[
|
||||||
|
"LoadBalancerAttributes"
|
||||||
|
]
|
||||||
|
# Bug: This property is not properly propagated
|
||||||
|
attributes.should.have.key("CrossZoneLoadBalancing").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("AccessLog").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("ConnectionDraining").equal({"Enabled": False})
|
||||||
|
attributes.should.have.key("ConnectionSettings").equal({"IdleTimeout": 60})
|
||||||
|
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
LoadBalancerAttributes={"CrossZoneLoadBalancing": {"Enabled": False}},
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes = client.describe_load_balancer_attributes(LoadBalancerName=lb_name)[
|
||||||
|
"LoadBalancerAttributes"
|
||||||
|
]
|
||||||
|
attributes.should.have.key("CrossZoneLoadBalancing").equal({"Enabled": False})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_connection_draining_attribute():
|
def test_connection_draining_attribute():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -524,6 +855,43 @@ def test_connection_draining_attribute():
|
|||||||
attributes.connection_draining.enabled.should.be.false
|
attributes.connection_draining.enabled.should.be.false
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_connection_draining_attribute_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
LoadBalancerAttributes={"ConnectionDraining": {"Enabled": True, "Timeout": 42}},
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes = client.describe_load_balancer_attributes(LoadBalancerName=lb_name)[
|
||||||
|
"LoadBalancerAttributes"
|
||||||
|
]
|
||||||
|
attributes.should.have.key("ConnectionDraining").equal(
|
||||||
|
{"Enabled": True, "Timeout": 42}
|
||||||
|
)
|
||||||
|
|
||||||
|
client.modify_load_balancer_attributes(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
LoadBalancerAttributes={"ConnectionDraining": {"Enabled": False}},
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes = client.describe_load_balancer_attributes(LoadBalancerName=lb_name)[
|
||||||
|
"LoadBalancerAttributes"
|
||||||
|
]
|
||||||
|
attributes.should.have.key("ConnectionDraining").equal({"Enabled": False})
|
||||||
|
|
||||||
|
|
||||||
|
# This does not work in Boto3, so we can't write a equivalent test
|
||||||
|
# Moto always looks for attribute 's3_bucket_name', but Boto3 sends 'S3BucketName'
|
||||||
|
# We'll need to rewrite this feature completely anyway, to get rid of the boto-objects
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_access_log_attribute():
|
def test_access_log_attribute():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -549,6 +917,9 @@ def test_access_log_attribute():
|
|||||||
attributes.access_log.enabled.should.be.false
|
attributes.access_log.enabled.should.be.false
|
||||||
|
|
||||||
|
|
||||||
|
# This does not work in Boto3, so we can't write a equivalent test
|
||||||
|
# Moto always looks for attribute 'idle_timeout', but Boto3 sends 'IdleTimeout'
|
||||||
|
# We'll need to rewrite this feature completely anyway, to get rid of the boto-objects
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_connection_settings_attribute():
|
def test_connection_settings_attribute():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -568,6 +939,7 @@ def test_connection_settings_attribute():
|
|||||||
attributes.connecting_settings.idle_timeout.should.equal(60)
|
attributes.connecting_settings.idle_timeout.should.equal(60)
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_lb_cookie_stickiness_policy():
|
def test_create_lb_cookie_stickiness_policy():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -591,6 +963,37 @@ def test_create_lb_cookie_stickiness_policy():
|
|||||||
lb.policies.lb_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
lb.policies.lb_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_lb_cookie_stickiness_policy_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
lbc_policies = balancer["Policies"]["LBCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(0)
|
||||||
|
|
||||||
|
client.create_lb_cookie_stickiness_policy(
|
||||||
|
LoadBalancerName=lb_name, PolicyName="pname", CookieExpirationPeriod=42
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
policies = balancer["Policies"]
|
||||||
|
lbc_policies = policies["LBCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(1)
|
||||||
|
lbc_policies[0].should.equal({"PolicyName": "pname", "CookieExpirationPeriod": 42})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_lb_cookie_stickiness_policy_no_expiry():
|
def test_create_lb_cookie_stickiness_policy_no_expiry():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -605,6 +1008,37 @@ def test_create_lb_cookie_stickiness_policy_no_expiry():
|
|||||||
lb.policies.lb_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
lb.policies.lb_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_lb_cookie_stickiness_policy_no_expiry_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
lbc_policies = balancer["Policies"]["LBCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(0)
|
||||||
|
|
||||||
|
client.create_lb_cookie_stickiness_policy(
|
||||||
|
LoadBalancerName=lb_name, PolicyName="pname"
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
policies = balancer["Policies"]
|
||||||
|
lbc_policies = policies["LBCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(1)
|
||||||
|
lbc_policies[0].should.equal({"PolicyName": "pname"})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_app_cookie_stickiness_policy():
|
def test_create_app_cookie_stickiness_policy():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -620,6 +1054,37 @@ def test_create_app_cookie_stickiness_policy():
|
|||||||
lb.policies.app_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
lb.policies.app_cookie_stickiness_policies[0].policy_name.should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_app_cookie_stickiness_policy_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
lbc_policies = balancer["Policies"]["AppCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(0)
|
||||||
|
|
||||||
|
client.create_app_cookie_stickiness_policy(
|
||||||
|
LoadBalancerName=lb_name, PolicyName="pname", CookieName="cname"
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
policies = balancer["Policies"]
|
||||||
|
lbc_policies = policies["AppCookieStickinessPolicies"]
|
||||||
|
lbc_policies.should.have.length_of(1)
|
||||||
|
lbc_policies[0].should.equal({"CookieName": "cname", "PolicyName": "pname"})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_create_lb_policy():
|
def test_create_lb_policy():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -633,6 +1098,34 @@ def test_create_lb_policy():
|
|||||||
lb.policies.other_policies[0].policy_name.should.equal(policy_name)
|
lb.policies.other_policies[0].policy_name.should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_lb_policy_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.create_load_balancer_policy(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
PolicyName="ProxyPolicy",
|
||||||
|
PolicyTypeName="ProxyProtocolPolicyType",
|
||||||
|
PolicyAttributes=[
|
||||||
|
{"AttributeName": "ProxyProtocol", "AttributeValue": "true",},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
policies = balancer["Policies"]
|
||||||
|
policies.should.have.key("OtherPolicies").equal(["ProxyPolicy"])
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_set_policies_of_listener():
|
def test_set_policies_of_listener():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -656,6 +1149,48 @@ def test_set_policies_of_listener():
|
|||||||
listener.policy_names[0].should.equal(policy_name)
|
listener.policy_names[0].should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_set_policies_of_listener_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[
|
||||||
|
{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080},
|
||||||
|
{"Protocol": "https", "LoadBalancerPort": 81, "InstancePort": 8081},
|
||||||
|
],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.create_app_cookie_stickiness_policy(
|
||||||
|
LoadBalancerName=lb_name, PolicyName="pname", CookieName="cname"
|
||||||
|
)
|
||||||
|
|
||||||
|
client.set_load_balancer_policies_of_listener(
|
||||||
|
LoadBalancerName=lb_name, LoadBalancerPort=81, PolicyNames=["pname"]
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
|
||||||
|
http_l = [
|
||||||
|
l
|
||||||
|
for l in balancer["ListenerDescriptions"]
|
||||||
|
if l["Listener"]["Protocol"] == "HTTP"
|
||||||
|
][0]
|
||||||
|
http_l.should.have.key("PolicyNames").should.equal([])
|
||||||
|
|
||||||
|
https_l = [
|
||||||
|
l
|
||||||
|
for l in balancer["ListenerDescriptions"]
|
||||||
|
if l["Listener"]["Protocol"] == "HTTPS"
|
||||||
|
][0]
|
||||||
|
https_l.should.have.key("PolicyNames").should.equal(["pname"])
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_set_policies_of_backend_server():
|
def test_set_policies_of_backend_server():
|
||||||
conn = boto.connect_elb()
|
conn = boto.connect_elb()
|
||||||
@ -676,6 +1211,38 @@ def test_set_policies_of_backend_server():
|
|||||||
backend.policies[0].policy_name.should.equal(policy_name)
|
backend.policies[0].policy_name.should.equal(policy_name)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_set_policies_of_backend_server_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[
|
||||||
|
{"Protocol": "http", "LoadBalancerPort": 80, "InstancePort": 8080},
|
||||||
|
{"Protocol": "https", "LoadBalancerPort": 81, "InstancePort": 8081},
|
||||||
|
],
|
||||||
|
AvailabilityZones=["us-east-1a"],
|
||||||
|
)
|
||||||
|
|
||||||
|
client.create_app_cookie_stickiness_policy(
|
||||||
|
LoadBalancerName=lb_name, PolicyName="pname", CookieName="cname"
|
||||||
|
)
|
||||||
|
|
||||||
|
client.set_load_balancer_policies_for_backend_server(
|
||||||
|
LoadBalancerName=lb_name, InstancePort=8081, PolicyNames=["pname"]
|
||||||
|
)
|
||||||
|
|
||||||
|
balancer = client.describe_load_balancers(LoadBalancerNames=[lb_name])[
|
||||||
|
"LoadBalancerDescriptions"
|
||||||
|
][0]
|
||||||
|
balancer.should.have.key("BackendServerDescriptions")
|
||||||
|
desc = balancer["BackendServerDescriptions"]
|
||||||
|
desc.should.have.length_of(1)
|
||||||
|
desc[0].should.equal({"InstancePort": 8081, "PolicyNames": ["pname"]})
|
||||||
|
|
||||||
|
|
||||||
|
# Has boto3 equivalent
|
||||||
@mock_ec2_deprecated
|
@mock_ec2_deprecated
|
||||||
@mock_elb_deprecated
|
@mock_elb_deprecated
|
||||||
def test_describe_instance_health():
|
def test_describe_instance_health():
|
||||||
@ -941,3 +1508,26 @@ def test_create_load_balancer_duplicate():
|
|||||||
conn.create_load_balancer.when.called_with("my-lb", [], ports).should.throw(
|
conn.create_load_balancer.when.called_with("my-lb", [], ports).should.throw(
|
||||||
BotoServerError
|
BotoServerError
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_elb
|
||||||
|
def test_create_load_balancer_duplicate_boto3():
|
||||||
|
lb_name = str(uuid4())[0:6]
|
||||||
|
client = boto3.client("elb", region_name="us-east-1")
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}],
|
||||||
|
)
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
client.create_load_balancer(
|
||||||
|
LoadBalancerName=lb_name,
|
||||||
|
Listeners=[
|
||||||
|
{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
err = ex.value.response["Error"]
|
||||||
|
err["Code"].should.equal("DuplicateLoadBalancerName")
|
||||||
|
err["Message"].should.equal(
|
||||||
|
f"The specified load balancer name already exists for this account: {lb_name}"
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user