X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2Fprepare_env.py;h=49dcdd505a7e7b8af6b0f30769f745d2f358b5ec;hb=80241f5f8486bfc7ba79bcd47a69a25e719af8a2;hp=61740cd2e8e6395e1710d85c083c92f6cc06e479;hpb=bd00e6f289a69badf7beea827b20764ed3252c7a;p=functest.git diff --git a/ci/prepare_env.py b/ci/prepare_env.py old mode 100644 new mode 100755 index 61740cd2e..49dcdd505 --- a/ci/prepare_env.py +++ b/ci/prepare_env.py @@ -12,20 +12,20 @@ # http://www.apache.org/licenses/LICENSE-2.0 # -import argparse + +import json import os import re import subprocess import sys -import yaml +import argparse import functest.utils.functest_logger as ft_logger import functest.utils.functest_utils as ft_utils -import functest.utils.generate_defaults as gen_def import functest.utils.openstack_utils as os_utils +import yaml +from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO - -""" arguments """ actions = ['start', 'check'] parser = argparse.ArgumentParser() parser.add_argument("action", help="Possible actions are: " @@ -44,11 +44,14 @@ CI_INSTALLER_TYPE = "" CI_INSTALLER_IP = "" CI_SCENARIO = "" CI_DEBUG = False -REPOS_DIR = os.getenv('repos_dir') -FUNCTEST_REPO = REPOS_DIR + '/functest/' +CONFIG_FUNCTEST_PATH = os.environ["CONFIG_FUNCTEST_YAML"] +CONFIG_PATCH_PATH = os.path.join(os.path.dirname( + CONFIG_FUNCTEST_PATH), "config_patch.yaml") -with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: - functest_yaml = yaml.safe_load(f) +functest_yaml = ft_utils.get_functest_yaml() + +with open(CONFIG_PATCH_PATH) as f: + functest_patch_yaml = yaml.safe_load(f) FUNCTEST_CONF_DIR = functest_yaml.get("general").get( "directories").get("dir_functest_conf") @@ -134,13 +137,6 @@ def create_directories(): else: logger.debug(" %s already exists." % FUNCTEST_DATA_DIR) - ODL_RESULTS_DIR = FUNCTEST_RESULTS_DIR + "/ODL/" - if not os.path.exists(ODL_RESULTS_DIR): - os.makedirs(ODL_RESULTS_DIR) - logger.info(" %s created." % ODL_RESULTS_DIR) - else: - logger.debug(" %s already exists." % ODL_RESULTS_DIR) - def source_rc_file(): print_separator() @@ -150,7 +146,7 @@ def source_rc_file(): logger.warning("The environment variable 'creds' must be set and" "pointing to the local RC file. Using default: " "/home/opnfv/functest/conf/openstack.creds ...") - rc_file = "/home/opnfv/functest/conf/openstack.creds ..." + rc_file = "/home/opnfv/functest/conf/openstack.creds" if not os.path.isfile(rc_file): logger.info("RC file not provided. " @@ -190,6 +186,21 @@ def source_rc_file(): logger.debug("Used credentials: %s" % str) +def patch_config_file(): + updated = False + for key in functest_patch_yaml: + if key in CI_SCENARIO: + new_functest_yaml = dict(ft_utils.merge_dicts( + functest_yaml, functest_patch_yaml[key])) + updated = True + + if updated: + os.remove(CONFIG_FUNCTEST_PATH) + with open(CONFIG_FUNCTEST_PATH, "w") as f: + f.write(yaml.dump(new_functest_yaml, default_style='"')) + f.close() + + def verify_deployment(): print_separator() logger.info("Verifying OpenStack services...") @@ -211,42 +222,39 @@ def install_rally(): logger.info("Creating Rally environment...") cmd = "rally deployment destroy opnfv-rally" - ft_utils.execute_command(cmd, logger=logger, exit_on_error=False, + ft_utils.execute_command(cmd, exit_on_error=False, error_msg=("Deployment %s does not exist." % DEPLOYMENT_MAME), verbose=False) - - cmd = "rally deployment create --fromenv --name=" + DEPLOYMENT_MAME - ft_utils.execute_command(cmd, logger, + rally_conf = os_utils.get_credentials_for_rally() + with open('rally_conf.json', 'w') as fp: + json.dump(rally_conf, fp) + cmd = "rally deployment create --file=rally_conf.json --name=" + cmd += DEPLOYMENT_MAME + ft_utils.execute_command(cmd, error_msg="Problem creating Rally deployment") logger.info("Installing tempest from existing repo...") cmd = ("rally verify install --source " + TEMPEST_REPO_DIR + " --system-wide") - ft_utils.execute_command(cmd, logger, + ft_utils.execute_command(cmd, error_msg="Problem installing Tempest.") cmd = "rally deployment check" - ft_utils.execute_command(cmd, logger, + ft_utils.execute_command(cmd, error_msg=("OpenStack not responding or " "faulty Rally deployment.")) cmd = "rally show images" - ft_utils.execute_command(cmd, logger, + ft_utils.execute_command(cmd, error_msg=("Problem while listing " "OpenStack images.")) cmd = "rally show flavors" - ft_utils.execute_command(cmd, logger, + ft_utils.execute_command(cmd, error_msg=("Problem while showing " "OpenStack flavors.")) -def generate_os_defaults(): - print_separator() - logger.info("Generating OpenStack defaults...") - gen_def.main() - - def check_environment(): msg_not_active = "The Functest environment is not installed." if not os.path.isfile(ENV_FILE): @@ -272,9 +280,9 @@ def main(): check_env_variables() create_directories() source_rc_file() + patch_config_file() verify_deployment() install_rally() - generate_os_defaults() with open(ENV_FILE, "w") as env_file: env_file.write("1")