Move functest_utils and openstack_utils to directory /utils
[functest.git] / docker / prepare_env.sh
index cae53b7..f2c45c9 100755 (executable)
@@ -6,21 +6,24 @@
 # Installs the Functest framework within the Docker container
 # and run the tests automatically
 #
+#
+# 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
+#
 
 usage="Script to prepare the Functest environment.
 
 usage:
-    bash $(basename "$0") [--offline] [-h|--help] [-t <test_name>]
+    bash $(basename "$0") [-h|--help] [-t <test_name>]
 
 where:
-    -o|--offline      optional offline mode (experimental)
     -h|--help         show this help text
 
 examples:
-    $(basename "$0")
-    $(basename "$0") --offline"
+    $(basename "$0")"
 
-offline=false
 
 # Parse parameters
 while [[ $# > 0 ]]
@@ -32,9 +35,6 @@ while [[ $# > 0 ]]
             exit 0
             shift
         ;;
-        -o|--offline)
-            offline=true
-        ;;
         *)
             error "unknown option $1"
             exit 1
@@ -46,18 +46,16 @@ done
 BASEDIR=`dirname $0`
 source ${BASEDIR}/common.sh
 
-# Support for Functest offline
-# NOTE: Still not 100% working when running the tests
+debug=""
+if [[ "${CI_DEBUG,,}" == "true" ]];then
+    debug="--debug"
+fi
+
 
 info "######### Preparing Functest environment #########"
-if [ $offline == false ]; then
-    info "MODE: online"
-else
-    info "MODE: offline"
-fi
 
 # definition of available installer names
-INSTALLERS=(fuel foreman compass apex joid)
+INSTALLERS=(fuel compass apex joid)
 
 if [ ! -f ${FUNCTEST_CONF_DIR}/openstack.creds ]; then
     # If credentials file is not given, check if environment variables are set
@@ -78,118 +76,17 @@ if [ ! -f ${FUNCTEST_CONF_DIR}/openstack.creds ]; then
 fi
 
 
-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
-    source ${BASEDIR}/common.sh
-
-    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}
-    if [ ${RALLY_BRANCH} != "master" ]; then
-        info "Rally repo: checkout ${RALLY_BRANCH} branch..."
-        git checkout ${RALLY_BRANCH}
-    fi
-    info "Rally repo: pulling to latest..."
-    git pull
-    # We leave the reset command for later.
-
-    info "Updating vIMS test repository...."
-    cd ${VIMS_REPO_DIR}
-    if [ ${VIMS_BRANCH} != "stable" ]; then
-        info "Releng repo: checkout ${VIMS_TEST_BRANCH} branch..."
-        git checkout ${VIMS_BRANCH}
-    fi
-    info "vIMS test repo: pulling to latest..."
-    git pull
-    if [ ${VIMS_COMMIT} != "latest" ]; then
-        info "vIMS test repo: given commit is ${VIMS_TEST_COMMIT}. Reseting..."
-        git reset --hard ${VIMS_COMMIT}
-    fi
-
-    info "Updating BGPVPN repository...."
-    cd ${BGPVPN_REPO_DIR}
-    if [ ${BGPVPN_BRANCH} != "master" ]; then
-        info "BGPVPN repo: checkout ${BGPVPN_BRANCH} branch..."
-        git checkout ${BGPVPN_BRANCH}
-    fi
-    info "BGPVPN repo: pulling to latest..."
-    git pull
-    if [ ${BGPVPN_COMMIT} != "latest" ]; then
-        info "BGPVPN repo: given commit is ${BGPVPN_COMMIT}. Reseting..."
-        git reset --hard ${BGPVPN_COMMIT}
-    fi
-
-    info "Updating ONOS repository...."
-    cd ${ONOS_REPO_DIR}
-    if [ ${ONOS_BRANCH} != "master" ]; then
-        info "ONOS repo: checkout ${ONOS} branch..."
-        git checkout ${ONOS_BRANCH}
-    fi
-    info "ONOS repo: pulling to latest..."
-    git pull
-    if [ ${ONOS_COMMIT} != "latest" ]; then
-        info "ONOS repo: given commit is ${ONOS_COMMIT}. Reseting..."
-        git reset --hard ${ONOS_COMMIT}
-    fi
-
-fi
-
-# We do this regardless if its online or offline mode.
-# Assumption: the docker image contains a newer rally repo than the given commit.
-if [ ${RALLY_COMMIT} != "latest" ]; then
-    cd ${RALLY_REPO_DIR}
-    info "Rally repo: given commit is ${RALLY_COMMIT}. Reseting..."
-    git reset --hard ${RALLY_COMMIT}
-fi
-
-# Ugly hack:
-# After the 'git functest pull', we move the given yaml file to the repo directory,
-# since some of the scripts will use that one, and not the one in
-# /home/opnfv/functest/conf/
-given_config_file=/home/opnfv/functest/conf/config_functest.yaml
-default_config_file=$(find /home/opnfv/repos -name config_functest.yaml)
-if [ -f ${given_config_file} ]; then
-    info "Copying given config_functest.yaml to the repository directory"
-    cp ${given_config_file} ${default_config_file}
-else
-    info "config_functest.yaml not provided. Using default one: ${default_config_file}"
-fi
-
-
 # Create directories
 mkdir -p ${FUNCTEST_CONF_DIR}
 mkdir -p ${FUNCTEST_DATA_DIR}
 mkdir -p ${FUNCTEST_RESULTS_DIR}/ODL
 
 
-
 # Create Openstack credentials file
-if [ ! -f ${FUNCTEST_CONF_DIR}/openstack.creds ]; then
-    ${REPOS_DIR}/releng/utils/fetch_os_creds.sh -d ${FUNCTEST_CONF_DIR}/openstack.creds \
+# $creds is an env varialbe in the docker container pointing to
+# /home/opnfv/functest/conf/openstack.creds
+if [ ! -f ${creds} ]; then
+    ${REPOS_DIR}/releng/utils/fetch_os_creds.sh -d ${creds} \
         -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}
     retval=$?
     if [ $retval != 0 ]; then
@@ -199,8 +96,15 @@ if [ ! -f ${FUNCTEST_CONF_DIR}/openstack.creds ]; then
 else
     info "OpenStack credentials file given to the docker and stored in ${FUNCTEST_CONF_DIR}/openstack.creds."
 fi
+
+# If we use SSL, by default use option OS_INSECURE=true which means that
+# the cacert will be self-signed
+if grep -Fq "OS_CACERT" ${creds}; then
+    echo "OS_INSECURE=true">>${creds};
+fi
+
 # Source credentials
-source ${FUNCTEST_CONF_DIR}/openstack.creds
+source ${creds}
 
 # Check OpenStack
 info "Checking that the basic OpenStack services are functional..."
@@ -211,12 +115,19 @@ if [ $RETVAL -ne 0 ]; then
 fi
 
 # Prepare Functest Environment
-info "Functest: prepare Functest environment"
-python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug start
+info "Preparing Functest environment..."
+python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py $debug start
 retval=$?
 if [ $retval != 0 ]; then
     error "Error when configuring Functest environment"
     exit $retval
 fi
 
+
+# Generate OpenStack defaults
+info "Generating OpenStack defaults..."
+python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/generate_defaults.py $debug
+
+ifconfig eth0 mtu 1450
+
 echo "1" > ${FUNCTEST_CONF_DIR}/env_active