From 9bdb8955ba266abc34e1ab069ad0ee013dcf57ba Mon Sep 17 00:00:00 2001 From: vitikkan Date: Mon, 16 May 2016 08:05:45 +0300 Subject: BGPVPN test case refactored BGPVPN test case is refactored and moved into bgpvpn.py module. JIRA: FUNCTEST-234 Change-Id: Ib0dd6e11f3c568470d9c3837ca192da767c64843 Signed-off-by: vitikkan --- ci/exec_test.sh | 17 +------ .../VIM/OpenStack/CI/libraries/run_tempest.py | 17 +------ testcases/features/bgpvpn.py | 58 ++++++++++++++++++++++ utils/functest_utils.py | 26 ++++++++++ 4 files changed, 86 insertions(+), 32 deletions(-) create mode 100644 testcases/features/bgpvpn.py diff --git a/ci/exec_test.sh b/ci/exec_test.sh index ae92e7fe9..e5f093b57 100755 --- a/ci/exec_test.sh +++ b/ci/exec_test.sh @@ -118,22 +118,7 @@ function run_test(){ $debug $clean_flag --sanity all $report ;; "bgpvpn") - pushd ${repos_dir}/bgpvpn/ - pip install --no-deps -e . - popd - tempest_dir=$(ls -t /home/opnfv/.rally/tempest/ |grep for-deploy |tail -1) - if [[ $tempest_dir == "" ]]; then - echo "Make sure tempest was running before" >&2 - fi - tempest_dir=/home/opnfv/.rally/tempest/$tempest_dir - pushd $tempest_dir - mkdir -p /etc/tempest/ - cp tempest.conf /etc/tempest/ - echo "[service_available] -bgpvpn = True" >> /etc/tempest/tempest.conf - ./run_tempest.sh -t -N -- networking_bgpvpn_tempest - rm -rf /etc/tempest/tempest.conf - popd + python ${FUNCTEST_REPO_DIR}/testcases/features/bgpvpn.py ;; "onos") if [ "$INSTALLER_TYPE" == "joid" ]; then diff --git a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py index 9eca6cbd8..bf62ce306 100644 --- a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py @@ -172,21 +172,6 @@ def create_tempest_resources(): exit(-1) -def get_deployment_dir(): - logger.debug("Resolving deployment UUID and directory...") - 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.error("Rally deployment NOT found.") - exit(-1) - deployment_dir = (RALLY_INSTALLATION_DIR + "/tempest/for-deployment-" + - deployment_uuid) - return deployment_dir - - def configure_tempest(deployment_dir): """ Add/update needed parameters into tempest.conf file generated by Rally @@ -345,7 +330,7 @@ def main(): if not os.path.exists(TEMPEST_RESULTS_DIR): os.makedirs(TEMPEST_RESULTS_DIR) - deployment_dir = get_deployment_dir() + deployment_dir = ft_utils.get_deployment_dir(logger) configure_tempest(deployment_dir) create_tempest_resources() generate_test_list(deployment_dir, args.mode) diff --git a/testcases/features/bgpvpn.py b/testcases/features/bgpvpn.py new file mode 100644 index 000000000..a6e66b1f5 --- /dev/null +++ b/testcases/features/bgpvpn.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# +# Copyright (c) 2015 All rights reserved +# This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Execute BGPVPN Tempest test cases +# + +import os +import yaml +import ConfigParser + +import functest.utils.functest_logger as ft_logger +import functest.utils.functest_utils as ft_utils + +with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: + functest_yaml = yaml.safe_load(f) + +dirs = functest_yaml.get('general').get('directories') +FUNCTEST_REPO = dirs.get('dir_repo_functest') +BGPVPN_REPO = dirs.get('dir_repo_bgpvpn') +TEST_DB_URL = functest_yaml.get('results').get('test_db_url') + +logger = ft_logger.Logger("bgpvpn").getLogger() + + +def main(): + logger.info("Running BGPVPN Tempest test case...") + + cmd = 'cd ' + BGPVPN_REPO + ';pip install --no-deps -e .' + ft_utils.execute_command(cmd, logger, exit_on_error=False) + + src_tempest_dir = ft_utils.get_deployment_dir(logger) + if not src_tempest_dir: + logger.error("Rally deployment not found.") + exit(-1) + + src_tempest_conf = src_tempest_dir + '/tempest.conf' + dst_tempest_conf = src_tempest_dir + '/etc/tempest.conf' + + config = ConfigParser.RawConfigParser() + config.read(src_tempest_conf) + config.set('service_available', 'bgpvpn', 'True') + with open(dst_tempest_conf, 'wb') as config_file: + config.write(config_file) + + cmd = (src_tempest_dir + + '/run_tempest.sh -t -N -- networking_bgpvpn_tempest;' + 'rm -rf ' + dst_tempest_conf) + ft_utils.execute_command(cmd, logger, exit_on_error=False) + + +if __name__ == '__main__': + main() diff --git a/utils/functest_utils.py b/utils/functest_utils.py index 2d871615a..8ee5346c1 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -18,6 +18,7 @@ import socket import subprocess import sys import urllib2 +import yaml from git import Repo @@ -235,3 +236,28 @@ def execute_command(cmd, logger=None, sys.exit(1) return p.returncode + + +def get_deployment_dir(logger=None): + """ + Returns current Rally deployment directory + """ + with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: + functest_yaml = yaml.safe_load(f) + f.close() + deployment_name = functest_yaml.get("rally").get("deployment_name") + rally_dir = functest_yaml.get("general").get("directories").get( + "dir_rally_inst") + cmd = ("rally deployment list | awk '/" + deployment_name + + "/ {print $2}'") + p = subprocess.Popen(cmd, shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + deployment_uuid = p.stdout.readline().rstrip() + if deployment_uuid == "": + if logger: + logger.error("Rally deployment not found.") + exit(-1) + deployment_dir = (rally_dir + "/tempest/for-deployment-" + + deployment_uuid) + return deployment_dir -- cgit 1.2.3-korg