Refactor Functest docker container 85/2685/5
authorjose.lausuch <jose.lausuch@ericsson.com>
Wed, 21 Oct 2015 09:06:43 +0000 (11:06 +0200)
committerjose.lausuch <jose.lausuch@ericsson.com>
Wed, 21 Oct 2015 11:50:02 +0000 (13:50 +0200)
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>
docker/common.sh [new file with mode: 0755]
docker/demo.sh [deleted file]
docker/prepare_env.sh [new file with mode: 0755]
docker/run_tests.sh [new file with mode: 0755]
docker/start.sh [deleted file]
testcases/config_functest.yaml

diff --git a/docker/common.sh b/docker/common.sh
new file mode 100755 (executable)
index 0000000..42b7d3e
--- /dev/null
@@ -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 (file)
index 4207810..0000000
+++ /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 (executable)
index 0000000..eaa9b4f
--- /dev/null
@@ -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 (executable)
index 0000000..ef3125f
--- /dev/null
@@ -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 (file)
index 60a21d1..0000000
+++ /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
index 46fae91..92eb769 100644 (file)
@@ -21,11 +21,20 @@ general:
         dir_vIMS_data:      /home/opnfv/functest/data/vIMS
         dir_rally_inst:     ~/.rally
 
+    repositories:
+        # branch and commit ID to which the repos will be reset (HEAD)
+        functest_branch:    master
+        functest_commit:    latest
+        releng_branch:  master
+        releng_commit:  latest
+        rally_branch:   master
+        rally_commit:   9a17d8490e7fb4afee2f5629e6db41eabe4bc4d4
+
     openstack:
         image_name: functest-img
         image_url:  http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
         image_disk_format:  qcow2
-        rally_stable_commit:    9a17d8490e7fb4afee2f5629e6db41eabe4bc4d4
+
 
         #Public network. Optional
         neutron_public_net_name: net04_ext