-#!/bin/bash
+#!/usr/bin/env python
#
# Author: Jose Lausuch (jose.lausuch@ericsson.com)
#
# http://www.apache.org/licenses/LICENSE-2.0
#
+
import argparse
import os
import re
import subprocess
import sys
-import yaml
-import functest.ci.tier_builder as tb
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
-""" arguments """
actions = ['start', 'check']
parser = argparse.ArgumentParser()
parser.add_argument("action", help="Possible actions are: "
REPOS_DIR = os.getenv('repos_dir')
FUNCTEST_REPO = REPOS_DIR + '/functest/'
-with open("/home/opnfv/repos/functest/testcases/config_functest.yaml") as f:
+with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
functest_yaml = yaml.safe_load(f)
FUNCTEST_CONF_DIR = functest_yaml.get("general").get(
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()
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. "
logger.debug("Executing command: %s" % cmd)
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
output = p.communicate()[0]
- logger.debug(output)
+ logger.debug("\n%s" % output)
if p.returncode != 0:
logger.error("Failed to fetch credentials from installer.")
sys.exit(1)
if "ERROR" in line:
logger.error(line)
sys.exit("Problem while running 'check_os.sh'.")
- logger.debug(line)
+ logger.info(line)
def install_rally():
logger.info("Creating Rally environment...")
cmd = "rally deployment destroy opnfv-rally"
- ft_utils.execute_command(cmd, logger=None, exit_on_error=False)
+ ft_utils.execute_command(cmd, logger=logger, exit_on_error=False,
+ error_msg=("Deployment %s does not exist."
+ % DEPLOYMENT_MAME), verbose=False)
cmd = "rally deployment create --fromenv --name=" + DEPLOYMENT_MAME
- if not ft_utils.execute_command(cmd, logger):
- logger.error("Problem while creating Rally deployment.")
- sys.exit(cmd)
+ ft_utils.execute_command(cmd, logger,
+ error_msg="Problem creating Rally deployment")
logger.info("Installing tempest from existing repo...")
cmd = ("rally verify install --source " + TEMPEST_REPO_DIR +
" --system-wide")
- if not ft_utils.execute_command(cmd, logger):
- logger.error("Problem while installing Tempest.")
- sys.exit(cmd)
+ ft_utils.execute_command(cmd, logger,
+ error_msg="Problem installing Tempest.")
cmd = "rally deployment check"
- if not ft_utils.execute_command(cmd, logger):
- logger.error("OpenStack not responding or faulty Rally deployment.")
- sys.exit(cmd)
+ ft_utils.execute_command(cmd, logger,
+ error_msg=("OpenStack not responding or "
+ "faulty Rally deployment."))
cmd = "rally show images"
- if not ft_utils.execute_command(cmd, logger):
- logger.error("Problem while listing OpenStack images.")
- sys.exit(cmd)
+ ft_utils.execute_command(cmd, logger,
+ error_msg=("Problem while listing "
+ "OpenStack images."))
cmd = "rally show flavors"
- if not ft_utils.execute_command(cmd, logger):
- logger.error("Problem while showing OpenStack flavors.")
- sys.exit(cmd)
-
-
-def generate_os_defaults():
- print_separator()
- logger.info("Generating OpenStack defaults...")
- gen_def.main()
-
-
-def generate_tiers():
- print_separator()
- logger.info("Generating Tiers and test cases...")
- file = FUNCTEST_REPO + "/ci/testcases.yaml"
-
- t = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, file)
- logger.info("Tiers and tests to be executed:\n\n%s" % t)
+ ft_utils.execute_command(cmd, logger,
+ error_msg=("Problem while showing "
+ "OpenStack flavors."))
def check_environment():
sys.exit()
if args.action == "start":
- print ("\n######### Preparing Functest environment #########\n")
+ logger.info("######### Preparing Functest environment #########\n")
check_env_variables()
create_directories()
source_rc_file()
verify_deployment()
install_rally()
- generate_os_defaults()
- generate_tiers()
with open(ENV_FILE, "w") as env_file:
env_file.write("1")