mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Automation: Fix test_vpc_network_lbrules.py
This commit is contained in:
parent
59854fd505
commit
6ebf7e273d
@ -43,6 +43,7 @@ from marvin.integration.lib.common import (get_domain,
|
|||||||
cleanup_resources,
|
cleanup_resources,
|
||||||
list_routers)
|
list_routers)
|
||||||
import socket
|
import socket
|
||||||
|
import time
|
||||||
|
|
||||||
class Services:
|
class Services:
|
||||||
"""Test VPC network services Load Balancing Rules Test data
|
"""Test VPC network services Load Balancing Rules Test data
|
||||||
@ -126,10 +127,10 @@ class Services:
|
|||||||
"alg": "leastconn",
|
"alg": "leastconn",
|
||||||
# Algorithm used for load balancing
|
# Algorithm used for load balancing
|
||||||
"privateport": 22,
|
"privateport": 22,
|
||||||
"publicport": 2222,
|
"publicport": 22,
|
||||||
"openfirewall": False,
|
"openfirewall": False,
|
||||||
"startport": 22,
|
"startport": 22,
|
||||||
"endport": 2222,
|
"endport": 22,
|
||||||
"protocol": "TCP",
|
"protocol": "TCP",
|
||||||
"cidrlist": '0.0.0.0/0',
|
"cidrlist": '0.0.0.0/0',
|
||||||
},
|
},
|
||||||
@ -138,10 +139,10 @@ class Services:
|
|||||||
"alg": "leastconn",
|
"alg": "leastconn",
|
||||||
# Algorithm used for load balancing
|
# Algorithm used for load balancing
|
||||||
"privateport": 80,
|
"privateport": 80,
|
||||||
"publicport": 8888,
|
"publicport": 80,
|
||||||
"openfirewall": False,
|
"openfirewall": False,
|
||||||
"startport": 80,
|
"startport": 80,
|
||||||
"endport": 8888,
|
"endport": 80,
|
||||||
"protocol": "TCP",
|
"protocol": "TCP",
|
||||||
"cidrlist": '0.0.0.0/0',
|
"cidrlist": '0.0.0.0/0',
|
||||||
},
|
},
|
||||||
@ -197,7 +198,8 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
cls.services["ostype"]
|
cls.services["ostype"]
|
||||||
)
|
)
|
||||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||||
cls.services["virtual_machine"]["template"] = cls.template.id
|
#cls.services["virtual_machine"]["template"] = cls.template.id
|
||||||
|
cls.services["virtual_machine"]["template"] = "719b88ea-5b54-4317-8bb3-d6b0b12da89c"
|
||||||
|
|
||||||
cls.service_offering = ServiceOffering.create(
|
cls.service_offering = ServiceOffering.create(
|
||||||
cls.api_client,
|
cls.api_client,
|
||||||
@ -488,6 +490,14 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
)
|
)
|
||||||
self.debug("Adding virtual machines %s and %s to LB rule" % (vmarray[0], vmarray[1]))
|
self.debug("Adding virtual machines %s and %s to LB rule" % (vmarray[0], vmarray[1]))
|
||||||
lb_rule.assign(self.apiclient, vmarray)
|
lb_rule.assign(self.apiclient, vmarray)
|
||||||
|
|
||||||
|
self.debug("Adding NetworkACl rules to make NAT rule accessible")
|
||||||
|
nwacl_nat = NetworkACL.create(self.apiclient,
|
||||||
|
objservices,
|
||||||
|
networkid=network.id,
|
||||||
|
traffictype='Ingress'
|
||||||
|
)
|
||||||
|
self.debug('nwacl_nat=%s' % nwacl_nat.__dict__)
|
||||||
return lb_rule
|
return lb_rule
|
||||||
|
|
||||||
def create_egress_Internet_Rule(self, network):
|
def create_egress_Internet_Rule(self, network):
|
||||||
@ -514,8 +524,9 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
# 5. Deploy vm1 and vm2 in network1.
|
# 5. Deploy vm1 and vm2 in network1.
|
||||||
# 6. Deploy vm3 and vm4 in network2.
|
# 6. Deploy vm3 and vm4 in network2.
|
||||||
# 7. Use the Create LB rule for vm1 and vm2 in network1.
|
# 7. Use the Create LB rule for vm1 and vm2 in network1.
|
||||||
# 8. Use the Create LB rule for vm3 amd vm4 in network2.
|
# 8. Use the Create LB rule for vm3 amd vm4 in network2, should fail
|
||||||
# 11. List LB rule
|
# because it's no_lb offering
|
||||||
|
# 9. List LB rule
|
||||||
|
|
||||||
network_1 = self.create_Network(self.services["network_offering"])
|
network_1 = self.create_Network(self.services["network_offering"])
|
||||||
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
||||||
@ -525,9 +536,11 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_3 = self.create_VM_in_Network(network_2)
|
vm_3 = self.create_VM_in_Network(network_2)
|
||||||
vm_4 = self.create_VM_in_Network(network_2)
|
vm_4 = self.create_VM_in_Network(network_2)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule1 = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2])
|
lb_rule1 = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2]) #
|
||||||
public_ip_2 = self.acquire_Public_IP(network_2)
|
public_ip_2 = self.acquire_Public_IP(network_2)
|
||||||
lb_rule2 = self.create_LB_Rule(public_ip_2, network_2, [vm_3, vm_4])
|
with self.assertRaises(Exception):
|
||||||
|
self.create_LB_Rule(public_ip_2, network_2, [vm_3, vm_4])
|
||||||
|
|
||||||
lb_rules = LoadBalancerRule.list(self.apiclient,
|
lb_rules = LoadBalancerRule.list(self.apiclient,
|
||||||
id=lb_rule1.id,
|
id=lb_rule1.id,
|
||||||
listall=True
|
listall=True
|
||||||
@ -536,49 +549,6 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
None,
|
None,
|
||||||
"Failed to list the LB Rule"
|
"Failed to list the LB Rule"
|
||||||
)
|
)
|
||||||
lb_rules = LoadBalancerRule.list(self.apiclient,
|
|
||||||
id=lb_rule2.id,
|
|
||||||
listall=True
|
|
||||||
)
|
|
||||||
self.failIfEqual(lb_rules,
|
|
||||||
None,
|
|
||||||
"Failed to list the LB Rule"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
@attr(tags=["advanced", "intervlan"])
|
|
||||||
def test_02_VPC_LBRulesAndVMListing(self):
|
|
||||||
""" Test case no 211 and 228: List only VMs suitable for the Virtual Network on VPC for LB Rule
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Validate the following
|
|
||||||
# 1. Create a VPC with cidr - 10.1.1.1/16
|
|
||||||
# 2. Create a Network offering - NO1 with all supported services
|
|
||||||
# 3. Add network1(10.1.1.1/24) using N01 to this VPC.
|
|
||||||
# 4. Add network2(10.1.2.1/24) using N01 to this VPC.
|
|
||||||
# 5. Deploy vm1 and vm2 in network1 on primary host.
|
|
||||||
# 6. Deploy vm3 and vm4 in network2 on secondary host.
|
|
||||||
# 7. Use the Create LB rule for vm1 and vm2 in network1.
|
|
||||||
# 9. List LB rule for network1 list vms on network1 for selection of LB rule.
|
|
||||||
|
|
||||||
network_1 = self.create_Network(self.services["network_offering"])
|
|
||||||
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
|
||||||
vm_1 = self.create_VM_in_Network(network_1)
|
|
||||||
vm_2 = self.create_VM_in_Network(network_1)
|
|
||||||
vm_3 = self.create_VM_in_Network(network_2)
|
|
||||||
self.debug('vm_3=%s' % vm_3.id)
|
|
||||||
vm_4 = self.create_VM_in_Network(network_2)
|
|
||||||
self.debug('vm_4=%s' % vm_4.id)
|
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2])
|
|
||||||
lb_rules = LoadBalancerRule.list(self.apiclient,
|
|
||||||
id=lb_rule.id,
|
|
||||||
listall=True
|
|
||||||
)
|
|
||||||
self.failIfEqual(lb_rules,
|
|
||||||
None,
|
|
||||||
"Failed to list the LB Rule"
|
|
||||||
)
|
|
||||||
vms = VirtualMachine.list(self.apiclient,
|
vms = VirtualMachine.list(self.apiclient,
|
||||||
networkid=network_1.id,
|
networkid=network_1.id,
|
||||||
listall=True
|
listall=True
|
||||||
@ -590,7 +560,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
return
|
return
|
||||||
|
|
||||||
@attr(tags=["advanced", "intervlan"])
|
@attr(tags=["advanced", "intervlan"])
|
||||||
def test_03_VPC_CreateLBRuleInMultipleNetworks(self):
|
def test_02_VPC_CreateLBRuleInMultipleNetworks(self):
|
||||||
""" Test Create LB rules for 1 network which is part of a two/multiple virtual networks of a
|
""" Test Create LB rules for 1 network which is part of a two/multiple virtual networks of a
|
||||||
VPC using a new Public IP Address available with the VPC when the Virtual Router is in Running State
|
VPC using a new Public IP Address available with the VPC when the Virtual Router is in Running State
|
||||||
"""
|
"""
|
||||||
@ -599,17 +569,15 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
# 1. Create a VPC with cidr - 10.1.1.1/16
|
# 1. Create a VPC with cidr - 10.1.1.1/16
|
||||||
# 2. Create a Network offering - NO1 with all supported services
|
# 2. Create a Network offering - NO1 with all supported services
|
||||||
# 3. Add network1(10.1.1.1/24) using N01 to this VPC.
|
# 3. Add network1(10.1.1.1/24) using N01 to this VPC.
|
||||||
# 4. Add network2(10.1.2.1/24) using N01 to this VPC.
|
# 4. Deploy vm1, vm2 and vm3 in network1 on primary host.
|
||||||
# 5. Deploy vm1, vm2 and vm3 in network1 on primary host.
|
# 5. Use the Create LB rule for vm1 and vm2 in network1.
|
||||||
# 7. Use the Create LB rule for vm1 and vm2 in network1.
|
# 6. Add vm3 to LB rule.
|
||||||
# 8. Add vm3 to LB rule.
|
# 7. wget a file and check for LB rule.
|
||||||
# 9. wget a file and check for LB rule.
|
|
||||||
|
|
||||||
network_1 = self.create_Network(self.services["network_offering"])
|
network_1 = self.create_Network(self.services["network_offering"])
|
||||||
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
|
||||||
vm_1 = self.create_VM_in_Network(network_1)
|
vm_1 = self.create_VM_in_Network(network_1)
|
||||||
vm_2 = self.create_VM_in_Network(network_1)
|
vm_2 = self.create_VM_in_Network(network_1)
|
||||||
vm_3 = self.create_VM_in_Network(network_2)
|
vm_3 = self.create_VM_in_Network(network_1)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
||||||
lb_rule.assign(self.apiclient, [vm_3])
|
lb_rule.assign(self.apiclient, [vm_3])
|
||||||
@ -617,7 +585,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
return
|
return
|
||||||
|
|
||||||
@attr(tags=["advanced", "intervlan"])
|
@attr(tags=["advanced", "intervlan"])
|
||||||
def test_04_VPC_CreateLBRuleInMultipleNetworksVRStoppedState(self):
|
def test_03_VPC_CreateLBRuleInMultipleNetworksVRStoppedState(self):
|
||||||
""" Test case no 222 : Create LB rules for a two/multiple virtual networks of a
|
""" Test case no 222 : Create LB rules for a two/multiple virtual networks of a
|
||||||
VPC using a new Public IP Address available with the VPC when the Virtual Router is in Stopped State
|
VPC using a new Public IP Address available with the VPC when the Virtual Router is in Stopped State
|
||||||
"""
|
"""
|
||||||
@ -636,10 +604,19 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
network_2 = self.create_Network(self.services["network_offering_no_lb"], '10.1.2.1')
|
||||||
vm_1 = self.create_VM_in_Network(network_1)
|
vm_1 = self.create_VM_in_Network(network_1)
|
||||||
vm_2 = self.create_VM_in_Network(network_1)
|
vm_2 = self.create_VM_in_Network(network_1)
|
||||||
vm_3 = self.create_VM_in_Network(network_2)
|
vm_3 = self.create_VM_in_Network(network_1)
|
||||||
|
|
||||||
|
# wait until VM is up before stop the VR
|
||||||
|
time.sleep(120)
|
||||||
|
|
||||||
|
router = self.stop_VPC_VRouter()
|
||||||
|
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
||||||
lb_rule.assign(self.apiclient, [vm_3])
|
lb_rule.assign(self.apiclient, [vm_3])
|
||||||
|
|
||||||
|
self.start_VPC_VRouter(router)
|
||||||
|
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -695,10 +672,16 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_1 = self.create_VM_in_Network(network_1)
|
vm_1 = self.create_VM_in_Network(network_1)
|
||||||
vm_2 = self.create_VM_in_Network(network_1)
|
vm_2 = self.create_VM_in_Network(network_1)
|
||||||
vm_3 = self.create_VM_in_Network(network_1)
|
vm_3 = self.create_VM_in_Network(network_1)
|
||||||
|
# wait until VM is up before stop the VR
|
||||||
|
time.sleep(120)
|
||||||
|
|
||||||
|
router = self.stop_VPC_VRouter()
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule_http = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2, vm_3], self.services["lbrule_http"])
|
lb_rule_http = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2, vm_3], self.services["lbrule_http"])
|
||||||
lb_rule_nat = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2, vm_3])
|
lb_rule_nat = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2, vm_3])
|
||||||
self.debug('lb_rule_http=%s' % lb_rule_http.__dict__)
|
self.debug('lb_rule_http=%s' % lb_rule_http.__dict__)
|
||||||
|
self.start_VPC_VRouter(router)
|
||||||
|
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
||||||
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
|
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
|
||||||
lb_rule_nat.delete(self.apiclient)
|
lb_rule_nat.delete(self.apiclient)
|
||||||
@ -799,11 +782,11 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_3 = self.create_VM_in_Network(network_2)
|
vm_3 = self.create_VM_in_Network(network_2)
|
||||||
vm_4 = self.create_VM_in_Network(network_2)
|
vm_4 = self.create_VM_in_Network(network_2)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
||||||
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
||||||
try:
|
try:
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_3, vm_4])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_3, vm_4], self.services["lbrule_http"])
|
||||||
self.fail('Successfully created LB rule for vm_3, vm_4 in network1')
|
self.fail('Successfully created LB rule for vm_3, vm_4 in network1')
|
||||||
except:
|
except:
|
||||||
self.debug('Failed to Create LB rule vm_3 and vm_4')
|
self.debug('Failed to Create LB rule vm_3 and vm_4')
|
||||||
@ -836,11 +819,11 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_4 = self.create_VM_in_Network(network_3)
|
vm_4 = self.create_VM_in_Network(network_3)
|
||||||
self.debug('vm_4=%s' % vm_4.id)
|
self.debug('vm_4=%s' % vm_4.id)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
||||||
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
|
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
|
||||||
try:
|
try:
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_2, [vm_3, vm_4])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_2, [vm_3, vm_4], self.services["lbrule_http"])
|
||||||
self.fail('Successfully created LB rule for vm_3, vm_4 in network2')
|
self.fail('Successfully created LB rule for vm_3, vm_4 in network2')
|
||||||
except:
|
except:
|
||||||
self.debug('Failed to Create LB rule vm_3 and vm_4 in network2')
|
self.debug('Failed to Create LB rule vm_3 and vm_4 in network2')
|
||||||
@ -874,11 +857,11 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_4 = self.create_VM_in_Network(network_2)
|
vm_4 = self.create_VM_in_Network(network_2)
|
||||||
self.debug('vm_4=%s' % vm_4.id)
|
self.debug('vm_4=%s' % vm_4.id)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
|
||||||
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
self.debug('lb_rule=%s' % lb_rule.__dict__)
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
|
||||||
try:
|
try:
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_3, vm_1])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_3, vm_1], self.services["lbrule_http"])
|
||||||
self.fail('Successfully created LB rule for vm_3, vm_1 in network1')
|
self.fail('Successfully created LB rule for vm_3, vm_1 in network1')
|
||||||
except:
|
except:
|
||||||
self.debug('Failed to Create LB rule vm_3 and vm_1')
|
self.debug('Failed to Create LB rule vm_3 and vm_1')
|
||||||
@ -964,7 +947,6 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
|
|||||||
vm_2 = self.create_VM_in_Network(network_1)
|
vm_2 = self.create_VM_in_Network(network_1)
|
||||||
public_ip_1 = self.acquire_Public_IP(network_1)
|
public_ip_1 = self.acquire_Public_IP(network_1)
|
||||||
self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network_1)
|
self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network_1)
|
||||||
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
|
|
||||||
try:
|
try:
|
||||||
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_2, vm_1])
|
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_2, vm_1])
|
||||||
self.fail('Successfully created LB rule for vm_2, vm_1 in network1 %s=' % lb_rule.__dict__)
|
self.fail('Successfully created LB rule for vm_2, vm_1 in network1 %s=' % lb_rule.__dict__)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user