54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import boto3
							 | 
						||
| 
								 | 
							
								import sure  # noqa # pylint: disable=unused-import
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from moto import mock_ec2, mock_elb
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_ec2
							 | 
						||
| 
								 | 
							
								@mock_elb
							 | 
						||
| 
								 | 
							
								def test_elb_attach_load_balancer_to_subnets():
							 | 
						||
| 
								 | 
							
								    ec2 = boto3.resource("ec2", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    vpc = ec2.create_vpc(CidrBlock="172.28.7.0/24", InstanceTenancy="default")
							 | 
						||
| 
								 | 
							
								    subnet1 = ec2.create_subnet(VpcId=vpc.id, CidrBlock="172.28.7.192/26")
							 | 
						||
| 
								 | 
							
								    subnet2 = ec2.create_subnet(VpcId=vpc.id, CidrBlock="172.28.7.191/26")
							 | 
						||
| 
								 | 
							
								    client = boto3.client("elb", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    client.create_load_balancer(
							 | 
						||
| 
								 | 
							
								        LoadBalancerName="my-lb",
							 | 
						||
| 
								 | 
							
								        Listeners=[{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}],
							 | 
						||
| 
								 | 
							
								        Subnets=[subnet1.id],
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.attach_load_balancer_to_subnets(
							 | 
						||
| 
								 | 
							
								        LoadBalancerName="my-lb", Subnets=[subnet2.id]
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lb = client.describe_load_balancers()["LoadBalancerDescriptions"][0]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lb.should.have.key("Subnets").which.should.have.length_of(2)
							 | 
						||
| 
								 | 
							
								    lb["Subnets"].should.contain(subnet1.id)
							 | 
						||
| 
								 | 
							
								    lb["Subnets"].should.contain(subnet2.id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_ec2
							 | 
						||
| 
								 | 
							
								@mock_elb
							 | 
						||
| 
								 | 
							
								def test_elb_detach_load_balancer_to_subnets():
							 | 
						||
| 
								 | 
							
								    ec2 = boto3.resource("ec2", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    vpc = ec2.create_vpc(CidrBlock="172.28.7.0/24", InstanceTenancy="default")
							 | 
						||
| 
								 | 
							
								    subnet1 = ec2.create_subnet(VpcId=vpc.id, CidrBlock="172.28.7.192/26")
							 | 
						||
| 
								 | 
							
								    subnet2 = ec2.create_subnet(VpcId=vpc.id, CidrBlock="172.28.7.191/26")
							 | 
						||
| 
								 | 
							
								    client = boto3.client("elb", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    client.create_load_balancer(
							 | 
						||
| 
								 | 
							
								        LoadBalancerName="my-lb",
							 | 
						||
| 
								 | 
							
								        Listeners=[{"Protocol": "tcp", "LoadBalancerPort": 80, "InstancePort": 8080}],
							 | 
						||
| 
								 | 
							
								        Subnets=[subnet1.id, subnet2.id],
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.detach_load_balancer_from_subnets(
							 | 
						||
| 
								 | 
							
								        LoadBalancerName="my-lb", Subnets=[subnet1.id]
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lb = client.describe_load_balancers()["LoadBalancerDescriptions"][0]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lb.should.have.key("Subnets").which.should.have.length_of(1)
							 | 
						||
| 
								 | 
							
								    lb["Subnets"].should.contain(subnet2.id)
							 |