diff options
-rwxr-xr-x[-rw-r--r--] | testcases/config_functest.py | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/testcases/config_functest.py b/testcases/config_functest.py index 7fbd06042..e209a3b94 100644..100755 --- a/testcases/config_functest.py +++ b/testcases/config_functest.py @@ -13,6 +13,7 @@ import functest_utils from git import Repo from os import stat from pwd import getpwuid +from neutronclient.v2_0 import client as neutronclient actions = ['start', 'check', 'clean'] parser = argparse.ArgumentParser() @@ -59,6 +60,8 @@ RALLY_RESULT_DIR = HOME + functest_yaml.get("general").get("directories").get("d VPING_DIR = REPO_PATH + functest_yaml.get("general").get("directories").get("dir_vping") ODL_DIR = REPO_PATH + functest_yaml.get("general").get("directories").get("dir_odl") +# Tempest/Rally configuration details +DEPLOYMENT_MAME = "opnfv-rally" #GLANCE image parameters IMAGE_URL = functest_yaml.get("general").get("openstack").get("image_url") @@ -91,7 +94,7 @@ def action_start(): action_clean() logger.info("Installing needed libraries on the host") - cmd = "sudo yum -y install gcc libffi-devel python-devel openssl-devel gmp-devel libxml2-devel libxslt-devel postgresql-devel git wget" + cmd = "sudo yum -y install gcc libffi-devel python-devel openssl-devel gmp-devel libxml2-devel libxslt-devel postgresql-devel git wget crudini" if not functest_utils.execute_command(cmd, logger): logger.error("There has been a problem while installing software packages.") exit(-1) @@ -109,6 +112,12 @@ def action_start(): action_clean() exit(-1) + logger.info("Configuring Tempest...") + if not configure_tempest(): + logger.error("There has been a problem while configuring Tempest.") + action_clean() + exit(-1) + # Create result folder under functest if necessary if not os.path.exists(RALLY_RESULT_DIR): os.makedirs(RALLY_RESULT_DIR) @@ -259,7 +268,7 @@ def install_rally(): functest_utils.execute_command(cmd,logger) logger.debug("Creating Rally environment...") - cmd = "rally deployment create --fromenv --name=opnfv-arno-rally" + cmd = "rally deployment create --fromenv --name="+DEPLOYMENT_MAME functest_utils.execute_command(cmd,logger) logger.debug("Installing tempest...") @@ -279,6 +288,40 @@ def install_rally(): return True +def configure_tempest(): + """ + Add/update needed parameters into tempest.conf file generated by Rally + """ + + creds_neutron = functest_utils.get_credentials("neutron") + neutron_client = neutronclient.Client(**creds_neutron) + + logger.debug("Generating tempest.conf file...") + cmd = "rally verify genconfig" + functest_utils.execute_command(cmd,logger) + + logger.debug("Resolving deployment UUID...") + cmd = "rally deployment list | awk '/"+DEPLOYMENT_MAME+"/ {print $2}'" + p = subprocess.Popen(cmd, shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT); + deployment_uuid = p.stdout.readline().rstrip() + if deployment_uuid == "": + logger.debug(" Rally deployment NOT found") + return False + + logger.debug("Finding tempest.conf file...") + tempest_conf_file = RALLY_INSTALLATION_DIR+"tempest/for-deployment-" \ + +deployment_uuid+"/tempest.conf" + + logger.debug(" Updating fixed_network_name...") + fixed_network = functest_utils.get_network_list(neutron_client)[0]['name'] + if fixed_network != None: + cmd = "crudini --set "+tempest_conf_file+" compute fixed_network_name "+fixed_network + functest_utils.execute_command(cmd,logger) + + return True + def check_rally(): """ @@ -287,7 +330,7 @@ def check_rally(): if os.path.exists(RALLY_INSTALLATION_DIR): logger.debug(" Rally installation directory found in %s" % RALLY_INSTALLATION_DIR) FNULL = open(os.devnull, 'w'); - cmd="rally deployment list | grep opnfv"; + cmd="rally deployment list | grep "+DEPLOYMENT_MAME logger.debug(' Executing command : {}'.format(cmd)) p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=FNULL); #if the command does not exist or there is no deployment |