X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Fci%2Fprepare_env.py;h=c40e32660b11512ae973c8b6f8515178360f6fd4;hb=469abc969a94e3e3c6f4967b6d1fd8953a56e497;hp=9e53e30bdf3bd56a34a5266db95103478e0473f4;hpb=6c6b03b310cf60b251a52127901431f7d059e45f;p=functest.git diff --git a/functest/ci/prepare_env.py b/functest/ci/prepare_env.py old mode 100755 new mode 100644 index 9e53e30bd..c40e32660 --- a/functest/ci/prepare_env.py +++ b/functest/ci/prepare_env.py @@ -11,6 +11,7 @@ import json import logging import logging.config import os +import pkg_resources import re import subprocess import sys @@ -18,6 +19,7 @@ import fileinput import yaml +from functest.ci import check_deployment import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as os_utils from functest.utils.constants import CONST @@ -34,14 +36,15 @@ handler = None pod_arch = None arch_filter = ['aarch64'] -CONFIG_FUNCTEST_PATH = CONST.__getattribute__('CONFIG_FUNCTEST_YAML') -CONFIG_PATCH_PATH = os.path.join(os.path.dirname( - CONFIG_FUNCTEST_PATH), "config_patch.yaml") -CONFIG_AARCH64_PATCH_PATH = os.path.join(os.path.dirname( - CONFIG_FUNCTEST_PATH), "config_aarch64_patch.yaml") -RALLY_CONF_PATH = os.path.join("/etc/rally/rally.conf") -RALLY_AARCH64_PATCH_PATH = os.path.join(os.path.dirname( - CONFIG_FUNCTEST_PATH), "rally_aarch64_patch.conf") +CONFIG_FUNCTEST_PATH = pkg_resources.resource_filename( + 'functest', 'ci/config_functest.yaml') +CONFIG_PATCH_PATH = pkg_resources.resource_filename( + 'functest', 'ci/config_patch.yaml') +CONFIG_AARCH64_PATCH_PATH = pkg_resources.resource_filename( + 'functest', 'ci/config_aarch64_patch.yaml') +RALLY_CONF_PATH = "/etc/rally/rally.conf" +RALLY_AARCH64_PATCH_PATH = pkg_resources.resource_filename( + 'functest', 'ci/rally_aarch64_patch.conf') class PrepareEnvParser(object): @@ -114,9 +117,8 @@ def get_deployment_handler(): global handler global pod_arch - installer_params_yaml = os.path.join( - CONST.__getattribute__('dir_repo_functest'), - 'functest/ci/installer_params.yaml') + installer_params_yaml = pkg_resources.resource_filename( + 'functest', 'ci/installer_params.yaml') if (CONST.__getattribute__('INSTALLER_IP') and CONST.__getattribute__('INSTALLER_TYPE') and CONST.__getattribute__('INSTALLER_TYPE') in @@ -176,26 +178,6 @@ def create_directories(): def source_rc_file(): print_separator() - if CONST.__getattribute__('openstack_creds') is None: - logger.warning("The environment variable 'creds' must be set and" - "pointing to the local RC file. Using default: " - "/home/opnfv/functest/conf/openstack.creds ...") - os.path.join( - CONST.__getattribute__('dir_functest_conf'), 'openstack.creds') - - if not os.path.isfile(CONST.__getattribute__('openstack_creds')): - raise Exception( - "OpenStack credentials file not provided. " - "The OpenStack credentials must be in {}" - .format(CONST.__getattribute__('openstack_creds'))) - else: - logger.info("RC file provided in %s." - % CONST.__getattribute__('openstack_creds')) - if os.path.getsize(CONST.__getattribute__('openstack_creds')) == 0: - raise Exception( - "The OpenStack RC file {} is empty." - .format(CONST.__getattribute__('openstack_creds'))) - logger.info("Sourcing the OpenStack RC file...") os_utils.source_credentials(CONST.__getattribute__('openstack_creds')) for key, value in os.environ.iteritems(): @@ -249,19 +231,9 @@ def update_db_url(): def verify_deployment(): print_separator() - logger.info("Verifying OpenStack services...") - cmd = ("%s/functest/ci/check_os.sh" % - CONST.__getattribute__('dir_repo_functest')) - - logger.debug("Executing command: %s" % cmd) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) - - while p.poll() is None: - line = p.stdout.readline().rstrip() - if "ERROR" in line: - logger.error(line) - raise Exception("Problem while running 'check_os.sh'.") - logger.info(line) + logger.info("Verifying OpenStack deployment...") + deployment = check_deployment.CheckDeployment() + deployment.check_all() def install_rally(): @@ -357,26 +329,24 @@ def print_deployment_info(): handler.get_deployment_info()) -def main(**kwargs): +def prepare_env(**kwargs): try: if not (kwargs['action'] in actions): logger.error('Argument not valid.') return -1 elif kwargs['action'] == "start": logger.info("######### Preparing Functest environment #########\n") + verify_deployment() check_env_variables() - get_deployment_handler() create_directories() source_rc_file() update_config_file() - verify_deployment() install_rally() install_tempest() create_flavor() with open(CONST.__getattribute__('env_active'), "w") as env_file: env_file.write("1") check_environment() - print_deployment_info() elif kwargs['action'] == "check": check_environment() except Exception as e: @@ -385,9 +355,9 @@ def main(**kwargs): return 0 -if __name__ == '__main__': - logging.config.fileConfig( - CONST.__getattribute__('dir_functest_logging_cfg')) +def main(): + logging.config.fileConfig(pkg_resources.resource_filename( + 'functest', 'ci/logging.ini')) parser = PrepareEnvParser() args = parser.parse_args(sys.argv[1:]) - sys.exit(main(**args)) + return prepare_env(**args)