aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-10-21 11:54:51 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2015-10-21 11:54:51 +0000
commitb3e241e1ee0e794ec732eddc5eaeb1f59dc1a999 (patch)
tree5f7446fcb32a810969604454a009cfd34cadc933 /docker
parent9a395ec7698cd70da85e9b60153b51b0b13edac4 (diff)
parent73c8f0a8ed1d6b18356d52a3ce6d3638c2c91ad3 (diff)
Merge "Refactor Functest docker container"
Diffstat (limited to 'docker')
-rwxr-xr-xdocker/common.sh79
-rw-r--r--docker/demo.sh143
-rwxr-xr-xdocker/prepare_env.sh116
-rwxr-xr-xdocker/run_tests.sh97
-rw-r--r--docker/start.sh146
5 files changed, 292 insertions, 289 deletions
diff --git a/docker/common.sh b/docker/common.sh
new file mode 100755
index 000000000..42b7d3e09
--- /dev/null
+++ b/docker/common.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+#
+# Author: Jose Lausuch (jose.lausuch@ericsson.com)
+#
+# Installs the Functest framework within the Docker container
+# and run the tests automatically
+#
+# If config_functest.yaml is given by the docker run command,
+# it must be run like this:
+#
+# docker run -ti \
+# -e "INSTALLER_TYPE=<something>" \
+# -e "INSTALLER_IP=<ip>" \
+# -v $(pwd)/config_functest.yaml:/home/opnfv/functest/conf/config_functest.yaml \
+# opnfv/functest /bin/bash
+#
+# NOTE: $(pwd)/config_functest.yaml means that it will take the one in the
+# current directory.
+#
+# If it is not provided, take the existing one in the functest repo
+#
+config_file=/home/opnfv/functest/conf/config_functest.yaml
+if [ ! -f ${config_file} ]; then
+ config_file=$(find / -name config_functest.yaml)
+fi
+
+# Parse config_functest.yaml file
+# TODO: this is not the best way to parse a yaml file in bash...
+
+# Directories
+REPOS_DIR=$(cat $config_file | grep -w dir_repos | awk 'END {print $NF}')
+FUNCTEST_REPO_DIR=$(cat $config_file | grep -w dir_repo_functest | awk 'END {print $NF}')
+RALLY_REPO_DIR=$(cat $config_file | grep -w dir_repo_rally | awk 'END {print $NF}')
+RELENG_REPO_DIR=$(cat $config_file | grep -w dir_repo_releng | awk 'END {print $NF}')
+
+FUNCTEST_DIR=$(cat $config_file | grep -w dir_functest | awk 'END {print $NF}')
+FUNCTEST_RESULTS_DIR=$(cat $config_file | grep -w dir_results | awk 'END {print $NF}')
+FUNCTEST_CONF_DIR=$(cat $config_file | grep -w dir_functest_conf | awk 'END {print $NF}')
+FUNCTEST_DATA_DIR=$(cat $config_file | grep -w dir_functest_data | awk 'END {print $NF}')
+RALLY_VENV_DIR=$(cat $config_file | grep -w dir_rally_inst | awk 'END {print $NF}')
+
+# Repos
+RALLY_BRANCH=$(cat $config_file | grep -w rally_branch | awk 'END {print $NF}')
+RALLY_COMMIT=$(cat $config_file | grep -w rally_commit | awk 'END {print $NF}')
+FUNCTEST_BRANCH=$(cat $config_file | grep -w functest_branch | awk 'END {print $NF}')
+FUNCTEST_COMMIT=$(cat $config_file | grep -w functest_commit | awk 'END {print $NF}')
+RELENG_BRANCH=$(cat $config_file | grep -w releng_branch | awk 'END {print $NF}')
+RELENG_COMMIT=$(cat $config_file | grep -w releng_commit | awk 'END {print $NF}')
+
+echo "_____Parsed needed data from ${config_file}:"
+echo "####### Directories #######"
+echo "REPOS_DIR=${REPOS_DIR}"
+echo "FUNCTEST_REPO_DIR=${FUNCTEST_REPO_DIR}"
+echo "RALLY_REPO_DIR=${RALLY_REPO_DIR}"
+echo "RELENG_REPO_DIR=${RELENG_REPO_DIR}"
+echo "FUNCTEST_DIR=${FUNCTEST_DIR}"
+echo "FUNCTEST_RESULTS_DIR=${FUNCTEST_RESULTS_DIR}"
+echo "FUNCTEST_CONF_DIR=${FUNCTEST_CONF_DIR}"
+echo "FUNCTEST_DATA_DIR=${FUNCTEST_DATA_DIR}"
+echo "RALLY_VENV_DIR=${RALLY_VENV_DIR}"
+echo "####### Repositories #######"
+echo "FUNCTEST_BRANCH=${FUNCTEST_BRANCH}"
+echo "FUNCTEST_COMMIT=${FUNCTEST_COMMIT}"
+echo "RELENG_BRANCH=${RELENG_BRANCH}"
+echo "RELENG_COMMIT=${RELENG_COMMIT}"
+echo "RALLY_BRANCH=${RALLY_BRANCH}"
+echo "RALLY_COMMIT=${RALLY_COMMIT}"
+echo "############################"
+
+info () {
+ logger -s -t "FUNCTEST.info" "$*"
+}
+
+
+error () {
+ logger -s -t "FUNCTEST.error" "$*"
+ exit 1
+}
diff --git a/docker/demo.sh b/docker/demo.sh
deleted file mode 100644
index 4207810eb..000000000
--- a/docker/demo.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/bin/bash
-
-#
-# Author: Jose Lausuch (jose.lausuch@ericsson.com)
-#
-# Installs the Functest framework within the Docker container
-# and run the tests automatically
-#
-# DO NOT USE FOR PRODUCTION.
-# Changes:
-# It runs only 1 Rally bench scenario
-#
-
-
-config_file=$(find / -name config_functest.yaml)
-
-REPOS_DIR=$(cat $config_file | grep -w dir_repos | awk 'END {print $NF}')
-FUNCTEST_REPO_DIR=$(cat $config_file | grep -w dir_repo_functest | awk 'END {print $NF}')
-RALLY_REPO_DIR=$(cat $config_file | grep -w dir_repo_rally | awk 'END {print $NF}')
-RELENG_REPO_DIR=$(cat $config_file | grep -w dir_repo_releng | awk 'END {print $NF}')
-
-FUNCTEST_DIR=$(cat $config_file | grep -w dir_functest | awk 'END {print $NF}')
-FUNCTEST_RESULTS_DIR=$(cat $config_file | grep -w dir_results | awk 'END {print $NF}')
-FUNCTEST_CONF_DIR=$(cat $config_file | grep -w dir_functest_conf | awk 'END {print $NF}')
-FUNCTEST_DATA_DIR=$(cat $config_file | grep -w dir_functest_data | awk 'END {print $NF}')
-RALLY_VENV=$(cat $config_file | grep -w dir_rally_inst | awk 'END {print $NF}')
-RALLY_COMMIT=$(cat $config_file | grep -w rally_stable_commit | awk 'END {print $NF}')
-
-
-info () {
- logger -s -t "start.info" "$*"
-}
-
-
-error () {
- logger -s -t "start.error" "$*"
- exit 1
-}
-
-# Check if environment variables are set
-if [ -z ${INSTALLER_TYPE} ]; then
- error "Environment variable 'INSTALLER_TYPE' is not defined."
-elif [ "${INSTALLER_TYPE}" != "fuel" ] && [ "${INSTALLER_TYPE}" != "foreman" ]; then
- error "Invalid environment variable INSTALLER_TYPE=${INSTALLER_TYPE}"
-fi
-
-if [ -z ${INSTALLER_IP} ]; then
- error "Environment variable 'INSTALLER_IP' is not defined."
-fi
-
-echo "#############################################"
-echo "############### FUNCTEST DEMO ###############"
-echo "#############################################"
-
-# Update repos
-echo "---------- Updating repositories ----------"
-cd ${FUNCTEST_REPO_DIR}
-git pull
-echo "Functest repository updated."
-cd ${RELENG_REPO_DIR}
-git pull
-echo "Releng repository updated."
-cd ${RALLY_REPO_DIR}
-git reset --hard ${RALLY_COMMIT}
-echo "Rally repository reset to commit ${RALLY_COMMIT}."
-
-
-# Create directories
-echo "---------- Creating directories ----------"
-mkdir -p ${FUNCTEST_CONF_DIR}
-echo "${FUNCTEST_CONF_DIR} created."
-mkdir -p ${FUNCTEST_DATA_DIR}
-echo "${FUNCTEST_DATA_DIR} created."
-mkdir -p ${FUNCTEST_RESULTS_DIR}/ODL
-echo "${FUNCTEST_RESULTS_DIR}/ODL created."
-
-
-
-# Create Openstack credentials file
-echo "---------- Retrieving Credentials from Fuel ----------"
-${REPOS_DIR}/releng/utils/fetch_os_creds.sh -d ${FUNCTEST_CONF_DIR}/openstack.creds \
- -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}
-retval=$?
-if [ $retval != 0 ]; then
- echo "Cannot retrieve credentials file from installation. Check logs."
- exit $retval
-fi
-echo "Credentials succesfully stored in ${FUNCTEST_CONF_DIR}/openstack.creds"
-
-# Source credentials
-echo "---------- Sourcing Openstack Credentials ----------"
-source ${FUNCTEST_CONF_DIR}/openstack.creds
-
-
-# Prepare Functest Environment
-echo "---------- Preparing Functest environment ----------"
-python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug ${FUNCTEST_REPO_DIR}/ start
-retval=$?
-if [ $retval != 0 ]; then
- echo "Error when configuring Functest environment"
- exit $retval
-fi
-
-# vPing
-echo "----------------------------------------------"
-echo "---------- Running vPING test case ----------"
-echo "----------------------------------------------"
-python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py --debug ${FUNCTEST_REPO_DIR}/ -r
-
-# ODL
-echo "----------------------------------------------"
-echo "---------- Running ODL test case ----------"
-echo "----------------------------------------------"
-if [ $INSTALLER_TYPE == "fuel" ]; then
- odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
- pass=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
- odl_port=8181
- ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$pass \
- ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
-elif [ $INSTALLER_TYPE == "foreman" ]; then
- #odl_port=8081
- ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
-else
- echo "INSTALLER_TYPE not valid."
- exit 1
-fi
-
-# rally
-echo "----------------------------------------------"
-echo "------- Running Rally bench test case -------"
-echo "----------------------------------------------"
-echo "Functest: run Functest Rally Bench suites"
-python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug ${FUNCTEST_REPO_DIR}/ glance
-
-# tempest
-echo "----------------------------------------------"
-echo "-------- Running Tempest smoke tests --------"
-echo "----------------------------------------------"
-echo "Functest: run Tempest suite"
-rally verify start smoke
-rally verify list
diff --git a/docker/prepare_env.sh b/docker/prepare_env.sh
new file mode 100755
index 000000000..eaa9b4f00
--- /dev/null
+++ b/docker/prepare_env.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+#
+# Author: Jose Lausuch (jose.lausuch@ericsson.com)
+#
+# Installs the Functest framework within the Docker container
+# and run the tests automatically
+#
+
+BASEDIR=`dirname $0`
+source ${BASEDIR}/common.sh
+
+# Support for Functest offline
+# NOTE: Still not 100% working when running the tests
+offline=false
+if [ ! -z "$1" ] && [ $1 == "--offline" ]; then
+ offline=true
+fi
+
+info "######### Preparing Functest environment #########"
+if [ $offline == false ]; then
+ info "MODE: online"
+else
+ info "MODE: offline"
+fi
+
+
+# Check if environment variables are set
+info "Checking environment variables INSTALLER_TYPE and INSTALLER_IP"
+if [ -z ${INSTALLER_TYPE} ]; then
+ error "Environment variable 'INSTALLER_TYPE' is not defined."
+elif [ "${INSTALLER_TYPE}" != "fuel" ] && [ "${INSTALLER_TYPE}" != "foreman" ]; then
+ error "Invalid environment variable INSTALLER_TYPE=${INSTALLER_TYPE}"
+fi
+info "INSTALLER_TYPE env variable found: ${INSTALLER_TYPE}"
+
+if [ -z ${INSTALLER_IP} ]; then
+ error "Environment variable 'INSTALLER_IP' is not defined."
+fi
+info "INSTALLER_IP env variable found: ${INSTALLER_IP}"
+
+
+if [ $offline == false ]; then
+ # Update repos
+ info "Updating Functest repository...."
+ cd ${FUNCTEST_REPO_DIR}
+ if [ ${FUNCTEST_BRANCH} != "master" ]; then
+ info "Functest repo: checkout ${FUNCTEST_BRANCH} branch..."
+ git checkout ${FUNCTEST_BRANCH}
+ fi
+ info "Functest repo: pulling to latest..."
+ git pull
+ if [ ${FUNCTEST_COMMIT} != "latest" ]; then
+ info "Functest repo: given commit is ${FUNCTEST_COMMIT}. Reseting..."
+ git reset --hard ${FUNCTEST_COMMIT}
+ fi
+
+ info "Updating Releng repository...."
+ cd ${RELENG_REPO_DIR}
+ if [ ${RELENG_BRANCH} != "master" ]; then
+ info "Releng repo: checkout ${RELENG_BRANCH} branch..."
+ git checkout ${RELENG_BRANCH}
+ fi
+ info "Releng repo: pulling to latest..."
+ git pull
+ if [ ${RELENG_COMMIT} != "latest" ]; then
+ info "Releng repo: given commit is ${RELENG_COMMIT}. Reseting..."
+ git reset --hard ${RELENG_COMMIT}
+ fi
+
+ info "Updating Rally repository...."
+ cd ${RALLY_REPO_DIR}
+ info "Rally repo: pulling to latest..."
+ git pull
+fi
+
+# We do this regardless if its online or offline mode.
+if [ ${RALLY_COMMIT} != "latest" ]; then
+ info "Rally repo: given commit is ${RALLY_COMMIT}. Reseting..."
+ git reset --hard ${RALLY_COMMIT}
+fi
+
+
+# Create directories
+mkdir -p ${FUNCTEST_CONF_DIR}
+mkdir -p ${FUNCTEST_DATA_DIR}
+mkdir -p ${FUNCTEST_RESULTS_DIR}/ODL
+
+# Detect type of installer
+# NOTE: this is tricky, since the IPs will have to be the same ALWAYS
+
+
+# Create Openstack credentials file
+${REPOS_DIR}/releng/utils/fetch_os_creds.sh -d ${FUNCTEST_CONF_DIR}/openstack.creds \
+ -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}
+retval=$?
+if [ $retval != 0 ]; then
+ echo "Cannot retrieve credentials file from installation. Check logs."
+ exit $retval
+fi
+
+
+# Source credentials
+source ${FUNCTEST_CONF_DIR}/openstack.creds
+
+
+# Prepare Functest Environment
+echo "Functest: prepare Functest environment"
+python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug ${FUNCTEST_REPO_DIR}/ start
+retval=$?
+if [ $retval != 0 ]; then
+ echo "Error when configuring Functest environment"
+ exit $retval
+fi
+
+echo "1" > ${FUNCTEST_CONF_DIR}/env_active
diff --git a/docker/run_tests.sh b/docker/run_tests.sh
new file mode 100755
index 000000000..ef3125fc3
--- /dev/null
+++ b/docker/run_tests.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+#
+# Author: Jose Lausuch (jose.lausuch@ericsson.com)
+#
+# Installs the Functest framework within the Docker container
+# and run the tests automatically
+#
+
+BASEDIR=`dirname $0`
+source ${BASEDIR}/common.sh
+
+if [ ! -f ${FUNCTEST_CONF_DIR}/env_active ]; then
+ error "The Functest environment is not installed. \
+ Please run prepare_env.sh before running this script...."
+fi
+
+# Support for Functest offline
+# NOTE: Still not 100% working when running the tests
+offline=false
+if [ ! -z "$1" ] && [ $1 == "--offline" ]; then
+ offline=true
+fi
+
+
+# Source credentials
+info "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds again to run the tests.."
+source ${FUNCTEST_CONF_DIR}/openstack.creds
+
+
+# vPing
+echo "----------------------------------------------"
+echo "---------- Running vPING test case ----------"
+echo "----------------------------------------------"
+info "Running vPing"
+python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py --debug ${FUNCTEST_REPO_DIR}/ -r
+
+
+
+# ODL
+echo "----------------------------------------------"
+echo "----------- Running ODL test case -----------"
+echo "----------------------------------------------"
+info "Functest: run ODL suite"
+if [ $INSTALLER_TYPE == "fuel" ]; then
+ odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
+ pass=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
+ odl_port=8181
+ ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$pass \
+ ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
+elif [ $INSTALLER_TYPE == "foreman" ]; then
+ #odl_port=8081
+ ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
+else
+ error "INSTALLER_TYPE not valid."
+ exit 1
+fi
+
+
+
+# rally
+echo "----------------------------------------------"
+echo "--------- Running Rally bench suite ---------"
+echo "----------------------------------------------"
+info "Running Rally Bench suites"
+python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug ${FUNCTEST_REPO_DIR}/ all
+
+
+
+# tempest
+echo "----------------------------------------------"
+echo "-------- Running Tempest smoke tests --------"
+echo "----------------------------------------------"
+info "Running Tempest suite..."
+rally verify start smoke
+rally verify list
+
+
+
+
+# collect results
+# NOTE: To be removed when all the resuls are pushed to the DB
+info "Functest: copy results and clean Functest environment"
+
+# save ODL results
+odl_logs="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/logs"
+if [ -d ${tempest_conf} ]; then
+ cp -Rf ${odl_logs} ${FUNCTEST_CONF_DIR}/ODL/
+fi
+
+# save tempest.conf for further troubleshooting
+tempest_conf="${RALLY_VENV_DIR}/tempest/for-deployment-*/tempest.conf"
+if [ -f ${tempest_conf} ]; then
+ cp $tempest_conf ${FUNCTEST_CONF_DIR}
+fi
diff --git a/docker/start.sh b/docker/start.sh
deleted file mode 100644
index 60a21d1f6..000000000
--- a/docker/start.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash
-
-#
-# Author: Jose Lausuch (jose.lausuch@ericsson.com)
-#
-# Installs the Functest framework within the Docker container
-# and run the tests automatically
-#
-
-
-config_file=$(find / -name config_functest.yaml)
-
-REPOS_DIR=$(cat $config_file | grep -w dir_repos | awk 'END {print $NF}')
-FUNCTEST_REPO_DIR=$(cat $config_file | grep -w dir_repo_functest | awk 'END {print $NF}')
-RALLY_REPO_DIR=$(cat $config_file | grep -w dir_repo_rally | awk 'END {print $NF}')
-RELENG_REPO_DIR=$(cat $config_file | grep -w dir_repo_releng | awk 'END {print $NF}')
-
-FUNCTEST_DIR=$(cat $config_file | grep -w dir_functest | awk 'END {print $NF}')
-FUNCTEST_RESULTS_DIR=$(cat $config_file | grep -w dir_results | awk 'END {print $NF}')
-FUNCTEST_CONF_DIR=$(cat $config_file | grep -w dir_functest_conf | awk 'END {print $NF}')
-FUNCTEST_DATA_DIR=$(cat $config_file | grep -w dir_functest_data | awk 'END {print $NF}')
-RALLY_VENV=$(cat $config_file | grep -w dir_rally_inst | awk 'END {print $NF}')
-RALLY_COMMIT=$(cat $config_file | grep -w rally_stable_commit | awk 'END {print $NF}')
-
-
-echo "REPOS_DIR=${REPOS_DIR}"
-echo "FUNCTEST_REPO_DIR=${FUNCTEST_REPO_DIR}"
-echo "RALLY_REPO_DIR=${RALLY_REPO_DIR}"
-echo "RELENG_REPO_DIR=${RELENG_REPO_DIR}"
-echo "FUNCTEST_DIR=${FUNCTEST_DIR}"
-echo "FUNCTEST_RESULTS_DIR=${FUNCTEST_RESULTS_DIR}"
-echo "FUNCTEST_CONF_DIR=${FUNCTEST_CONF_DIR}"
-echo "FUNCTEST_DATA_DIR=${FUNCTEST_DATA_DIR}"
-echo "RALLY_VENV=${RALLY_VENV}"
-echo "RALLY_COMMIT=${RALLY_COMMIT}"
-
-
-info () {
- logger -s -t "start.info" "$*"
-}
-
-
-error () {
- logger -s -t "start.error" "$*"
- exit 1
-}
-
-# Check if environment variables are set
-if [ -z ${INSTALLER_TYPE} ]; then
- error "Environment variable 'INSTALLER_TYPE' is not defined."
-elif [ "${INSTALLER_TYPE}" != "fuel" ] && [ "${INSTALLER_TYPE}" != "foreman" ]; then
- error "Invalid environment variable INSTALLER_TYPE=${INSTALLER_TYPE}"
-fi
-
-if [ -z ${INSTALLER_IP} ]; then
- error "Environment variable 'INSTALLER_IP' is not defined."
-fi
-
-
-# Update repos
-cd ${FUNCTEST_REPO_DIR}
-git pull
-cd ${RELENG_REPO_DIR}
-git pull
-cd ${RALLY_REPO_DIR}
-git reset --hard ${RALLY_COMMIT}
-
-
-# Create directories
-mkdir -p ${FUNCTEST_CONF_DIR}
-mkdir -p ${FUNCTEST_DATA_DIR}
-mkdir -p ${FUNCTEST_RESULTS_DIR}/ODL
-
-# Detect type of installer
-# NOTE: this is tricky, since the IPs will have to be the same ALWAYS
-
-
-# Create Openstack credentials file
-${REPOS_DIR}/releng/utils/fetch_os_creds.sh -d ${FUNCTEST_CONF_DIR}/openstack.creds \
- -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}
-retval=$?
-if [ $retval != 0 ]; then
- echo "Cannot retrieve credentials file from installation. Check logs."
- exit $retval
-fi
-
-
-# Source credentials
-source ${FUNCTEST_CONF_DIR}/openstack.creds
-
-
-# Prepare Functest Environment
-echo "Functest: prepare Functest environment"
-python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug ${FUNCTEST_REPO_DIR}/ start
-retval=$?
-if [ $retval != 0 ]; then
- echo "Error when configuring Functest environment"
- exit $retval
-fi
-
-# vPing
-echo "Functest: run vPing"
-python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py --debug ${FUNCTEST_REPO_DIR}/ -r
-
-# ODL
-echo "Functest: run ODL suite"
-
-if [ $INSTALLER_TYPE == "fuel" ]; then
- odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
- pass=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
- odl_port=8181
- ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$pass \
- ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
-elif [ $INSTALLER_TYPE == "foreman" ]; then
- #odl_port=8081
- ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
-else
- echo "INSTALLER_TYPE not valid."
- exit 1
-fi
-
-# rally
-echo "Functest: run Functest Rally Bench suites"
-python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug ${FUNCTEST_REPO_DIR}/ all
-
-# tempest
-echo "Functest: run Tempest suite"
-rally verify start smoke
-rally verify list
-
-# collect results
-echo "Functest: copy results and clean Functest environment"
-
-# save ODL results
-odl_logs="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/logs"
-if [ -d ${tempest_conf} ]; then
- cp -Rf ${odl_logs} ${FUNCTEST_CONF_DIR}/ODL/
-fi
-
-# save tempest.conf for further troubleshooting
-tempest_conf="${RALLY_VENV}/tempest/for-deployment-*/tempest.conf"
-if [ -f ${tempest_conf} ]; then
- cp $tempest_conf ${FUNCTEST_CONF_DIR}
-fi \ No newline at end of file