From 0c55a91ceed5cdcbe03eec3b0b731e501bf51773 Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Ollivier?= Date: Wed, 10 Jul 2019 22:13:37 +0200 Subject: [PATCH] Allow scenarios without external network MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit It allows creating testcases leveraging on Functest scenarios without external network. Then Rally can verify network providers by only skipping NovaServers.boot_server_associate_and_dissociate_floating_ip Change-Id: I07a9348214f7557195c7201466f7e37b2b980206 Signed-off-by: Cédric Ollivier (cherry picked from commit a30e0c35f248cc9225e628e3a64723b2184d6087) --- functest/core/tenantnetwork.py | 7 +++++-- functest/opnfv_tests/openstack/rally/blacklist.yaml | 5 +++++ functest/opnfv_tests/openstack/rally/rally.py | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/functest/core/tenantnetwork.py b/functest/core/tenantnetwork.py index 7b2bf8799..ae739ac36 100644 --- a/functest/core/tenantnetwork.py +++ b/functest/core/tenantnetwork.py @@ -146,6 +146,7 @@ class TenantNetwork1(testcase.TestCase): __logger = logging.getLogger(__name__) cidr = '192.168.120.0/24' shared_network = False + allow_no_fip = False def __init__(self, **kwargs): if "case_name" not in kwargs: @@ -164,6 +165,7 @@ class TenantNetwork1(testcase.TestCase): try: self.ext_net = self.get_external_network(self.cloud) except Exception: # pylint: disable=broad-except + self.ext_net = None self.__logger.exception("Cannot get the external network") self.guid = str(uuid.uuid4()) self.network = None @@ -216,7 +218,8 @@ class TenantNetwork1(testcase.TestCase): Raises: expection on error """ assert self.cloud - assert self.ext_net + if not self.allow_no_fip: + assert self.ext_net provider = {} if hasattr(config.CONF, '{}_network_type'.format(self.case_name)): provider["network_type"] = getattr( @@ -251,7 +254,7 @@ class TenantNetwork1(testcase.TestCase): self.router = self.cloud.create_router( name='{}-router_{}'.format(self.case_name, self.guid), - ext_gateway_net_id=self.ext_net.id) + ext_gateway_net_id=self.ext_net.id if self.ext_net else None) self.__logger.debug("router: %s", self.router) self.cloud.add_router_interface(self.router, subnet_id=self.subnet.id) diff --git a/functest/opnfv_tests/openstack/rally/blacklist.yaml b/functest/opnfv_tests/openstack/rally/blacklist.yaml index 77c514245..beed15cb9 100644 --- a/functest/opnfv_tests/openstack/rally/blacklist.yaml +++ b/functest/opnfv_tests/openstack/rally/blacklist.yaml @@ -28,3 +28,8 @@ functionality: - no_net_trunk_service tests: - '^NeutronTrunk' + - + functions: + - no_floating_ip + tests: + - NovaServers.boot_server_associate_and_dissociate_floating_ip diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py index fccb3b192..6ba22ba8e 100644 --- a/functest/opnfv_tests/openstack/rally/rally.py +++ b/functest/opnfv_tests/openstack/rally/rally.py @@ -66,6 +66,7 @@ class RallyBase(singlevm.VmReady2): visibility = 'public' shared_network = True + allow_no_fip = True def __init__(self, **kwargs): """Initialize RallyBase object.""" @@ -334,6 +335,8 @@ class RallyBase(singlevm.VmReady2): func_list.append("no_migration") if not self._network_trunk_supported(): func_list.append("no_net_trunk_service") + if not self.ext_net: + func_list.append("no_floating_ip") if 'functionality' in black_list_yaml.keys(): for item in black_list_yaml['functionality']: -- 2.16.6