aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/openstack/tempest
diff options
context:
space:
mode:
Diffstat (limited to 'functest/opnfv_tests/openstack/tempest')
-rw-r--r--functest/opnfv_tests/openstack/tempest/conf_utils.py54
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py38
2 files changed, 57 insertions, 35 deletions
diff --git a/functest/opnfv_tests/openstack/tempest/conf_utils.py b/functest/opnfv_tests/openstack/tempest/conf_utils.py
index 80f78e979..fc36a72ed 100644
--- a/functest/opnfv_tests/openstack/tempest/conf_utils.py
+++ b/functest/opnfv_tests/openstack/tempest/conf_utils.py
@@ -81,6 +81,7 @@ def create_rally_deployment(environ=None):
cmd = ['rally', 'deployment', 'check']
output = subprocess.check_output(cmd)
LOGGER.info("%s\n%s", " ".join(cmd), output)
+ return get_verifier_deployment_id()
def create_verifier():
@@ -101,6 +102,7 @@ def create_verifier():
'--type', 'tempest', '--system-wide']
output = subprocess.check_output(cmd)
LOGGER.info("%s\n%s", " ".join(cmd), output)
+ return get_verifier_id()
def get_verifier_id():
@@ -114,9 +116,6 @@ def get_verifier_id():
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
verifier_uuid = proc.stdout.readline().rstrip()
- if verifier_uuid == "":
- LOGGER.error("Tempest verifier not found.")
- raise Exception('Error with command:%s' % cmd)
return verifier_uuid
@@ -131,9 +130,6 @@ def get_verifier_deployment_id():
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
deployment_uuid = proc.stdout.readline().rstrip()
- if deployment_uuid == "":
- LOGGER.error("Rally deployment not found.")
- raise Exception('Error with command:%s' % cmd)
return deployment_uuid
@@ -175,17 +171,17 @@ def update_tempest_conf_file(conf_file, rconfig):
def configure_tempest_update_params(
- tempest_conf_file, network_name=None, image_id=None, flavor_id=None,
+ tempest_conf_file, image_id=None, flavor_id=None,
compute_cnt=1, image_alt_id=None, flavor_alt_id=None,
- domain_name="Default"):
- # pylint: disable=too-many-branches, too-many-arguments
+ admin_role_name='admin', cidr='192.168.120.0/24',
+ domain_id='default'):
+ # pylint: disable=too-many-branches,too-many-arguments,too-many-statements
"""
Add/update needed parameters into tempest.conf file
"""
LOGGER.debug("Updating selected tempest.conf parameters...")
rconfig = configparser.RawConfigParser()
rconfig.read(tempest_conf_file)
- rconfig.set('compute', 'fixed_network_name', network_name)
rconfig.set('compute', 'volume_device_name', env.get('VOLUME_DEVICE_NAME'))
if image_id is not None:
rconfig.set('compute', 'image_ref', image_id)
@@ -200,16 +196,14 @@ def configure_tempest_update_params(
rconfig.set('compute', 'min_compute_nodes', compute_cnt)
rconfig.set('compute-feature-enabled', 'live_migration', True)
rconfig.set('compute-feature-enabled', 'shelve', False)
+ filters = ['RetryFilter', 'AvailabilityZoneFilter', 'ComputeFilter',
+ 'ComputeCapabilitiesFilter', 'ImagePropertiesFilter',
+ 'ServerGroupAntiAffinityFilter', 'ServerGroupAffinityFilter']
+ rconfig.set(
+ 'compute-feature-enabled', 'scheduler_available_filters',
+ convert_list_to_ini(filters))
if os.environ.get('OS_REGION_NAME'):
rconfig.set('identity', 'region', os.environ.get('OS_REGION_NAME'))
- identity_api_version = os.environ.get("OS_IDENTITY_API_VERSION", '3')
- rconfig.set('auth', 'admin_domain_scope', True)
- rconfig.set('auth', 'default_credentials_domain_name', domain_name)
- if identity_api_version == '3':
- auth_version = 'v3'
- rconfig.set('identity-feature-enabled', 'api_v2', False)
- else:
- auth_version = 'v2'
if env.get("NEW_USER_ROLE").lower() != "member":
rconfig.set(
'auth', 'tempest_roles',
@@ -221,13 +215,25 @@ def configure_tempest_update_params(
assert os.path.exists(
account_file), "{} doesn't exist".format(account_file)
rconfig.set('auth', 'test_accounts_file', account_file)
- rconfig.set('identity', 'auth_version', auth_version)
+ rconfig.set('identity', 'auth_version', 'v3')
+ rconfig.set('identity', 'admin_role', admin_role_name)
+ rconfig.set('identity', 'admin_domain_scope', True)
+ rconfig.set('identity', 'default_domain_id', domain_id)
+ rconfig.set('identity-feature-enabled', 'api_v2', False)
+ rconfig.set('identity-feature-enabled', 'api_v2_admin', False)
+ if not rconfig.has_section('network'):
+ rconfig.add_section('network')
+ rconfig.set('network', 'default_network', cidr)
+ rconfig.set('network', 'project_network_cidr', cidr)
+ rconfig.set('network', 'project_networks_reachable', False)
rconfig.set(
'validation', 'ssh_timeout',
getattr(config.CONF, 'tempest_validation_ssh_timeout'))
rconfig.set('object-storage', 'operator_role',
getattr(config.CONF, 'tempest_object_storage_operator_role'))
-
+ if not rconfig.has_section('volume'):
+ rconfig.add_section('volume')
+ rconfig.set('volume', 'storage_protocol', env.get('STORAGE_PROTOCOL'))
rconfig.set(
'identity', 'v3_endpoint_type',
os.environ.get('OS_INTERFACE', 'public'))
@@ -261,16 +267,14 @@ def configure_verifier(deployment_dir):
if not os.path.isfile(tempest_conf_file):
LOGGER.error("Tempest configuration file %s NOT found.",
tempest_conf_file)
- raise Exception("Tempest configuration file %s NOT found."
- % tempest_conf_file)
- else:
- return tempest_conf_file
+ return None
+ return tempest_conf_file
def convert_dict_to_ini(value):
"Convert dict to oslo.conf input"
assert isinstance(value, dict)
- return ",".join("{}={}".format(
+ return ",".join("{}:{}".format(
key, val) for (key, val) in six.iteritems(value))
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
index ddd0d640d..4c5308bdf 100644
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ b/functest/opnfv_tests/openstack/tempest/tempest.py
@@ -36,7 +36,6 @@ class TempestCommon(singlevm.VmReady2):
"""TempestCommon testcases implementation class."""
visibility = 'public'
- shared_network = True
filename_alt = '/home/opnfv/functest/images/cirros-0.4.0-x86_64-disk.img'
def __init__(self, **kwargs):
@@ -47,27 +46,38 @@ class TempestCommon(singlevm.VmReady2):
assert self.cloud
assert self.project
if self.orig_cloud.get_role("admin"):
- role_name = "admin"
+ self.role_name = "admin"
elif self.orig_cloud.get_role("Admin"):
- role_name = "Admin"
+ self.role_name = "Admin"
else:
raise Exception("Cannot detect neither admin nor Admin")
self.orig_cloud.grant_role(
- role_name, user=self.project.user.id,
+ self.role_name, user=self.project.user.id,
project=self.project.project.id,
domain=self.project.domain.id)
+ self.orig_cloud.grant_role(
+ self.role_name, user=self.project.user.id,
+ domain=self.project.domain.id)
environ = dict(
os.environ,
OS_USERNAME=self.project.user.name,
OS_PROJECT_NAME=self.project.project.name,
OS_PROJECT_ID=self.project.project.id,
OS_PASSWORD=self.project.password)
- conf_utils.create_rally_deployment(environ=environ)
- conf_utils.create_verifier()
- self.verifier_id = conf_utils.get_verifier_id()
+ try:
+ del environ['OS_TENANT_NAME']
+ del environ['OS_TENANT_ID']
+ except Exception: # pylint: disable=broad-except
+ pass
+ self.deployment_id = conf_utils.create_rally_deployment(
+ environ=environ)
+ if not self.deployment_id:
+ raise Exception("Deployment create failed")
+ self.verifier_id = conf_utils.create_verifier()
+ if not self.verifier_id:
+ raise Exception("Verifier create failed")
self.verifier_repo_dir = conf_utils.get_verifier_repo_dir(
self.verifier_id)
- self.deployment_id = conf_utils.get_verifier_deployment_id()
self.deployment_dir = conf_utils.get_verifier_deployment_dir(
self.verifier_id, self.deployment_id)
self.verification_id = None
@@ -90,6 +100,9 @@ class TempestCommon(singlevm.VmReady2):
except Exception: # pylint: disable=broad-except
pass
+ def create_network_resources(self):
+ pass
+
def check_services(self):
"""Check the mandatory services."""
for service in self.services:
@@ -112,6 +125,8 @@ class TempestCommon(singlevm.VmReady2):
def check_requirements(self):
self.check_services()
self.check_extensions()
+ if self.is_skipped:
+ self.project.clean()
@staticmethod
def read_file(filename):
@@ -394,14 +409,17 @@ class TempestCommon(singlevm.VmReady2):
LOGGER.debug("flavor: %s", self.flavor_alt)
self.conf_file = conf_utils.configure_verifier(self.deployment_dir)
+ if not self.conf_file:
+ raise Exception("Tempest verifier configuring failed")
conf_utils.configure_tempest_update_params(
- self.conf_file, network_name=self.network.name,
+ self.conf_file,
image_id=self.image.id,
flavor_id=self.flavor.id,
compute_cnt=compute_cnt,
image_alt_id=self.image_alt.id,
flavor_alt_id=self.flavor_alt.id,
- domain_name=self.cloud.auth.get("project_domain_name", "Default"))
+ admin_role_name=self.role_name, cidr=self.cidr,
+ domain_id=self.project.domain.id)
self.update_scenario_section()
self.backup_tempest_config(self.conf_file, self.res_dir)