aboutsummaryrefslogtreecommitdiffstats
path: root/functest/core
diff options
context:
space:
mode:
authorCedric Ollivier <cedric.ollivier@orange.com>2018-07-02 08:32:07 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-07-02 08:32:07 +0000
commitf3a414d7177351a62a6be2c85bf84e3afee002a9 (patch)
tree76be6977bc4f9cc96c08bd4f774c968c992526c0 /functest/core
parentb3916af1754e02bb952b431a36c70b0c3aee9a0a (diff)
parent43d6672e637a5b5b68ac4c382140996b4b9b17da (diff)
Merge "Inherit rally from VmReady1"
Diffstat (limited to 'functest/core')
-rw-r--r--functest/core/singlevm.py35
-rw-r--r--functest/core/tenantnetwork.py24
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(