From 684268f4c3a6be1441f1f47df2979185c91bfcaf Mon Sep 17 00:00:00 2001 From: Gaurav Aradhye Date: Fri, 21 Nov 2014 17:07:37 +0530 Subject: [PATCH] CLOUDSTACK-7938: Marvin - Create a new section in test_data.py for configurable data and change test cases accordingly Signed-off-by: SrikanteswaraRao Talluri --- .../component/test_lb_secondary_ip.py | 14 +- .../component/test_netscaler_configs.py | 122 ++-- .../component/test_netscaler_lb.py | 652 ++++++------------ .../component/test_netscaler_lb_algo.py | 604 ++++++---------- .../component/test_netscaler_lb_sticky.py | 270 +++----- .../component/test_persistent_networks.py | 30 +- .../integration/component/test_portable_ip.py | 405 ++++------- .../integration/smoke/test_primary_storage.py | 2 +- tools/marvin/marvin/config/test_data.py | 61 +- tools/marvin/marvin/lib/common.py | 18 - 10 files changed, 785 insertions(+), 1393 deletions(-) diff --git a/test/integration/component/test_lb_secondary_ip.py b/test/integration/component/test_lb_secondary_ip.py index 841257f23bf..c76ab2cb757 100644 --- a/test/integration/component/test_lb_secondary_ip.py +++ b/test/integration/component/test_lb_secondary_ip.py @@ -49,8 +49,7 @@ from marvin.lib.common import (get_domain, get_template, verifyNetworkState, wait_for_cleanup, - add_netscaler, - GetNetscalerInfoFromConfig + add_netscaler ) from marvin.lib.utils import (validateList, @@ -1775,19 +1774,14 @@ class TestExternalLoadBalancer(cloudstackTestCase): cls.testdata["virtual_machine"]["zoneid"] = cls.zone.id cls.testdata["virtual_machine"]["template"] = template.id cls._cleanup = [] - - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.testdata["netscaler"] = response[0] - cls.testdata["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]\ + ["netscaler"]["lbdevicededicated"] = False try: cls.netscaler = add_netscaler( cls.api_client, cls.zone.id, - cls.testdata["netscaler"]) + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) except Exception as e: raise unittest.SkipTest("Failed to add netscaler device: %s" % e) diff --git a/test/integration/component/test_netscaler_configs.py b/test/integration/component/test_netscaler_configs.py index 91fb85b21dd..3bbd68a4c91 100644 --- a/test/integration/component/test_netscaler_configs.py +++ b/test/integration/component/test_netscaler_configs.py @@ -20,7 +20,6 @@ #Import Local Modules from nose.plugins.attrib import attr from marvin.cloudstackTestCase import cloudstackTestCase -#from marvin.cloudstackAPI import * from marvin.lib.utils import (cleanup_resources, random_gen) from marvin.lib.base import (VirtualMachine, @@ -159,8 +158,8 @@ class TestAddNetScaler(_NetScalerAddBase): # Balancing feature. # 2. Netscaler should be configured successfully. self.debug("Adding netscaler device: %s" % - self.services["netscaler_VPX"]["ipaddress"]) - netscaler_config = dict(self.services["netscaler_VPX"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) + netscaler_config = dict(self.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) netscaler = NetScaler.add( self.apiclient, @@ -236,7 +235,7 @@ class TestInvalidParametersNetscaler(_NetScalerAddBase): # 2. Netscaler API should throw error self.debug("Passing invalid credential for NetScaler") - netscaler_config = dict(self.services["netscaler_VPX"]) + netscaler_config = dict(self.services["configurableData"]["netscaler"]) netscaler_config.update({'username': random_gen(), 'password': random_gen()}) self.debug("Adding netscaler device: %s" % netscaler_config["ipaddress"]) @@ -264,7 +263,7 @@ class TestInvalidParametersNetscaler(_NetScalerAddBase): # 2. Netscaler API should throw error self.debug("Passing invalid public interface for NetScaler") - netscaler_config = dict(self.services["netscaler_VPX"]) + netscaler_config = dict(self.services["configurableData"]["netscaler"]) netscaler_config.update({'publicinterface': random_gen()}) self.debug("Adding netscaler device: %s" % netscaler_config["ipaddress"]) @@ -288,7 +287,7 @@ class TestInvalidParametersNetscaler(_NetScalerAddBase): # 1. Add Netscaler device into a Zone by providing valid log in # credentials , public interface and invalid private interface # 2. Netscaler API should throw error - netscaler_config = dict(self.services["netscaler_VPX"]) + netscaler_config = dict(self.services["configurableData"]["netscaler"]) netscaler_config.update({'privateinterface': random_gen()}) self.debug("Adding netscaler device: %s" % netscaler_config["ipaddress"]) @@ -329,17 +328,6 @@ class _NetScalerDeployVMBase(_NetScalerBase): self.debug("Cleaning up the resources") #Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) @@ -360,7 +348,7 @@ class TestNetScalerDedicated(_NetScalerDeployVMBase): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "True"}) cls._addNetScaler(netscaler_config) @@ -517,7 +505,7 @@ class TestNetScalerShared(_NetScalerDeployVMBase): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) @@ -713,7 +701,7 @@ class TestNetScalerCustomCapacity(_NetScalerCapacity): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicecapacity': 3, 'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) @@ -932,7 +920,7 @@ class TestNetScalerNoCapacity(_NetScalerCapacity): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicecapacity': 2, 'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) @@ -1129,7 +1117,7 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) @@ -1249,13 +1237,13 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): ) nw = network_list[0] self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1271,7 +1259,7 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags = ["advancedns","test"]) @@ -1392,7 +1380,7 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): "VM state should be running after deployment" ) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: # Find Network vlan used network_list = Network.list( @@ -1402,10 +1390,10 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): ) nw = network_list[0] ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1441,7 +1429,7 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags = ["advancedns","test"]) @@ -1561,13 +1549,13 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): time.sleep(int(interval[0].value) + int(wait[0].value)) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1598,7 +1586,7 @@ class TestGuestNetworkWithNetScaler(_NetScalerDeployVMBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1621,7 +1609,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): cls.services["ostype"] ) try: - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, netscaler_config) cls._cleanup.append(cls.netscaler) @@ -1738,13 +1726,13 @@ class TestGuestNetworkShutDown(_NetScalerBase): time.sleep((int(interval[0].value) + int(wait[0].value)) * 2) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1775,7 +1763,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags = ["advancedns","test"]) @@ -1816,7 +1804,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: # Find Network vlan used network_list = Network.list( @@ -1826,10 +1814,10 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) nw = network_list[0] ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1860,7 +1848,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags = ["advancedns","test"]) @@ -1878,7 +1866,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): self.network.restart(self.apiclient, cleanup=False) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: # Find Network vlan used network_list = Network.list( @@ -1888,10 +1876,10 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) nw = network_list[0] ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1922,7 +1910,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags = ["advancedns","test"]) @@ -1940,7 +1928,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): self.network.restart(self.apiclient, cleanup=True) self.debug("SSH into netscaler: %s" % - self.services["netscaler_VPX"]["ipaddress"]) + self.services["configurableData"]["netscaler"]["ipaddress"]) try: # Find Network vlan used network_list = Network.list( @@ -1950,10 +1938,10 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) nw = network_list[0] ssh_client = SshClient( - self.services["netscaler_VPX"]["ipaddress"], - self.services["netscaler_VPX"]["port"], - self.services["netscaler_VPX"]["username"], - self.services["netscaler_VPX"]["password"], + self.services["configurableData"]["netscaler"]["ipaddress"], + self.services["configurableData"]["netscaler"]["port"], + self.services["configurableData"]["netscaler"]["username"], + self.services["configurableData"]["netscaler"]["password"], ) cmd = "show vlan %s" % (nw.vlan) self.debug("command: %s" % cmd) @@ -1984,7 +1972,7 @@ class TestGuestNetworkShutDown(_NetScalerBase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % \ - (self.services["netscaler_VPX"]["ipaddress"], e)) + (self.services["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -2006,7 +1994,7 @@ class TestServiceProvider(_NetScalerDeployVMBase): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) @@ -2258,7 +2246,7 @@ class TestDeleteNetscaler(_NetScalerDeployVMBase): cls.services["ostype"] ) - netscaler_config = dict(cls.services["netscaler_VPX"]) + netscaler_config = dict(cls.services["configurableData"]["netscaler"]) netscaler_config.update({'lbdevicededicated': "False"}) cls._addNetScaler(netscaler_config) diff --git a/test/integration/component/test_netscaler_lb.py b/test/integration/component/test_netscaler_lb.py index e3d65bbb4e2..fce64b5546d 100644 --- a/test/integration/component/test_netscaler_lb.py +++ b/test/integration/component/test_netscaler_lb.py @@ -36,118 +36,11 @@ from marvin.lib.base import (Account, from marvin.lib.common import (get_domain, get_zone, get_template, - GetNetscalerInfoFromConfig, add_netscaler) from marvin.sshClient import SshClient import time -class Services: - - """Test netscaler services - """ - - def __init__(self): - self.services = { - "account": { - "email": "test@test.com", - "firstname": "Test", - "lastname": "User", - "username": "test", - # Random characters are appended for unique - # username - "password": "password", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 100, # in MHz - "memory": 128, # In MBs - }, - "virtual_machine": { - "displayname": "TestVM", - "username": "root", - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "network_offering_dedicated": { - "name": 'Netscaler', - "displaytext": 'Netscaler', - "guestiptype": 'Isolated', - "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', - "traffictype": 'GUEST', - "availability": 'Optional', - "specifyVlan": False, - "specifyIpRanges": False, - "serviceProviderList": { - "Dhcp": 'VirtualRouter', - "Dns": 'VirtualRouter', - "SourceNat": 'VirtualRouter', - "PortForwarding": 'VirtualRouter', - "Vpn": 'VirtualRouter', - "Firewall": 'VirtualRouter', - "Lb": 'Netscaler', - "UserData": 'VirtualRouter', - "StaticNat": 'VirtualRouter', - }, - "serviceCapabilityList": { - "SourceNat": { - "SupportedSourceNatTypes": "peraccount" - }, - "lb": { - "SupportedLbIsolation": "dedicated" - }, - }, - }, - "network_offering": { - "name": 'Netscaler', - "displaytext": 'Netscaler', - "guestiptype": 'Isolated', - "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', - "traffictype": 'GUEST', - "availability": 'Optional', - "serviceProviderList": { - "Dhcp": 'VirtualRouter', - "Dns": 'VirtualRouter', - "SourceNat": 'VirtualRouter', - "PortForwarding": 'VirtualRouter', - "Vpn": 'VirtualRouter', - "Firewall": 'VirtualRouter', - "Lb": 'Netscaler', - "UserData": 'VirtualRouter', - "StaticNat": 'VirtualRouter', - }, - }, - "network": { - "name": "Netscaler", - "displaytext": "Netscaler", - }, - "lbrule": { - "name": "SSH", - "alg": "roundrobin", - # Algorithm used for load balancing - "privateport": 22, - "publicport": 22, - "openfirewall": False, - }, - "natrule": { - "privateport": 22, - "publicport": 22, - "protocol": "TCP" - }, - "ostype": 'CentOS 5.3 (64-bit)', - # Cent OS 5.3 (64 bit) - "sleep": 60, - "timeout": 10, - "mode": 'advanced' - } - - class TestLbSourceNat(cloudstackTestCase): @classmethod @@ -156,38 +49,36 @@ class TestLbSourceNat(cloudstackTestCase): cls.testClient = super(TestLbSourceNat, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -208,7 +99,7 @@ class TestLbSourceNat(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -220,17 +111,6 @@ class TestLbSourceNat(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -252,7 +132,7 @@ class TestLbSourceNat(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -265,7 +145,7 @@ class TestLbSourceNat(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -301,7 +181,7 @@ class TestLbSourceNat(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -357,7 +237,7 @@ class TestLbSourceNat(cloudstackTestCase): with self.assertRaises(Exception): LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=src_nat.id, accountid=self.account.name ) @@ -372,39 +252,36 @@ class TestLbOnIpWithPf(cloudstackTestCase): cls.testClient = super(TestLbOnIpWithPf, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -425,7 +302,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -437,17 +314,6 @@ class TestLbOnIpWithPf(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -469,7 +335,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -482,7 +348,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -518,7 +384,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -565,7 +431,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): NATRule.create( self.apiclient, virtual_machine_1, - self.services["natrule"], + self.testdata["natrule"], ipaddressid=ip_with_nat_rule.ipaddress.id ) @@ -576,7 +442,7 @@ class TestLbOnIpWithPf(cloudstackTestCase): with self.assertRaises(Exception): LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_nat_rule.ipaddress.id, accountid=self.account.name ) @@ -591,39 +457,39 @@ class TestPfOnIpWithLb(cloudstackTestCase): cls.testClient = super(TestPfOnIpWithLb, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler( + cls.api_client, + cls.zone.id, + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -644,7 +510,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -656,17 +522,6 @@ class TestPfOnIpWithLb(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -689,7 +544,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -702,7 +557,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -738,7 +593,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -785,7 +640,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -798,7 +653,7 @@ class TestPfOnIpWithLb(cloudstackTestCase): NATRule.create( self.apiclient, virtual_machine_1, - self.services["natrule"], + self.testdata["natrule"], ipaddressid=ip_with_lb_rule.ipaddress.id ) return @@ -812,39 +667,39 @@ class TestLbOnNonSourceNat(cloudstackTestCase): cls.testClient = super(TestLbOnNonSourceNat, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler( + cls.api_client, + cls.zone.id, + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=False ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -865,7 +720,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -877,17 +732,6 @@ class TestLbOnNonSourceNat(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -909,7 +753,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -922,7 +766,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -958,7 +802,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1005,7 +849,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase): lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1035,39 +879,39 @@ class TestAddMultipleVmsLb(cloudstackTestCase): cls.testClient = super(TestAddMultipleVmsLb, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler( + cls.api_client, + cls.zone.id, + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -1088,7 +932,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -1100,17 +944,6 @@ class TestAddMultipleVmsLb(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1137,7 +970,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -1150,7 +983,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1186,7 +1019,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1233,7 +1066,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1256,13 +1089,13 @@ class TestAddMultipleVmsLb(cloudstackTestCase): lb_rule.assign(self.apiclient, [virtual_machine_1, virtual_machine_2]) self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], 22, - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) self.debug("command: show server") res = ssh_client.execute("show server") @@ -1309,7 +1142,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1321,39 +1154,39 @@ class TestMultipleLbRules(cloudstackTestCase): cls.testClient = super(TestMultipleLbRules, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler( + cls.api_client, + cls.zone.id, + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -1375,7 +1208,7 @@ class TestMultipleLbRules(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -1387,17 +1220,6 @@ class TestMultipleLbRules(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1420,7 +1242,7 @@ class TestMultipleLbRules(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -1433,7 +1255,7 @@ class TestMultipleLbRules(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1469,7 +1291,7 @@ class TestMultipleLbRules(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1518,10 +1340,10 @@ class TestMultipleLbRules(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % public_ip_1.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=public_ip_1.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1564,10 +1386,10 @@ class TestMultipleLbRules(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % public_ip_2.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=public_ip_2.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1648,39 +1470,36 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -1701,7 +1520,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -1713,17 +1532,6 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = Configurations.list( - self.apiclient, - name='network.gc.interval' - ) - wait = Configurations.list( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1747,7 +1555,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -1760,7 +1568,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): # Spawn an instance in that network virtual_machine_1 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1796,7 +1604,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): # Spawn an instance in that network virtual_machine_2 = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -1845,10 +1653,10 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule_1 = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1882,7 +1690,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): with self.assertRaises(Exception): LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1892,12 +1700,12 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): public_ip.ipaddress.ipaddress, str(2222))) - self.services["lbrule"]["alg"] = 'roundrobin' - self.services["lbrule"]["publicport"] = 2222 - self.services["lbrule"]["name"] = 'SSH2' + self.testdata["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["publicport"] = 2222 + self.testdata["lbrule"]["name"] = 'SSH2' lb_rule_2 = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1949,7 +1757,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase): ssh = virtual_machine_1.get_ssh_client( ipaddress=public_ip.ipaddress.ipaddress, reconnect=True, - port=self.services["lbrule"]["publicport"] + port=self.testdata["lbrule"]["publicport"] ) self.debug("Command: hostname") result = ssh.execute("hostname") @@ -1978,43 +1786,40 @@ class TestLoadBalancingRule(cloudstackTestCase): cls.testClient = super(TestLoadBalancingRule, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) @@ -2022,7 +1827,7 @@ class TestLoadBalancingRule(cloudstackTestCase): # Creating network using the network offering created cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -2032,7 +1837,7 @@ class TestLoadBalancingRule(cloudstackTestCase): # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -2047,7 +1852,7 @@ class TestLoadBalancingRule(cloudstackTestCase): ) cls.lb_rule = LoadBalancerRule.create( cls.api_client, - cls.services["lbrule"], + cls.testdata["lbrule"], ipaddressid=cls.public_ip.ipaddress.id, accountid=cls.account.name, networkid=cls.network.id @@ -2077,7 +1882,6 @@ class TestLoadBalancingRule(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -2156,10 +1960,10 @@ class TestLoadBalancingRule(cloudstackTestCase): self.debug("SSH into Netscaler to verify other resources are deleted") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -2188,7 +1992,7 @@ class TestLoadBalancingRule(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -2200,42 +2004,39 @@ class TestDeleteCreateLBRule(cloudstackTestCase): cls.testClient = super(TestDeleteCreateLBRule, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) @@ -2243,7 +2044,7 @@ class TestDeleteCreateLBRule(cloudstackTestCase): # Creating network using the network offering created cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -2253,7 +2054,7 @@ class TestDeleteCreateLBRule(cloudstackTestCase): # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -2285,7 +2086,7 @@ class TestDeleteCreateLBRule(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -2298,7 +2099,6 @@ class TestDeleteCreateLBRule(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -2317,10 +2117,10 @@ class TestDeleteCreateLBRule(cloudstackTestCase): self.debug("LB rule deleted") self.debug("Create a new LB rule with different public port") - self.services["lbrule"]["publicport"] = 23 + self.testdata["lbrule"]["publicport"] = 23 LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -2335,43 +2135,40 @@ class TestVmWithLb(cloudstackTestCase): cls.testClient = super(TestVmWithLb, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["lbrule"]["publicport"] = 22 + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) @@ -2379,7 +2176,7 @@ class TestVmWithLb(cloudstackTestCase): # Creating network using the network offering created cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -2389,7 +2186,7 @@ class TestVmWithLb(cloudstackTestCase): # Spawn an instance in that network cls.vm_1 = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -2397,7 +2194,7 @@ class TestVmWithLb(cloudstackTestCase): ) cls.vm_2 = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -2412,7 +2209,7 @@ class TestVmWithLb(cloudstackTestCase): ) cls.lb_rule_1 = LoadBalancerRule.create( cls.api_client, - cls.services["lbrule"], + cls.testdata["lbrule"], ipaddressid=cls.public_ip_1.ipaddress.id, accountid=cls.account.name, networkid=cls.network.id @@ -2426,7 +2223,7 @@ class TestVmWithLb(cloudstackTestCase): ) cls.lb_rule_2 = LoadBalancerRule.create( cls.api_client, - cls.services["lbrule"], + cls.testdata["lbrule"], ipaddressid=cls.public_ip_2.ipaddress.id, accountid=cls.account.name, networkid=cls.network.id @@ -2456,7 +2253,6 @@ class TestVmWithLb(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -2471,7 +2267,7 @@ class TestVmWithLb(cloudstackTestCase): # 3. All the LB rules should be removed from that public Ip # 4. In netscaler, make sure that all LB rules associated with that # public Ip should get removed. - # 5. All servers and services service to that public Ip get deleted + # 5. All servers and testdata service to that public Ip get deleted self.debug("Deleting public IP: %s from network: %s" % ( self.public_ip_2.ipaddress.ipaddress, @@ -2494,10 +2290,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to verify other resources are deleted") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip_2.ipaddress.ipaddress, @@ -2526,7 +2322,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -2579,10 +2375,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to rules still persist") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show server" @@ -2598,7 +2394,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -2651,10 +2447,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to rules still persist") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show server" @@ -2670,7 +2466,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns", "multihost"]) @@ -2763,10 +2559,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to rules still persist") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show server" @@ -2782,7 +2578,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -2850,10 +2646,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to rules still persist") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show server" @@ -2869,7 +2665,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -2881,7 +2677,7 @@ class TestVmWithLb(cloudstackTestCase): # 2. Destroy one of the user VM # 3. Until the time the Vm is in "Destroyed" state, the servies # relating to this Vm will be marked as "Down". - # 4. Once the Vm gets expunged, then the servers and services + # 4. Once the Vm gets expunged, then the servers and testdata # associated with this VM should get deleted and the LB rules # should not be pointing to this Vm anymore. @@ -2932,10 +2728,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to rules still persist") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show server" @@ -2951,7 +2747,7 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -2964,7 +2760,7 @@ class TestVmWithLb(cloudstackTestCase): # 3. All the LB rules should be removed from that public Ip # 4. In netscaler, make sure that all LB rules associated with that # public Ip should get removed. - # 5. All servers and services service to that public Ip get deleted + # 5. All servers and testdata service to that public Ip get deleted self.debug("Deleting public IP: %s from network: %s" % ( self.public_ip_1.ipaddress.ipaddress, @@ -2987,10 +2783,10 @@ class TestVmWithLb(cloudstackTestCase): self.debug("SSH into Netscaler to verify other resources are deleted") try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip_1.ipaddress.ipaddress, @@ -3019,5 +2815,5 @@ class TestVmWithLb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return diff --git a/test/integration/component/test_netscaler_lb_algo.py b/test/integration/component/test_netscaler_lb_algo.py index 0d571b4608f..bafecd09d99 100644 --- a/test/integration/component/test_netscaler_lb_algo.py +++ b/test/integration/component/test_netscaler_lb_algo.py @@ -31,83 +31,8 @@ from marvin.lib.base import (Account, from marvin.lib.common import (get_zone, get_domain, get_template, - list_configurations, - GetNetscalerInfoFromConfig, add_netscaler) from marvin.sshClient import SshClient -import time - - -class Services: - - """Test netscaler services - """ - - def __init__(self): - self.services = { - "account": { - "email": "test@test.com", - "firstname": "Test", - "lastname": "User", - "username": "test", - # Random characters are appended for unique - # username - "password": "password", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 100, # in MHz - "memory": 128, # In MBs - }, - "virtual_machine": { - "displayname": "TestVM", - "username": "root", - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "network_offering": { - "name": 'Netscaler', - "displaytext": 'Netscaler', - "guestiptype": 'Isolated', - "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', - "traffictype": 'GUEST', - "availability": 'Optional', - "serviceProviderList": { - "Dhcp": 'VirtualRouter', - "Dns": 'VirtualRouter', - "SourceNat": 'VirtualRouter', - "PortForwarding": 'VirtualRouter', - "Vpn": 'VirtualRouter', - "Firewall": 'VirtualRouter', - "Lb": 'Netscaler', - "UserData": 'VirtualRouter', - "StaticNat": 'VirtualRouter', - }, - }, - "network": { - "name": "Netscaler", - "displaytext": "Netscaler" - }, - "lbrule": { - "name": "SSH", - "alg": "leastconn", - # Algorithm used for load balancing - "privateport": 22, - "publicport": 22, - "openfirewall": False, - }, - "ostype": 'CentOS 5.3 (64-bit)', - # Cent OS 5.3 (64 bit) - "sleep": 60, - "timeout": 10, - "mode": 'advanced' - } class TestLbWithRoundRobin(cloudstackTestCase): @@ -118,40 +43,37 @@ class TestLbWithRoundRobin(cloudstackTestCase): cls.testClient = super(TestLbWithRoundRobin, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False cls._cleanup = [] try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) + cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) except Exception as e: cls.tearDownClass() @@ -172,7 +94,7 @@ class TestLbWithRoundRobin(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -184,17 +106,6 @@ class TestLbWithRoundRobin(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = list_configurations( - self.apiclient, - name='network.gc.interval' - ) - wait = list_configurations( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -217,7 +128,7 @@ class TestLbWithRoundRobin(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -230,7 +141,7 @@ class TestLbWithRoundRobin(cloudstackTestCase): # Spawn an instance in that network self.virtual_machine = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -277,10 +188,10 @@ class TestLbWithRoundRobin(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % ip_with_lb_rule.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -304,13 +215,13 @@ class TestLbWithRoundRobin(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( ip_with_lb_rule.ipaddress.ipaddress, @@ -328,7 +239,7 @@ class TestLbWithRoundRobin(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -340,41 +251,37 @@ class TestLbWithLeastConn(cloudstackTestCase): cls.testClient = super(TestLbWithLeastConn, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) except Exception as e: @@ -397,7 +304,7 @@ class TestLbWithLeastConn(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -409,17 +316,6 @@ class TestLbWithLeastConn(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = list_configurations( - self.apiclient, - name='network.gc.interval' - ) - wait = list_configurations( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -442,7 +338,7 @@ class TestLbWithLeastConn(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -455,7 +351,7 @@ class TestLbWithLeastConn(cloudstackTestCase): # Spawn an instance in that network self.virtual_machine = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -509,10 +405,10 @@ class TestLbWithLeastConn(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % ip_with_lb_rule.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["alg"] = 'leastconn' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -537,13 +433,13 @@ class TestLbWithLeastConn(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( ip_with_lb_rule.ipaddress.ipaddress, @@ -561,7 +457,7 @@ class TestLbWithLeastConn(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -572,41 +468,37 @@ class TestLbWithSourceIp(cloudstackTestCase): cls.testClient = super(TestLbWithSourceIp, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False cls._cleanup = [] try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) except Exception as e: @@ -628,7 +520,7 @@ class TestLbWithSourceIp(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], admin=True, domainid=self.domain.id ) @@ -640,17 +532,6 @@ class TestLbWithSourceIp(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - interval = list_configurations( - self.apiclient, - name='network.gc.interval' - ) - wait = list_configurations( - self.apiclient, - name='network.gc.wait' - ) - # Sleep to ensure that all resources are deleted - time.sleep(int(interval[0].value) + int(wait[0].value)) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -673,7 +554,7 @@ class TestLbWithSourceIp(cloudstackTestCase): self.network_offering.id) self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -686,7 +567,7 @@ class TestLbWithSourceIp(cloudstackTestCase): # Spawn an instance in that network self.virtual_machine = VirtualMachine.create( self.apiclient, - self.services["virtual_machine"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, @@ -733,10 +614,10 @@ class TestLbWithSourceIp(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % ip_with_lb_rule.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["alg"] = 'source' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=ip_with_lb_rule.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -761,13 +642,13 @@ class TestLbWithSourceIp(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( ip_with_lb_rule.ipaddress.ipaddress, @@ -785,7 +666,7 @@ class TestLbWithSourceIp(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -797,62 +678,58 @@ class TestLbAlgoRrLc(cloudstackTestCase): cls.testClient = super(TestLbAlgoRrLc, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -914,10 +791,10 @@ class TestLbAlgoRrLc(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -944,13 +821,13 @@ class TestLbAlgoRrLc(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -967,7 +844,7 @@ class TestLbAlgoRrLc(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( @@ -978,13 +855,13 @@ class TestLbAlgoRrLc(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1001,7 +878,7 @@ class TestLbAlgoRrLc(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1013,62 +890,58 @@ class TestLbAlgoLcRr(cloudstackTestCase): cls.testClient = super(TestLbAlgoLcRr, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1106,7 +979,6 @@ class TestLbAlgoLcRr(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1130,10 +1002,10 @@ class TestLbAlgoLcRr(cloudstackTestCase): "Creating LB rule for IP address: %s with least conn algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["alg"] = 'leastconn' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1158,13 +1030,13 @@ class TestLbAlgoLcRr(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1181,7 +1053,7 @@ class TestLbAlgoLcRr(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( @@ -1191,13 +1063,13 @@ class TestLbAlgoLcRr(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1214,7 +1086,7 @@ class TestLbAlgoLcRr(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1226,62 +1098,58 @@ class TestLbAlgoRrSb(cloudstackTestCase): cls.testClient = super(TestLbAlgoRrSb, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1320,7 +1188,6 @@ class TestLbAlgoRrSb(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1344,10 +1211,10 @@ class TestLbAlgoRrSb(cloudstackTestCase): "Creating LB rule for IP address: %s with round robin algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["alg"] = 'roundrobin' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1372,13 +1239,13 @@ class TestLbAlgoRrSb(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1395,7 +1262,7 @@ class TestLbAlgoRrSb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( @@ -1406,13 +1273,13 @@ class TestLbAlgoRrSb(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1430,7 +1297,7 @@ class TestLbAlgoRrSb(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1442,30 +1309,28 @@ class TestLbAlgoSbRr(cloudstackTestCase): cls.testClient = super(TestLbAlgoSbRr, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates + # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering @@ -1473,32 +1338,32 @@ class TestLbAlgoSbRr(cloudstackTestCase): cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1537,7 +1402,6 @@ class TestLbAlgoSbRr(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1561,10 +1425,10 @@ class TestLbAlgoSbRr(cloudstackTestCase): "Creating LB rule for IP address: %s with source algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["alg"] = 'source' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1591,13 +1455,13 @@ class TestLbAlgoSbRr(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1615,7 +1479,7 @@ class TestLbAlgoSbRr(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( @@ -1626,13 +1490,13 @@ class TestLbAlgoSbRr(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1649,7 +1513,7 @@ class TestLbAlgoSbRr(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1661,30 +1525,26 @@ class TestLbAlgoSbLc(cloudstackTestCase): cls.testClient = super(TestLbAlgoSbLc, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering @@ -1692,32 +1552,32 @@ class TestLbAlgoSbLc(cloudstackTestCase): cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1756,7 +1616,6 @@ class TestLbAlgoSbLc(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1780,10 +1639,10 @@ class TestLbAlgoSbLc(cloudstackTestCase): "Creating LB rule for IP address: %s with source algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["alg"] = 'source' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1810,13 +1669,13 @@ class TestLbAlgoSbLc(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1834,7 +1693,7 @@ class TestLbAlgoSbLc(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( lb_rule.name, @@ -1844,13 +1703,13 @@ class TestLbAlgoSbLc(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1867,7 +1726,7 @@ class TestLbAlgoSbLc(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @@ -1879,30 +1738,28 @@ class TestLbAlgoLcSb(cloudstackTestCase): cls.testClient = super(TestLbAlgoLcSb, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates + # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: - cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.services["netscaler"]) + cls.netscaler = add_netscaler(cls.api_client, cls.zone.id, cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], - conservemode=True + cls.testdata["nw_off_isolated_netscaler"], + conservemode="True" ) cls._cleanup.append(cls.network_offering) # Enable Network offering @@ -1910,32 +1767,32 @@ class TestLbAlgoLcSb(cloudstackTestCase): cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, zoneid=cls.zone.id ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1973,7 +1830,6 @@ class TestLbAlgoLcSb(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -1997,10 +1853,10 @@ class TestLbAlgoLcSb(cloudstackTestCase): "Creating LB rule for IP address: %s with leastconn algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["alg"] = 'leastconn' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -2026,13 +1882,13 @@ class TestLbAlgoLcSb(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -2049,7 +1905,7 @@ class TestLbAlgoLcSb(cloudstackTestCase): ) except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) self.debug( "Updating LB rule: %s with new algorithm: %s" % ( @@ -2060,13 +1916,13 @@ class TestLbAlgoLcSb(cloudstackTestCase): self.debug( "SSH into Netscaler to check whether algorithm is configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -2084,5 +1940,5 @@ class TestLbAlgoLcSb(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return diff --git a/test/integration/component/test_netscaler_lb_sticky.py b/test/integration/component/test_netscaler_lb_sticky.py index a5f55a8f25d..3494eae0d46 100644 --- a/test/integration/component/test_netscaler_lb_sticky.py +++ b/test/integration/component/test_netscaler_lb_sticky.py @@ -31,83 +31,10 @@ from marvin.lib.base import (Account, from marvin.lib.common import (get_domain, get_zone, get_template, - add_netscaler, - GetNetscalerInfoFromConfig) + add_netscaler) from marvin.sshClient import SshClient -class Services: - - """Test netscaler services - """ - - def __init__(self): - self.services = { - "account": { - "email": "test@test.com", - "firstname": "Test", - "lastname": "User", - "username": "test", - # Random characters are appended for unique - # username - "password": "password", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 100, # in MHz - "memory": 128, # In MBs - }, - "virtual_machine": { - "displayname": "TestVM", - "username": "root", - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "network_offering": { - "name": 'Netscaler', - "displaytext": 'Netscaler', - "guestiptype": 'Isolated', - "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', - "traffictype": 'GUEST', - "availability": 'Optional', - "serviceProviderList": { - "Dhcp": 'VirtualRouter', - "Dns": 'VirtualRouter', - "SourceNat": 'VirtualRouter', - "PortForwarding": 'VirtualRouter', - "Vpn": 'VirtualRouter', - "Firewall": 'VirtualRouter', - "Lb": 'Netscaler', - "UserData": 'VirtualRouter', - "StaticNat": 'VirtualRouter', - }, - }, - "network": { - "name": "Netscaler", - "displaytext": "Netscaler", - }, - "lbrule": { - "name": "SSH", - "alg": "roundrobin", - # Algorithm used for load balancing - "privateport": 22, - "publicport": 22, - "openfirewall": False, - }, - "ostype": 'CentOS 5.3 (64-bit)', - # Cent OS 5.3 (64 bit) - "sleep": 60, - "timeout": 10, - "mode": 'advanced' - } - - class TestLbStickyPolicy(cloudstackTestCase): @classmethod @@ -116,46 +43,42 @@ class TestLbStickyPolicy(cloudstackTestCase): cls.testClient = super(TestLbStickyPolicy, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.testdata["configurableData"]["netscaler"]["lbdevicededicated"] = False try: cls.netscaler = add_netscaler( cls.api_client, cls.zone.id, - cls.services["netscaler"]) + cls.testdata["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["nw_off_isolated_netscaler"], conservemode=True ) # Enable Network offering cls.network_offering.update(cls.api_client, state='Enabled') - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], admin=True, domainid=cls.domain.id ) @@ -163,7 +86,7 @@ class TestLbStickyPolicy(cloudstackTestCase): # Creating network using the network offering created cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -173,7 +96,7 @@ class TestLbStickyPolicy(cloudstackTestCase): # Spawn an instance in that network cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["virtual_machine"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -211,7 +134,6 @@ class TestLbStickyPolicy(cloudstackTestCase): self.debug("Cleaning up the resources") # Clean up, terminate the created network offerings cleanup_resources(self.apiclient, self.cleanup) - self.debug("Cleanup complete!") except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return @@ -238,7 +160,7 @@ class TestLbStickyPolicy(cloudstackTestCase): lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -274,13 +196,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy configured\ properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -304,7 +226,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -327,10 +249,10 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with source algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["alg"] = 'source' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -366,13 +288,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -396,7 +318,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -418,10 +340,10 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with leastconn algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["alg"] = 'leastconn' lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -457,13 +379,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy configured\ properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -487,7 +409,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -509,12 +431,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with roundrobin algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -550,13 +472,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -580,7 +502,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -602,12 +524,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with source algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -643,13 +565,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -673,7 +595,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -695,12 +617,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with leastconn algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -736,13 +658,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -766,7 +688,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -788,12 +710,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with roundrobin algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'roundrobin' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'roundrobin' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -829,13 +751,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -859,7 +781,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -881,12 +803,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with source algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'source' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'source' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -922,13 +844,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -952,7 +874,7 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return @attr(tags=["advancedns"]) @@ -974,12 +896,12 @@ class TestLbStickyPolicy(cloudstackTestCase): "Creating LB rule for IP address: %s with leastconn algo" % self.public_ip.ipaddress.ipaddress) - self.services["lbrule"]["alg"] = 'leastconn' - self.services["lbrule"]["publicport"] = 80 - self.services["lbrule"]["privateport"] = 80 + self.testdata["lbrule"]["alg"] = 'leastconn' + self.testdata["lbrule"]["publicport"] = 80 + self.testdata["lbrule"]["privateport"] = 80 lb_rule = LoadBalancerRule.create( self.apiclient, - self.services["lbrule"], + self.testdata["lbrule"], ipaddressid=self.public_ip.ipaddress.id, accountid=self.account.name, networkid=self.network.id @@ -1015,13 +937,13 @@ class TestLbStickyPolicy(cloudstackTestCase): "SSH into Netscaler to check whether sticky policy\ configured properly or not?") self.debug("SSH into netscaler: %s" % - self.services["netscaler"]["ipaddress"]) + self.testdata["configurableData"]["netscaler"]["ipaddress"]) try: ssh_client = SshClient( - self.services["netscaler"]["ipaddress"], - self.services["netscaler"]["port"], - self.services["netscaler"]["username"], - self.services["netscaler"]["password"], + self.testdata["configurableData"]["netscaler"]["ipaddress"], + self.testdata["configurableData"]["netscaler"]["port"], + self.testdata["configurableData"]["netscaler"]["username"], + self.testdata["configurableData"]["netscaler"]["password"], ) cmd = "show lb vserver Cloud-VirtualServer-%s-%s" % ( self.public_ip.ipaddress.ipaddress, @@ -1045,5 +967,5 @@ class TestLbStickyPolicy(cloudstackTestCase): except Exception as e: self.fail("SSH Access failed for %s: %s" % - (self.services["netscaler"]["ipaddress"], e)) + (self.testdata["configurableData"]["netscaler"]["ipaddress"], e)) return diff --git a/test/integration/component/test_persistent_networks.py b/test/integration/component/test_persistent_networks.py index ff563df8a75..4b1bc7aada5 100644 --- a/test/integration/component/test_persistent_networks.py +++ b/test/integration/component/test_persistent_networks.py @@ -40,8 +40,7 @@ from marvin.lib.common import (get_domain, get_template, verifyNetworkState, add_netscaler, - wait_for_cleanup, - GetNetscalerInfoFromConfig) + wait_for_cleanup) from nose.plugins.attrib import attr from marvin.codes import PASS, FAIL, FAILED from marvin.sshClient import SshClient @@ -98,12 +97,7 @@ class TestPersistentNetworks(cloudstackTestCase): cls.isolated_network_offering_netscaler = cls.createNetworkOffering( "nw_off_isolated_netscaler") - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.services["configurableData"]["netscaler"]["lbdevicededicated"] = False # Configure Netscaler device # If configuration succeeds, set ns_configured to True so that @@ -113,7 +107,7 @@ class TestPersistentNetworks(cloudstackTestCase): cls.netscaler = add_netscaler( cls.api_client, cls.zone.id, - cls.services["netscaler"]) + cls.services["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.ns_configured = True except Exception: @@ -1508,12 +1502,7 @@ class TestAssignVirtualMachine(cloudstackTestCase): cls.persistent_network_offering_netscaler = cls.createNetworkOffering( "nw_off_isolated_persistent_netscaler") - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.services["configurableData"]["netscaler"]["lbdevicededicated"] = False # Configure Netscaler device # If configuration succeeds, set ns_configured to True so that @@ -1523,7 +1512,7 @@ class TestAssignVirtualMachine(cloudstackTestCase): cls.netscaler = add_netscaler( cls.api_client, cls.zone.id, - cls.services["netscaler"]) + cls.services["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.ns_configured = True except Exception: @@ -1979,12 +1968,7 @@ class TestRestartPersistentNetwork(cloudstackTestCase): cls.api_client, state="enabled") - response = GetNetscalerInfoFromConfig( - cls.config - ) - assert response[0] is not None, response[1] - cls.services["netscaler"] = response[0] - cls.services["netscaler"]["lbdevicededicated"] = False + cls.services["configurableData"]["netscaler"]["lbdevicededicated"] = False # Configure Netscaler device # If configuration succeeds, set ns_configured to True so that @@ -1994,7 +1978,7 @@ class TestRestartPersistentNetwork(cloudstackTestCase): cls.netscaler = add_netscaler( cls.api_client, cls.zone.id, - cls.services["netscaler"]) + cls.services["configurableData"]["netscaler"]) cls._cleanup.append(cls.netscaler) cls.ns_configured = True except Exception: diff --git a/test/integration/component/test_portable_ip.py b/test/integration/component/test_portable_ip.py index cf0cb3bd93c..6bdc61a3d9f 100644 --- a/test/integration/component/test_portable_ip.py +++ b/test/integration/component/test_portable_ip.py @@ -37,115 +37,11 @@ from marvin.lib.common import (get_zone, get_domain, get_region, get_pod, - isIpInDesiredState, - getPortableIpRangeServices) + isIpInDesiredState) from netaddr import IPAddress from marvin.sshClient import SshClient -from marvin.codes import FAILED from nose.plugins.attrib import attr -class Services: - """Test Multiple IP Ranges - """ - def __init__(self): - self.services = { - "account": { - "email": "test@test.com", - "firstname": "Test", - "lastname": "User", - "username": "test", - # Random characters are appended for unique - # username - "password": "password", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 200, # in MHz - "memory": 256, # In MBs - }, - "network_offering": { - "name": 'Network offering portable ip', - "displaytext": 'Network offering-VR services', - "guestiptype": 'Isolated', - "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', - "traffictype": 'GUEST', - "availability": 'Optional', - "serviceProviderList": { - "Dhcp": 'VirtualRouter', - "Dns": 'VirtualRouter', - "SourceNat": 'VirtualRouter', - "PortForwarding": 'VirtualRouter', - "Vpn": 'VirtualRouter', - "Firewall": 'VirtualRouter', - "Lb": 'VirtualRouter', - "UserData": 'VirtualRouter', - "StaticNat": 'VirtualRouter', - }, - }, - "network": { - "name": "Test Network - Portable IP", - "displaytext": "Test Network - Portable IP", - }, - "network1": { - "name": "Test Network 1 - Portable IP", - "displaytext": "Test Network 1 - Portable IP", - }, - "network2": { - "name": "Test Network 2 - Portable IP", - "displaytext": "Test Network 2 - Portable IP", - }, - "disk_offering": { - "displaytext": "Small Disk", - "name": "Small Disk", - "disksize": 1 - }, - "natrule": { - "privateport": 22, - "publicport": 22, - "protocol": "TCP", - "cidr" : '0.0.0.0/0', - }, - "small": - # Create a small virtual machine instance with disk offering - { - "displayname": "testserver", - "username": "root", # VM creds for SSH - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "vm1": - # Create a small virtual machine instance with disk offering - { - "displayname": "vm1", - "username": "root", # VM creds for SSH - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "vm2": - # Create a small virtual machine instance with disk offering - { - "displayname": "vm2", - "username": "root", # VM creds for SSH - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "ostype": 'CentOS 5.3 (64-bit)' - } - class TestCreatePortablePublicIpRanges(cloudstackTestCase): """Test Create Portable IP Ranges """ @@ -156,16 +52,16 @@ class TestCreatePortablePublicIpRanges(cloudstackTestCase): cls.testClient = super(TestCreatePortablePublicIpRanges, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id cls._cleanup = [] return @@ -201,16 +97,12 @@ class TestCreatePortablePublicIpRanges(cloudstackTestCase): # 1. Create new portable ip range with root admin api # 2. Portable ip range should be created successfully - portable_ip_range_services = getPortableIpRangeServices(self.config) - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id try: #create new portable ip range new_portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(new_portable_ip_range) except Exception as e: @@ -224,15 +116,10 @@ class TestCreatePortablePublicIpRanges(cloudstackTestCase): # 1. Create new portable ip range with non root admin api client # 2. Portable ip range should not be created - portable_ip_range_services = getPortableIpRangeServices(self.config) - - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - try: self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id ) self.cleanup.append(self.account) @@ -242,12 +129,12 @@ class TestCreatePortablePublicIpRanges(cloudstackTestCase): DomainName=self.account.domain ) - portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id self.debug("Trying to create portable ip range with non root-admin api client, should raise exception") with self.assertRaises(Exception): portable_ip_range = PortablePublicIpRange.create(self.api_client_user, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(portable_ip_range) except Exception as e: self.fail(e) @@ -260,20 +147,14 @@ class TestCreatePortablePublicIpRanges(cloudstackTestCase): # 1. Try to create new portable ip range with invalid region id # 2. Portable ip range creation should fail - - portable_ip_range_services = getPortableIpRangeServices(self.config) - - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - portable_ip_range_services["regionid"] = -1 + self.testdata["configurableData"]["portableIpRange"]["regionid"] = -1 #create new portable ip range self.debug("Trying to create portable ip range with wrong region id") with self.assertRaises(Exception): portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(portable_ip_range) return @@ -288,16 +169,16 @@ class TestDeletePortablePublicIpRanges(cloudstackTestCase): cls.testClient = super(TestDeletePortablePublicIpRanges, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id cls._cleanup = [] return @@ -315,16 +196,11 @@ class TestDeletePortablePublicIpRanges(cloudstackTestCase): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() - portable_ip_range_services = getPortableIpRangeServices(self.config) - - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id #create new portable ip range self.portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup = [] return @@ -357,7 +233,7 @@ class TestDeletePortablePublicIpRanges(cloudstackTestCase): try: self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id ) @@ -390,14 +266,14 @@ class TestDeletePortablePublicIpRanges(cloudstackTestCase): try: self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id ) self.cleanup.append(self.account) self.network_offering = NetworkOffering.create( self.apiclient, - self.services["network_offering"], + self.testdata["isolated_network_offering"], conservemode=False ) # Enable Network offering @@ -405,7 +281,7 @@ class TestDeletePortablePublicIpRanges(cloudstackTestCase): self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -446,16 +322,16 @@ class TestListPortablePublicIpRanges(cloudstackTestCase): cls.testClient = super(TestListPortablePublicIpRanges, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id cls._cleanup = [] return @@ -473,21 +349,15 @@ class TestListPortablePublicIpRanges(cloudstackTestCase): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() - #create new portable ip range - self.portable_ip_range_services = getPortableIpRangeServices(self.config) - - if self.portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - self.portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id self.debug("Creating new portable IP range with startip:%s and endip:%s" % - (str(self.portable_ip_range_services["startip"]), - str(self.portable_ip_range_services["endip"]))) + (str(self.testdata["configurableData"]["portableIpRange"]["startip"]), + str(self.testdata["configurableData"]["portableIpRange"]["endip"]))) #create new portable ip range self.portable_ip_range = PortablePublicIpRange.create(self.apiclient, - self.portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.debug("Created new portable IP range with startip:%s and endip:%s and id:%s" % (self.portable_ip_range.startip, @@ -524,16 +394,16 @@ class TestListPortablePublicIpRanges(cloudstackTestCase): portable_ip_range = list_portable_ip_range[0] - self.assertEqual(str(portable_ip_range.startip), str(self.portable_ip_range_services["startip"]), + self.assertEqual(str(portable_ip_range.startip), str(self.testdata["configurableData"]["portableIpRange"]["startip"]), "Listed startip not matching with the startip of created public ip range") - self.assertEqual(str(portable_ip_range.endip), str(self.portable_ip_range_services["endip"]), + self.assertEqual(str(portable_ip_range.endip), str(self.testdata["configurableData"]["portableIpRange"]["endip"]), "Listed endip not matching with the endip of created public ip range") - self.assertEqual(str(portable_ip_range.gateway), str(self.portable_ip_range_services["gateway"]), + self.assertEqual(str(portable_ip_range.gateway), str(self.testdata["configurableData"]["portableIpRange"]["gateway"]), "Listed gateway not matching with the gateway of created public ip range") - self.assertEqual(str(portable_ip_range.netmask), str(self.portable_ip_range_services["netmask"]), + self.assertEqual(str(portable_ip_range.netmask), str(self.testdata["configurableData"]["portableIpRange"]["netmask"]), "Listed netmask not matching with the netmask of created public ip range") return @@ -547,7 +417,7 @@ class TestListPortablePublicIpRanges(cloudstackTestCase): self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id ) @@ -572,29 +442,29 @@ class TestAssociatePublicIp(cloudstackTestCase): cls.testClient = super(TestAssociatePublicIp, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) # Set Zones and disk offerings - cls.services["small"]["zoneid"] = cls.zone.id - cls.services["small"]["template"] = template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = template.id cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], domainid=cls.domain.id, admin=True ) @@ -602,7 +472,7 @@ class TestAssociatePublicIp(cloudstackTestCase): cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["isolated_network_offering"], conservemode=False ) @@ -611,7 +481,7 @@ class TestAssociatePublicIp(cloudstackTestCase): cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -635,17 +505,10 @@ class TestAssociatePublicIp(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.cleanup = [] - - portable_ip_range_services = getPortableIpRangeServices(self.config) - - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - portable_ip_range_services["regionid"] = self.region.id - + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id #create new portable ip range self.portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(self.portable_ip_range) return @@ -741,7 +604,7 @@ class TestAssociatePublicIp(cloudstackTestCase): self.service_offering = ServiceOffering.create( self.apiclient, - self.services["service_offering"] + self.testdata["service_offering"] ) self.cleanup.append(self.service_offering) @@ -751,12 +614,12 @@ class TestAssociatePublicIp(cloudstackTestCase): self.debug("DeployingVirtual Machine") self.virtual_machine = VirtualMachine.create( self.apiclient, - self.services["small"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, networkids = [self.network.id], - mode=self.services['mode'] + mode=self.testdata['mode'] ) self.debug("Created virtual machine instance: %s with ssh_ip: %s" % (self.virtual_machine.id, self.virtual_machine.ssh_ip)) @@ -788,10 +651,10 @@ class TestAssociatePublicIp(cloudstackTestCase): fw_rule = FireWallRule.create( self.apiclient, ipaddressid=portableip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=[self.services["natrule"]["cidr"]], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] + protocol=self.testdata["natrule"]["protocol"], + cidrlist=["0.0.0.0/0"], + startport=self.testdata["natrule"]["publicport"], + endport=self.testdata["natrule"]["publicport"] ) #Create NAT rule @@ -799,7 +662,7 @@ class TestAssociatePublicIp(cloudstackTestCase): nat_rule = NATRule.create( self.apiclient, self.virtual_machine, - self.services["natrule"], + self.testdata["natrule"], portableip.ipaddress.id ) except Exception as e: @@ -810,7 +673,7 @@ class TestAssociatePublicIp(cloudstackTestCase): self.debug("Trying to SSH to ip: %s" % portableip.ipaddress.ipaddress) SshClient(portableip.ipaddress.ipaddress, - self.services['natrule']["publicport"], + self.testdata['natrule']["publicport"], self.virtual_machine.username, self.virtual_machine.password ) @@ -888,30 +751,30 @@ class TestDisassociatePublicIp(cloudstackTestCase): cls.testClient = super(TestDisassociatePublicIp, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) # Set Zones and disk offerings - cls.services["small"]["zoneid"] = cls.zone.id - cls.services["small"]["template"] = template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = template.id cls._cleanup = [] cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], domainid=cls.domain.id, admin=True ) @@ -919,13 +782,13 @@ class TestDisassociatePublicIp(cloudstackTestCase): cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls._cleanup.append(cls.service_offering) cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["isolated_network_offering"], conservemode=False ) @@ -935,7 +798,7 @@ class TestDisassociatePublicIp(cloudstackTestCase): cls.network = Network.create( cls.api_client, - cls.services["network"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -944,12 +807,12 @@ class TestDisassociatePublicIp(cloudstackTestCase): cls.virtual_machine = VirtualMachine.create( cls.api_client, - cls.services["small"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids = [cls.network.id], - mode=cls.services['mode'] + mode=cls.testdata['mode'] ) return @@ -969,16 +832,11 @@ class TestDisassociatePublicIp(cloudstackTestCase): self.dbclient = self.testClient.getDbConnection() self.cleanup = [] - portable_ip_range_services = getPortableIpRangeServices(self.config) - - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id #create new portable ip range new_portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(new_portable_ip_range) return @@ -1047,10 +905,10 @@ class TestDisassociatePublicIp(cloudstackTestCase): FireWallRule.create( self.apiclient, ipaddressid=portableip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=[self.services["natrule"]["cidr"]], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] + protocol=self.testdata["natrule"]["protocol"], + cidrlist=["0.0.0.0/0"], + startport=self.testdata["natrule"]["publicport"], + endport=self.testdata["natrule"]["publicport"] ) #Create NAT rule @@ -1058,7 +916,7 @@ class TestDisassociatePublicIp(cloudstackTestCase): NATRule.create( self.apiclient, self.virtual_machine, - self.services["natrule"], + self.testdata["natrule"], portableip.ipaddress.id ) except Exception as e: @@ -1096,7 +954,7 @@ class TestDisassociatePublicIp(cloudstackTestCase): try: self.otherAccount = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id ) self.cleanup.append(self.otherAccount) @@ -1127,25 +985,24 @@ class TestDeleteAccount(cloudstackTestCase): cls.testClient = super(TestDeleteAccount, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) - cls.services['mode'] = cls.zone.networktype cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) # Set Zones and disk offerings - cls.services["small"]["zoneid"] = cls.zone.id - cls.services["small"]["template"] = template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = template.id cls._cleanup = [] return @@ -1163,27 +1020,23 @@ class TestDeleteAccount(cloudstackTestCase): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() - portable_ip_range_services = getPortableIpRangeServices(self.config) - if portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - self.cleanup = [] try: self.account = Account.create( self.apiclient, - self.services["account"], + self.testdata["account"], domainid=self.domain.id, admin=True ) self.cleanup.append(self.account) - portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id #create new portable ip range new_portable_ip_range = PortablePublicIpRange.create(self.apiclient, - portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup.append(new_portable_ip_range) self.network_offering = NetworkOffering.create( self.apiclient, - self.services["network_offering"], + self.testdata["isolated_network_offering"], conservemode=False ) # Enable Network offering @@ -1191,7 +1044,7 @@ class TestDeleteAccount(cloudstackTestCase): self.network = Network.create( self.apiclient, - self.services["network"], + self.testdata["network"], accountid=self.account.name, domainid=self.account.domainid, networkofferingid=self.network_offering.id, @@ -1243,7 +1096,7 @@ class TestDeleteAccount(cloudstackTestCase): self.service_offering = ServiceOffering.create( self.apiclient, - self.services["service_offering"] + self.testdata["service_offering"] ) self.cleanup.append(self.service_offering) @@ -1251,11 +1104,11 @@ class TestDeleteAccount(cloudstackTestCase): self.debug("Deploying Virtual Machine") self.virtual_machine = VirtualMachine.create( self.apiclient, - self.services["small"], + self.testdata["small"], accountid=self.account.name, domainid=self.account.domainid, serviceofferingid=self.service_offering.id, - mode=self.services['mode'] + mode=self.testdata['mode'] ) self.debug("Created virtual machine instance: %s" % self.virtual_machine.id) @@ -1284,10 +1137,10 @@ class TestDeleteAccount(cloudstackTestCase): FireWallRule.create( self.apiclient, ipaddressid=portableip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=[self.services["natrule"]["cidr"]], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] + protocol=self.testdata["natrule"]["protocol"], + cidrlist=["0.0.0.0/0"], + startport=self.testdata["natrule"]["publicport"], + endport=self.testdata["natrule"]["publicport"] ) #Create NAT rule @@ -1295,7 +1148,7 @@ class TestDeleteAccount(cloudstackTestCase): NATRule.create( self.apiclient, self.virtual_machine, - self.services["natrule"], + self.testdata["natrule"], portableip.ipaddress.id ) except Exception as e: @@ -1325,34 +1178,32 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): cls.testClient = super(TestPortableIpTransferAcrossNetworks, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() - cls.services = Services().services + # Fill testdata from the external config file + cls.testdata = cls.testClient.getParsedTestDataConfig() + # Get Zone, Domain and templates cls.region = get_region(cls.api_client) cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.pod = get_pod(cls.api_client, cls.zone.id) - cls.services['mode'] = cls.zone.networktype - cls.services["domainid"] = cls.domain.id - cls.services["zoneid"] = cls.zone.id - cls.services["regionid"] = cls.region.id + cls.testdata['mode'] = cls.zone.networktype + cls.testdata["regionid"] = cls.region.id template = get_template( cls.api_client, cls.zone.id, - cls.services["ostype"] + cls.testdata["ostype"] ) # Set Zones and disk offerings - cls.services["vm1"]["zoneid"] = cls.zone.id - cls.services["vm1"]["template"] = template.id - cls.services["vm2"]["zoneid"] = cls.zone.id - cls.services["vm2"]["template"] = template.id + cls.testdata["small"]["zoneid"] = cls.zone.id + cls.testdata["small"]["template"] = template.id cls._cleanup = [] # Set Zones and Network offerings cls.account = Account.create( cls.api_client, - cls.services["account"], + cls.testdata["account"], domainid=cls.domain.id, admin=True ) @@ -1360,7 +1211,7 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): cls.network_offering = NetworkOffering.create( cls.api_client, - cls.services["network_offering"], + cls.testdata["isolated_network_offering"], conservemode=False ) cls._cleanup.append(cls.network_offering) @@ -1369,12 +1220,12 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): cls.network_offering.update(cls.api_client, state='Enabled') cls.service_offering = ServiceOffering.create( cls.api_client, - cls.services["service_offering"] + cls.testdata["service_offering"] ) cls.network1 = Network.create( cls.api_client, - cls.services["network1"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -1383,7 +1234,7 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): cls.virtual_machine1 = VirtualMachine.create( cls.api_client, - cls.services["vm1"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1391,7 +1242,7 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): ) cls.network2 = Network.create( cls.api_client, - cls.services["network2"], + cls.testdata["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.network_offering.id, @@ -1399,7 +1250,7 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): ) cls.virtual_machine2 = VirtualMachine.create( cls.api_client, - cls.services["vm2"], + cls.testdata["small"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, @@ -1420,17 +1271,11 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() - #create new portable ip range - self.portable_ip_range_services = getPortableIpRangeServices(self.config) - - if self.portable_ip_range_services is FAILED: - self.skipTest('Failed to read config values related to portable ip range') - - self.portable_ip_range_services["regionid"] = self.region.id + self.testdata["configurableData"]["portableIpRange"]["regionid"] = self.region.id #create new portable ip range self.portable_ip_range = PortablePublicIpRange.create(self.apiclient, - self.portable_ip_range_services) + self.testdata["configurableData"]["portableIpRange"]) self.cleanup = [self.portable_ip_range, ] return @@ -1488,10 +1333,10 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): FireWallRule.create( self.apiclient, ipaddressid=portableip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=[self.services["natrule"]["cidr"]], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] + protocol=self.testdata["natrule"]["protocol"], + cidrlist=["0.0.0.0/0"], + startport=self.testdata["natrule"]["publicport"], + endport=self.testdata["natrule"]["publicport"] ) except Exception as e: portableip.delete(self.apiclient) @@ -1517,7 +1362,7 @@ class TestPortableIpTransferAcrossNetworks(cloudstackTestCase): self.debug("Trying to SSH to ip: %s" % portableip.ipaddress.ipaddress) SshClient(portableip.ipaddress.ipaddress, - self.services['natrule']["publicport"], + self.testdata['natrule']["publicport"], self.virtual_machine2.username, self.virtual_machine2.password ) diff --git a/test/integration/smoke/test_primary_storage.py b/test/integration/smoke/test_primary_storage.py index 310afca9099..82212255540 100644 --- a/test/integration/smoke/test_primary_storage.py +++ b/test/integration/smoke/test_primary_storage.py @@ -190,7 +190,7 @@ class TestPrimaryStorageServices(cloudstackTestCase): storage = StoragePool.create(self.apiclient, - self.services["iscsi"], + self.services["configurableData"]["iscsi"], clusterid=cluster.id, zoneid=self.zone.id, podid=self.pod.id diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py index 2f97d5f6d99..f0802a5d058 100644 --- a/tools/marvin/marvin/config/test_data.py +++ b/tools/marvin/marvin/config/test_data.py @@ -190,24 +190,23 @@ test_data = { }, }, "nw_off_isolated_netscaler": { - "name": "Network offering-ns services", - "displaytext": "Network offering-ns services", - "guestiptype": "Isolated", - "supportedservices": - "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat", - "traffictype": "GUEST", - "availability": "Optional'", - "serviceProviderList": { - "Dhcp": "VirtualRouter", - "Dns": "VirtualRouter", - "SourceNat": "VirtualRouter", - "PortForwarding": "VirtualRouter", - "Vpn": "VirtualRouter", - "Firewall": "VirtualRouter", - "Lb": "NetScaler", - "UserData": "VirtualRouter", - "StaticNat": "VirtualRouter" - } + "name": 'Netscaler', + "displaytext": 'Netscaler', + "guestiptype": 'Isolated', + "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat', + "traffictype": 'GUEST', + "availability": 'Optional', + "serviceProviderList": { + "Dhcp": 'VirtualRouter', + "Dns": 'VirtualRouter', + "SourceNat": 'VirtualRouter', + "PortForwarding": 'VirtualRouter', + "Vpn": 'VirtualRouter', + "Firewall": 'VirtualRouter', + "Lb": 'Netscaler', + "UserData": 'VirtualRouter', + "StaticNat": 'VirtualRouter', + }, }, "nw_off_isolated_persistent": { "name": 'Test Nw off isolated persistent', @@ -1419,4 +1418,30 @@ test_data = { } ] }, + "configurableData": + { + "portableIpRange": { + "gateway": "", + "netmask": "", + "startip": "", + "endip": "", + "vlan": "" + }, + "netscaler": { + "ipaddress": "", + "username": "", + "password": "", + "networkdevicetype": "", + "publicinterface": "", + "privateinterface": "", + "numretries": "", + "lbdevicededicated": "False", + "lbdevicecapacity": 2, + "port": 22 + }, + "iscsi": { + "url": "", + "name": "Primary iSCSI" + }, + } } diff --git a/tools/marvin/marvin/lib/common.py b/tools/marvin/marvin/lib/common.py index 63662b96880..9e3d40cdbc8 100644 --- a/tools/marvin/marvin/lib/common.py +++ b/tools/marvin/marvin/lib/common.py @@ -1376,21 +1376,3 @@ def isNetworkDeleted(apiclient, networkid, timeout=600): time.sleep(60) #end while return networkDeleted - -def GetNetscalerInfoFromConfig(config): - """ Read netscaler data from config file and - return it - - Input: Config - Output: [netscalerInfoDict, isExceptionOccured] - """ - try: - netscalerInfo = config.__dict__[ - "netscalerDevice"].__dict__ - return [netscalerInfo, None] - except KeyError: - exceptionMessage = "Please make sure you have included netscalerDevice\ - dict in your config file" - return [None, exceptionMessage] - except Exception as e: - return [None, e]