This commit is contained in:
Wei Zhou 2013-06-10 14:15:52 +02:00
commit c2b20a455c
2 changed files with 244 additions and 250 deletions

View File

@ -945,6 +945,13 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
VMTemplateVO template = _templateDao.findSystemVMTemplate(dataCenterId); VMTemplateVO template = _templateDao.findSystemVMTemplate(dataCenterId);
HostVO secondaryStorageHost = this.templateMgr.getSecondaryStorageHost(dataCenterId); HostVO secondaryStorageHost = this.templateMgr.getSecondaryStorageHost(dataCenterId);
boolean templateReady = false; boolean templateReady = false;
if (secondaryStorageHost == null) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("No secondary storage available in zone " + dataCenterId + ", wait until it is ready to launch secondary storage vm");
}
return false;
}
if (template != null && secondaryStorageHost != null) { if (template != null && secondaryStorageHost != null) {
VMTemplateHostVO templateHostRef = _vmTemplateHostDao.findByHostTemplate(secondaryStorageHost.getId(), template.getId()); VMTemplateHostVO templateHostRef = _vmTemplateHostDao.findByHostTemplate(secondaryStorageHost.getId(), template.getId());

View File

@ -44,138 +44,139 @@ from marvin.integration.lib.common import (get_domain,
class Services: class Services:
"""Test VPC network services - Port Forwarding Rules Test Data Class. """Test VPC network services - Port Forwarding Rules Test Data Class.
""" """
def __init__(self): def __init__(self):
self.services = { self.services = {
"account": { "account": {
"email": "test@test.com", "email": "test@test.com",
"firstname": "Test", "firstname": "Test",
"lastname": "User", "lastname": "User",
"username": "test", "username": "test",
# Random characters are appended for unique # Random characters are appended for unique
# username # username
"password": "password", "password": "password",
}, },
"host1":None, "host1": None,
"host2":None, "host2": None,
"service_offering": { "service_offering": {
"name": "Tiny Instance", "name": "Tiny Instance",
"displaytext": "Tiny Instance", "displaytext": "Tiny Instance",
"cpunumber": 1, "cpunumber": 1,
"cpuspeed": 1000, "cpuspeed": 1000,
"memory": 512, "memory": 512,
}, },
"network_offering": { "network_offering": {
"name": 'VPC Network offering', "name": 'VPC Network offering',
"displaytext": 'VPC Network off', "displaytext": 'VPC Network off',
"guestiptype": 'Isolated', "guestiptype": 'Isolated',
"supportedservices": 'Vpn,Dhcp,Dns,SourceNat,PortForwarding,Lb,UserData,StaticNat,NetworkACL', "supportedservices": 'Vpn,Dhcp,Dns,SourceNat,PortForwarding,Lb,UserData,StaticNat,NetworkACL',
"traffictype": 'GUEST', "traffictype": 'GUEST',
"availability": 'Optional', "availability": 'Optional',
"useVpc": 'on', "useVpc": 'on',
"serviceProviderList": { "serviceProviderList": {
"Vpn": 'VpcVirtualRouter', "Vpn": 'VpcVirtualRouter',
"Dhcp": 'VpcVirtualRouter', "Dhcp": 'VpcVirtualRouter',
"Dns": 'VpcVirtualRouter', "Dns": 'VpcVirtualRouter',
"SourceNat": 'VpcVirtualRouter', "SourceNat": 'VpcVirtualRouter',
"PortForwarding": 'VpcVirtualRouter', "PortForwarding": 'VpcVirtualRouter',
"Lb": 'VpcVirtualRouter', "Lb": 'VpcVirtualRouter',
"UserData": 'VpcVirtualRouter', "UserData": 'VpcVirtualRouter',
"StaticNat": 'VpcVirtualRouter', "StaticNat": 'VpcVirtualRouter',
"NetworkACL": 'VpcVirtualRouter' "NetworkACL": 'VpcVirtualRouter'
}, },
"servicecapabilitylist": { "servicecapabilitylist": {
}, },
}, },
"network_offering_no_lb": { "network_offering_no_lb": {
"name": 'VPC Network offering', "name": 'VPC Network offering',
"displaytext": 'VPC Network off', "displaytext": 'VPC Network off',
"guestiptype": 'Isolated', "guestiptype": 'Isolated',
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,UserData,StaticNat,NetworkACL', "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,UserData,StaticNat,NetworkACL',
"traffictype": 'GUEST', "traffictype": 'GUEST',
"availability": 'Optional', "availability": 'Optional',
"useVpc": 'on', "useVpc": 'on',
"serviceProviderList": { "serviceProviderList": {
"Dhcp": 'VpcVirtualRouter', "Dhcp": 'VpcVirtualRouter',
"Dns": 'VpcVirtualRouter', "Dns": 'VpcVirtualRouter',
"SourceNat": 'VpcVirtualRouter', "SourceNat": 'VpcVirtualRouter',
"PortForwarding": 'VpcVirtualRouter', "PortForwarding": 'VpcVirtualRouter',
"UserData": 'VpcVirtualRouter', "UserData": 'VpcVirtualRouter',
"StaticNat": 'VpcVirtualRouter', "StaticNat": 'VpcVirtualRouter',
"NetworkACL": 'VpcVirtualRouter' "NetworkACL": 'VpcVirtualRouter'
}, },
}, },
"vpc_offering": { "vpc_offering": {
"name": 'VPC off', "name": 'VPC off',
"displaytext": 'VPC off', "displaytext": 'VPC off',
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Lb,UserData,StaticNat', "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Lb,UserData,StaticNat',
}, },
"vpc": { "vpc": {
"name": "TestVPC", "name": "TestVPC",
"displaytext": "TestVPC", "displaytext": "TestVPC",
"cidr": '10.0.0.1/24' "cidr": '10.0.0.1/24'
}, },
"network": { "network": {
"name": "Test Network", "name": "Test Network",
"displaytext": "Test Network", "displaytext": "Test Network",
"netmask": '255.255.255.0' "netmask": '255.255.255.0'
}, },
"lbrule": { "lbrule": {
"name": "SSH", "name": "SSH",
"alg": "leastconn", "alg": "leastconn",
# Algorithm used for load balancing # Algorithm used for load balancing
"privateport": 22, "privateport": 22,
"publicport": 2222, "publicport": 2222,
"openfirewall": False, "openfirewall": False,
"startport": 22, "startport": 22,
"endport": 2222, "endport": 2222,
"protocol": "TCP", "protocol": "TCP",
"cidrlist": '0.0.0.0/0', "cidrlist": '0.0.0.0/0',
}, },
"lbrule_http": { "lbrule_http": {
"name": "HTTP", "name": "HTTP",
"alg": "leastconn", "alg": "leastconn",
# Algorithm used for load balancing # Algorithm used for load balancing
"privateport": 80, "privateport": 80,
"publicport": 8888, "publicport": 8888,
"openfirewall": False, "openfirewall": False,
"startport": 80, "startport": 80,
"endport": 8888, "endport": 8888,
"protocol": "TCP", "protocol": "TCP",
"cidrlist": '0.0.0.0/0', "cidrlist": '0.0.0.0/0',
}, },
"natrule": { "natrule": {
"privateport": 22, "privateport": 22,
"publicport": 22, "publicport": 22,
"startport": 22, "startport": 22,
"endport": 22, "endport": 22,
"protocol": "TCP", "protocol": "TCP",
"cidrlist": '0.0.0.0/0', "cidrlist": '0.0.0.0/0',
}, },
"http_rule": { "http_rule": {
"privateport": 80, "privateport": 80,
"publicport": 80, "publicport": 80,
"startport": 80, "startport": 80,
"endport": 80, "endport": 80,
"cidrlist": '0.0.0.0/0', "cidrlist": '0.0.0.0/0',
"protocol": "TCP" "protocol": "TCP"
}, },
"virtual_machine": { "virtual_machine": {
"displayname": "Test VM", "displayname": "Test VM",
"username": "root", "username": "root",
"password": "password", "password": "password",
"ssh_port": 22, "ssh_port": 22,
"hypervisor": 'XenServer', "hypervisor": 'XenServer',
# Hypervisor type should be same as # Hypervisor type should be same as
# hypervisor type of cluster # hypervisor type of cluster
"privateport": 22, "privateport": 22,
"publicport": 22, "publicport": 22,
"protocol": 'TCP', "protocol": 'TCP',
}, },
"ostype": 'CentOS 5.3 (64-bit)', "ostype": 'CentOS 5.3 (64-bit)',
"sleep": 60, "sleep": 60,
"timeout": 10, "timeout": 10,
"mode": 'advanced' "mode": 'advanced'
} }
class TestVPCNetworkPFRules(cloudstackTestCase): class TestVPCNetworkPFRules(cloudstackTestCase):
@ -251,15 +252,12 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
try: try:
#Clean up, terminate the created network offerings #Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self._cleanup) cleanup_resources(self.apiclient, self._cleanup)
wait_for_cleanup(self.apiclient, [
"network.gc.interval",
"network.gc.wait"])
except Exception as e: except Exception as e:
self.debug("Warning: Exception during cleanup : %s" % e) self.debug("Warning: Exception during cleanup : %s" % e)
#raise Exception("Warning: Exception during cleanup : %s" % e) #raise Exception("Warning: Exception during cleanup : %s" % e)
return return
def get_Router_For_VPC(self): def get_vpcrouter(self):
routers = list_routers(self.apiclient, routers = list_routers(self.apiclient,
account=self.account.name, account=self.account.name,
domainid=self.account.domainid, domainid=self.account.domainid,
@ -276,8 +274,8 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
return router return router
def stop_VPC_VRouter(self): def stop_vpcrouter(self):
router = self.get_Router_For_VPC() router = self.get_vpcrouter()
self.debug("Stopping router ID: %s" % router.id) self.debug("Stopping router ID: %s" % router.id)
cmd = stopRouter.stopRouterCmd() cmd = stopRouter.stopRouterCmd()
cmd.id = router.id cmd.id = router.id
@ -298,7 +296,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
) )
return router return router
def start_VPC_VRouter(self, router): def start_vpcrouter(self, router):
# Start the VPC Router # Start the VPC Router
cmd = startRouter.startRouterCmd() cmd = startRouter.startRouterCmd()
cmd.id = router.id cmd.id = router.id
@ -348,7 +346,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
else: else:
self.debug("Failed to wget from VM=%s http server on public_ip=%s" % (vm.name, public_ip.ipaddress.ipaddress)) self.debug("Failed to wget from VM=%s http server on public_ip=%s" % (vm.name, public_ip.ipaddress.ipaddress))
def create_StaticNatRule_For_VM(self, vm, public_ip, network): def create_staticnat(self, vm, public_ip, network):
self.debug("Enabling static NAT for IP: %s" % self.debug("Enabling static NAT for IP: %s" %
public_ip.ipaddress.ipaddress) public_ip.ipaddress.ipaddress)
try: try:
@ -364,7 +362,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
self.fail("Failed to enable static NAT on IP: %s - %s" % ( self.fail("Failed to enable static NAT on IP: %s - %s" % (
public_ip.ipaddress.ipaddress, e)) public_ip.ipaddress.ipaddress, e))
def create_NatRule_For_VM(self, vm, public_ip, network, services=None): def create_natrule(self, vm, public_ip, network, services=None):
self.debug("Creatinng NAT rule in network for vm with public IP") self.debug("Creatinng NAT rule in network for vm with public IP")
if not services: if not services:
services = self.services["natrule"] services = self.services["natrule"]
@ -386,7 +384,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
self.debug('nwacl_nat=%s' % nwacl_nat.__dict__) self.debug('nwacl_nat=%s' % nwacl_nat.__dict__)
return nat_rule return nat_rule
def acquire_Public_IP(self, network): def acquire_publicip(self, network):
self.debug("Associating public IP for network: %s" % network.name) self.debug("Associating public IP for network: %s" % network.name)
public_ip = PublicIPAddress.create(self.apiclient, public_ip = PublicIPAddress.create(self.apiclient,
accountid=self.account.name, accountid=self.account.name,
@ -400,7 +398,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
)) ))
return public_ip return public_ip
def create_VPC(self, cidr='10.1.2.1/16'): def create_vpc(self, cidr='10.1.2.1/16'):
self.debug("Creating a VPC offering..") self.debug("Creating a VPC offering..")
self.services["vpc_offering"]["name"] = self.services["vpc_offering"]["name"] + str(cidr) self.services["vpc_offering"]["name"] = self.services["vpc_offering"]["name"] + str(cidr)
vpc_off = VpcOffering.create( vpc_off = VpcOffering.create(
@ -424,7 +422,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
) )
return vpc return vpc
def create_Network(self, net_offerring, gateway='10.1.1.1',vpc=None): def create_network(self, net_offerring, gateway='10.1.1.1',vpc=None):
try: try:
self.debug('Create NetworkOffering') self.debug('Create NetworkOffering')
net_offerring["name"] = "NET_OFF-" + str(gateway) net_offerring["name"] = "NET_OFF-" + str(gateway)
@ -453,7 +451,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
except: except:
self.fail('Unable to create a Network with offering=%s' % net_offerring) self.fail('Unable to create a Network with offering=%s' % net_offerring)
def create_VM_in_Network(self, network, host_id=None): def deployvm_in_network(self, network, host_id=None):
try: try:
self.debug('Creating VM in network=%s' % network.name) self.debug('Creating VM in network=%s' % network.name)
vm = VirtualMachine.create( vm = VirtualMachine.create(
@ -471,7 +469,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
except: except:
self.fail('Unable to create VM in a Network=%s' % network.name) self.fail('Unable to create VM in a Network=%s' % network.name)
def create_LB_Rule(self, public_ip, network, vmarray, services=None): def create_lbrule(self, public_ip, network, vmarray, services=None):
self.debug("Creating LB rule for IP address: %s" % self.debug("Creating LB rule for IP address: %s" %
public_ip.ipaddress.ipaddress) public_ip.ipaddress.ipaddress)
objservices = None objservices = None
@ -493,7 +491,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
lb_rule.assign(self.apiclient, vmarray) lb_rule.assign(self.apiclient, vmarray)
return lb_rule return lb_rule
def create_egress_Internet_Rule(self, network): def open_egress_to_world(self, network):
self.debug("Adding Egress rules to network %s and %s to allow access to internet" % (network.name,self.services["http_rule"])) self.debug("Adding Egress rules to network %s and %s to allow access to internet" % (network.name,self.services["http_rule"]))
nwacl_internet_1 = NetworkACL.create( nwacl_internet_1 = NetworkACL.create(
self.apiclient, self.apiclient,
@ -507,8 +505,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_01_network_services_VPC_StopCreatePF(self): def test_01_network_services_VPC_StopCreatePF(self):
""" Test case no 204 : Create PF rules for a single virtual network of a VPC, """ Test : Create VPC PF rules on acquired public ip when VpcVirtualRouter is stopped
using a new Public IP Address available with the VPC when Virtual Router is in Stopped State
""" """
# Validate the following # Validate the following
@ -521,20 +518,19 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 7. Start VPC Virtual Router. # 7. Start VPC Virtual Router.
# 8. Successfully ssh into the Guest VM using the PF rule # 8. Successfully ssh into the Guest VM using the PF rule
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
self.create_NatRule_For_VM( vm_1, public_ip_1, network_1) self.create_natrule( vm_1, public_ip_1, network_1)
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_02_network_services_VPC_CreatePF(self): def test_02_network_services_VPC_CreatePF(self):
""" Test case no 190 : Create PF rules for a single virtual network of a VPC using a """ Test Create VPC PF rules on acquired public ip when VpcVirtualRouter is Running
new Public IP Address available with the VPC when Virtual Router is in Running State
""" """
# Validate the following # Validate the following
@ -545,17 +541,16 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 5. Use the Create PF rule for vm in network1. # 5. Use the Create PF rule for vm in network1.
# 6. Successfully ssh into the Guest VM using the PF rule # 6. Successfully ssh into the Guest VM using the PF rule
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
self.create_NatRule_For_VM( vm_1, public_ip_1, network_1) self.create_natrule( vm_1, public_ip_1, network_1)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_03_network_services_VPC_StopCreateMultiplePF(self): def test_03_network_services_VPC_StopCreateMultiplePF(self):
""" Test case no 205 : Create PF rules for a two/multiple virtual networks of a VPC using """ Test Create multiple VPC PF rules on acquired public ip in diff't networks when VpcVirtualRouter is stopped
a new Public IP Address available with the VPC when Virtual Router is in Stopped State
""" """
# Validate the following # Validate the following
@ -571,24 +566,23 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 10. Start VPC Virtual Router. # 10. Start VPC Virtual Router.
# 11. Successfully ssh into the Guest VM1 and VM2 using the PF rule # 11. Successfully ssh into the Guest VM1 and VM2 using the PF rule
network_1 = self.create_Network(self.services["network_offering_no_lb"]) network_1 = self.create_network(self.services["network_offering_no_lb"])
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.deployvm_in_network(network_1)
vm_2 = self.create_VM_in_Network(network_2) vm_2 = self.deployvm_in_network(network_2)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
public_ip_2 = self.acquire_Public_IP(network_2) public_ip_2 = self.acquire_publicip(network_2)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) self.create_natrule(vm_1, public_ip_1, network_1)
self.create_NatRule_For_VM(vm_2, public_ip_2, network_2) self.create_natrule(vm_2, public_ip_2, network_2)
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_ssh_into_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_2, public_ip_2, testnegative=False) self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_04_network_services_VPC_CreateMultiplePF(self): def test_04_network_services_VPC_CreateMultiplePF(self):
""" Test case no 191 : Create PF rules for a two/multiple virtual networks of a VPC using a """ Test Create multiple VPC PF rules on acquired public ip in diff't networks when VpcVirtualRouter is running
new Public IP Address available with the VPC when Virtual Router is in Running State
""" """
# Validate the following # Validate the following
@ -603,24 +597,23 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 9. Start VPC Virtual Router. # 9. Start VPC Virtual Router.
# 10. Successfully ssh into the Guest VM1 and VM2 using the PF rule # 10. Successfully ssh into the Guest VM1 and VM2 using the PF 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')
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
vm_2 = self.create_VM_in_Network(network_2) vm_2 = self.deployvm_in_network(network_2)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
public_ip_2 = self.acquire_Public_IP(network_2) public_ip_2 = self.acquire_publicip(network_2)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) self.create_natrule(vm_1, public_ip_1, network_1)
self.create_NatRule_For_VM(vm_2, public_ip_2, network_2) self.create_natrule(vm_2, public_ip_2, network_2)
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_ssh_into_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_2, public_ip_2, testnegative=False) self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_05_network_services_VPC_StopDeletePF(self): def test_05_network_services_VPC_StopDeletePF(self):
""" Test case no 207 : Delete few(not all) PF rules for a single virtual network of """ Test delete a PF rule in VPC when VpcVirtualRouter is Stopped
a VPC belonging to a single Public IP Address when Virtual Router is in Stopped State
""" """
# Validate the following # Validate the following
@ -636,24 +629,23 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 10. Start VPC Virtual Router. # 10. Start VPC Virtual Router.
# 11. wget a file present on http server of VM1 should fail # 11. wget a file present on http server of VM1 should fail
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) self.create_natrule(vm_1, public_ip_1, network_1)
http_rule = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1, self.services["http_rule"]) http_rule = self.create_natrule(vm_1, public_ip_1, network_1, self.services["http_rule"])
#http_rule = self.create_egress_Internet_Rule(network_1) #http_rule = self.create_egress_Internet_Rule(network_1)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
http_rule.delete() http_rule.delete()
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_06_network_services_VPC_DeletePF(self): def test_06_network_services_VPC_DeletePF(self):
""" Test case no 193 : Delete few(not all) PF rules for a single virtual network of """ Test delete a PF rule in VPC when VpcVirtualRouter is Running
a VPC belonging to a single Public IP Address when Virtual Router is in Running State
""" """
# Validate the following # Validate the following
@ -667,11 +659,11 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 9. Delete internet PF rule # 9. Delete internet PF rule
# 10. wget a file present on http server of VM1 should fail # 10. wget a file present on http server of VM1 should fail
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) self.create_natrule(vm_1, public_ip_1, network_1)
http_rule=self.create_NatRule_For_VM(vm_1, public_ip_1, network_1, self.services["http_rule"]) http_rule=self.create_natrule(vm_1, public_ip_1, network_1, self.services["http_rule"])
#http_rule = self.create_egress_Internet_Rule(network_1) #http_rule = self.create_egress_Internet_Rule(network_1)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
@ -681,8 +673,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_07_network_services_VPC_StopDeleteAllPF(self): def test_07_network_services_VPC_StopDeleteAllPF(self):
""" Test case no 208 : Delete all PF rules for a single virtual network of a """ Test delete all PF rules in VPC when VpcVirtualRouter is Stopped
VPC belonging to a single Public IP Address when Virtual Router is in Stopped State
""" """
# Validate the following # Validate the following
@ -699,26 +690,25 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 11. wget a file present on http server of VM1 should fail # 11. wget a file present on http server of VM1 should fail
# 12. ssh into Guest VM using the PF rule should fail # 12. ssh into Guest VM using the PF rule should fail
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
nat_rule = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) nat_rule = self.create_natrule(vm_1, public_ip_1, network_1)
http_rule = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1, self.services["http_rule"]) http_rule = self.create_natrule(vm_1, public_ip_1, network_1, self.services["http_rule"])
#http_rule = self.create_egress_Internet_Rule(network_1) #http_rule = self.create_egress_Internet_Rule(network_1)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
http_rule.delete() http_rule.delete()
nat_rule.delete() nat_rule.delete()
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
return return
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_08_network_services_VPC_DeleteAllPF(self): def test_08_network_services_VPC_DeleteAllPF(self):
""" Test case no 194 : Delete all PF rules for a single virtual network of a """ Test delete all PF rules in VPC when VpcVirtualRouter is Running
VPC belonging to a single Public IP Address when Virtual Router is in Running State
""" """
# Validate the following # Validate the following
@ -733,11 +723,11 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 9. wget a file present on http server of VM1 should fail # 9. wget a file present on http server of VM1 should fail
# 10. ssh into Guest VM using the PF rule should fail # 10. ssh into Guest VM using the PF rule should fail
network_1 = self.create_Network(self.services["network_offering"]) network_1 = self.create_network(self.services["network_offering"])
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
nat_rule = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) nat_rule = self.create_natrule(vm_1, public_ip_1, network_1)
http_rule = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1, self.services["http_rule"]) http_rule = self.create_natrule(vm_1, public_ip_1, network_1, self.services["http_rule"])
#http_rule = self.create_egress_Internet_Rule(network_1) #http_rule = self.create_egress_Internet_Rule(network_1)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False) self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
@ -749,8 +739,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_09_network_services_VPC_StopDeleteAllMultiplePF(self): def test_09_network_services_VPC_StopDeleteAllMultiplePF(self):
""" Test case no 209 : Delete all PF rules for two/multiple virtual networks of a VPC. """ Test delete all PF rules in VPC across multiple networks when VpcVirtualRouter is Stopped
Observe the status of the Public IP Addresses of the rules when Virtual Router is in Stopped State
""" """
# Validate the following # Validate the following
@ -769,20 +758,20 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 12. Start VPC Virtual Router. # 12. Start VPC Virtual Router.
# 13. Fail to ssh and http to vm1, vm2, vm3 and vm4. # 13. Fail to ssh and http to vm1, vm2, vm3 and vm4.
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')
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
vm_2 = self.create_VM_in_Network(network_1) vm_2 = self.deployvm_in_network(network_1)
vm_3 = self.create_VM_in_Network(network_2) vm_3 = self.deployvm_in_network(network_2)
vm_4 = self.create_VM_in_Network(network_2) vm_4 = self.deployvm_in_network(network_2)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
public_ip_2 = self.acquire_Public_IP(network_1) public_ip_2 = self.acquire_publicip(network_1)
nat_rule1 = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) nat_rule1 = self.create_natrule(vm_1, public_ip_1, network_1)
nat_rule2 = self.create_NatRule_For_VM(vm_2, public_ip_2, network_1) nat_rule2 = self.create_natrule(vm_2, public_ip_2, network_1)
http_rule1 = self.create_egress_Internet_Rule(network_1) http_rule1 = self.open_egress_to_world(network_1)
nat_rule3 = self.create_NatRule_For_VM(vm_3, public_ip_1, network_2) nat_rule3 = self.create_natrule(vm_3, public_ip_1, network_2)
nat_rule4 = self.create_NatRule_For_VM(vm_4, public_ip_2, network_2) nat_rule4 = self.create_natrule(vm_4, public_ip_2, network_2)
http_rule2 = self.create_egress_Internet_Rule(network_2) http_rule2 = self.open_egress_to_world(network_2)
self.check_ssh_into_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_2, public_ip_2, testnegative=False) self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=False)
@ -791,14 +780,14 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
self.check_wget_from_vm(vm_2, public_ip_2, testnegative=False) self.check_wget_from_vm(vm_2, public_ip_2, testnegative=False)
self.check_wget_from_vm(vm_3, public_ip_1, testnegative=False) self.check_wget_from_vm(vm_3, public_ip_1, testnegative=False)
self.check_wget_from_vm(vm_4, public_ip_2, testnegative=False) self.check_wget_from_vm(vm_4, public_ip_2, testnegative=False)
router = self.stop_VPC_VRouter() router = self.stop_vpcrouter()
nat_rule1.delete() nat_rule1.delete()
nat_rule2.delete() nat_rule2.delete()
nat_rule3.delete() nat_rule3.delete()
nat_rule4.delete() nat_rule4.delete()
http_rule1.delete() http_rule1.delete()
http_rule2.delete() http_rule2.delete()
self.start_VPC_VRouter(router) self.start_vpcrouter(router)
self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True) self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True)
self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=True) self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=True)
self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=True) self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=True)
@ -811,10 +800,8 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
@attr(tags=["advanced", "intervlan"]) @attr(tags=["advanced", "intervlan"])
def test_10_network_services_VPC_DeleteAllMultiplePF(self): def test_10_network_services_VPC_DeleteAllMultiplePF(self):
""" Test case no 195: Delete all PF rules for two/multiple virtual networks of a VPC. """ Test delete all PF rules in VPC across multiple networks when VpcVirtualRouter is Running
Observe the status of the Public IP Addresses of the rules when Virtual Router is in Running State
""" """
# Validate the following # Validate the following
# 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.
@ -829,20 +816,20 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
# 12. Delete all PF rultes for vm1, vm2, vm3 and vm4. # 12. Delete all PF rultes for vm1, vm2, vm3 and vm4.
# 13. Fail to ssh and http to vm1, vm2, vm3 and vm4. # 13. Fail to ssh and http to vm1, vm2, vm3 and vm4.
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')
vm_1 = self.create_VM_in_Network(network_1) vm_1 = self.deployvm_in_network(network_1)
vm_2 = self.create_VM_in_Network(network_1) vm_2 = self.deployvm_in_network(network_1)
vm_3 = self.create_VM_in_Network(network_2) vm_3 = self.deployvm_in_network(network_2)
vm_4 = self.create_VM_in_Network(network_2) vm_4 = self.deployvm_in_network(network_2)
public_ip_1 = self.acquire_Public_IP(network_1) public_ip_1 = self.acquire_publicip(network_1)
public_ip_2 = self.acquire_Public_IP(network_1) public_ip_2 = self.acquire_publicip(network_1)
nat_rule1 = self.create_NatRule_For_VM(vm_1, public_ip_1, network_1) nat_rule1 = self.create_natrule(vm_1, public_ip_1, network_1)
nat_rule2 = self.create_NatRule_For_VM(vm_2, public_ip_2, network_1) nat_rule2 = self.create_natrule(vm_2, public_ip_2, network_1)
http_rule1 = self.create_egress_Internet_Rule(network_1) http_rule1 = self.open_egress_to_world(network_1)
nat_rule3 = self.create_NatRule_For_VM(vm_3, public_ip_1, network_2) nat_rule3 = self.create_natrule(vm_3, public_ip_1, network_2)
nat_rule4 = self.create_NatRule_For_VM(vm_4, public_ip_2, network_2) nat_rule4 = self.create_natrule(vm_4, public_ip_2, network_2)
http_rule2 = self.create_egress_Internet_Rule(network_2) http_rule2 = self.open_egress_to_world(network_2)
self.check_ssh_into_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_2, public_ip_2, testnegative=False) self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=False) self.check_ssh_into_vm(vm_3, public_ip_1, testnegative=False)