summaryrefslogtreecommitdiffstats
path: root/docker/start.sh
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-10-21 11:06:43 +0200
committerjose.lausuch <jose.lausuch@ericsson.com>2015-10-21 13:50:02 +0200
commit73c8f0a8ed1d6b18356d52a3ce6d3638c2c91ad3 (patch)
treec2249fc511c98b2463f2fa0ce1629dd20d24ad44 /docker/start.sh
parent62b213816e46d66125904be73bad2c3ebca09c3b (diff)
Refactor Functest docker container
1. start.sh has been splitted into 2 scripts: - prepare_env.sh : installs functest environment without running any test - run_tests.sh : run the Functest tests 2. Add possibility to give the config_functest.yaml in the docker run command. So far, it has always been used the default in the repo. 3. Possible to give the repos the branch and commit ID to be checkout/reset to. This allows versioning control for the repos 4. Added -x permissions to shell scripts JIRA: FUNCTEST-29 Change-Id: If4b779f5baa37531603955db3681e24a5e08251a Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
Diffstat (limited to 'docker/start.sh')
-rw-r--r--docker/start.sh146
1 files changed, 0 insertions, 146 deletions
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