diff options
author | Cedric Ollivier <cedric.ollivier@orange.com> | 2018-07-02 08:32:07 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2018-07-02 08:32:07 +0000 |
commit | f3a414d7177351a62a6be2c85bf84e3afee002a9 (patch) | |
tree | 76be6977bc4f9cc96c08bd4f774c968c992526c0 /functest/core | |
parent | b3916af1754e02bb952b431a36c70b0c3aee9a0a (diff) | |
parent | 43d6672e637a5b5b68ac4c382140996b4b9b17da (diff) |
Merge "Inherit rally from VmReady1"
Diffstat (limited to 'functest/core')
-rw-r--r-- | functest/core/singlevm.py | 35 | ||||
-rw-r--r-- | functest/core/tenantnetwork.py | 24 |
2 files changed, 55 insertions, 4 deletions
diff --git a/functest/core/singlevm.py b/functest/core/singlevm.py index e6cf01835..88e5155cb 100644 --- a/functest/core/singlevm.py +++ b/functest/core/singlevm.py @@ -39,9 +39,14 @@ class VmReady1(tenantnetwork.TenantNetwork1): filename = '/home/opnfv/functest/images/cirros-0.4.0-x86_64-disk.img' visibility = 'private' extra_properties = None - flavor_ram = 1024 + flavor_ram = 512 flavor_vcpus = 1 flavor_disk = 1 + flavor_alt_ram = 1024 + flavor_alt_vcpus = 1 + flavor_alt_disk = 1 + + image_format = 'qcow2' def __init__(self, **kwargs): if "case_name" not in kwargs: @@ -70,6 +75,9 @@ class VmReady1(tenantnetwork.TenantNetwork1): meta=getattr( config.CONF, '{}_extra_properties'.format(self.case_name), self.extra_properties), + disk_format=getattr( + config.CONF, '{}_image_format'.format(self.case_name), + self.image_format), visibility=getattr( config.CONF, '{}_visibility'.format(self.case_name), self.visibility)) @@ -100,6 +108,31 @@ class VmReady1(tenantnetwork.TenantNetwork1): flavor.id, getattr(config.CONF, 'flavor_extra_specs', {})) return flavor + def create_flavor_alt(self, name=None): + """Create flavor + + It allows creating multiple alt flavors for the child testcases. It + forces the same configuration for all subtestcases. + + Returns: flavor + + Raises: expection on error + """ + assert self.orig_cloud + flavor = self.orig_cloud.create_flavor( + name if name else '{}-flavor_alt_{}'.format( + self.case_name, self.guid), + getattr(config.CONF, '{}_flavor_alt_ram'.format(self.case_name), + self.flavor_alt_ram), + getattr(config.CONF, '{}_flavor_alt_vcpus'.format(self.case_name), + self.flavor_alt_vcpus), + getattr(config.CONF, '{}_flavor_alt_disk'.format(self.case_name), + self.flavor_alt_disk)) + self.__logger.debug("flavor: %s", flavor) + self.orig_cloud.set_flavor_specs( + flavor.id, getattr(config.CONF, 'flavor_extra_specs', {})) + return flavor + def boot_vm(self, name=None, **kwargs): """Boot the virtual machine diff --git a/functest/core/tenantnetwork.py b/functest/core/tenantnetwork.py index ea69fcba6..6efb7abd7 100644 --- a/functest/core/tenantnetwork.py +++ b/functest/core/tenantnetwork.py @@ -28,7 +28,6 @@ from xtesting.core import testcase from functest.utils import config from functest.utils import env -from functest.utils import functest_utils class NewProject(object): @@ -115,6 +114,7 @@ class TenantNetwork1(testcase.TestCase): __logger = logging.getLogger(__name__) cidr = '192.168.0.0/24' + shared_network = False def __init__(self, **kwargs): if "case_name" not in kwargs: @@ -130,7 +130,7 @@ class TenantNetwork1(testcase.TestCase): self.ext_net = None self.__logger.exception("Cannot connect to Cloud") try: - self.ext_net = functest_utils.get_external_network(self.cloud) + self.ext_net = self.get_external_network(self.cloud) except Exception: # pylint: disable=broad-except self.__logger.exception("Cannot get the external network") self.guid = str(uuid.uuid4()) @@ -138,6 +138,23 @@ class TenantNetwork1(testcase.TestCase): self.subnet = None self.router = None + @staticmethod + def get_external_network(cloud): + """ + Returns the configured external network name or + the first retrieved external network name + """ + assert cloud + if env.get("EXTERNAL_NETWORK"): + network = cloud.get_network( + env.get("EXTERNAL_NETWORK"), {"router:external": True}) + if network: + return network + networks = cloud.list_networks({"router:external": True}) + if networks: + return networks[0] + return None + def _create_network_ressources(self): assert self.cloud assert self.ext_net @@ -153,7 +170,8 @@ class TenantNetwork1(testcase.TestCase): config.CONF, '{}_segmentation_id'.format(self.case_name)) self.network = self.cloud.create_network( '{}-net_{}'.format(self.case_name, self.guid), - provider=provider) + provider=provider, + shared=self.shared_network) self.__logger.debug("network: %s", self.network) self.subnet = self.cloud.create_subnet( |