Fix array of test in run_tests.sh
[functest.git] / docker / prepare_env.sh
index f3e31d9..48320d4 100755 (executable)
@@ -56,37 +56,30 @@ else
     info "MODE: offline"
 fi
 
+# definition of available installer names
+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
+    # to get the creds using fetch_os_creds.sh later on
+    info "Checking environment variables INSTALLER_TYPE and INSTALLER_IP"
+    if [ -z ${INSTALLER_TYPE} ]; then
+        error "Environment variable 'INSTALLER_TYPE' is not defined."
+    elif [[ ${INSTALLERS[@]} =~ ${INSTALLER_TYPE} ]]; then
+        info "INSTALLER_TYPE env variable found: ${INSTALLER_TYPE}"
+    else
+        error "Invalid environment variable INSTALLER_TYPE=${INSTALLER_TYPE}"
+    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."
+    if [ -z ${INSTALLER_IP} ]; then
+        error "Environment variable 'INSTALLER_IP' is not defined."
+    fi
+    info "INSTALLER_IP env variable found: ${INSTALLER_IP}"
 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
@@ -123,6 +116,45 @@ if [ $offline == false ]; then
         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
+
+    info "Updating PROMISE repository...."
+    cd ${PROMISE_REPO_DIR}
+    if [ ${PROMISE_BRANCH} != "master" ]; then
+        info "PROMISE repo: checkout ${PROMISE} branch..."
+        git checkout ${PROMISE_BRANCH}
+    fi
+    info "PROMISE repo: pulling to latest..."
+    git pull
+    if [ ${PROMISE_COMMIT} != "latest" ]; then
+        info "PROMISE repo: given commit is ${PROMISE_COMMIT}. Reseting..."
+        git reset --hard ${PROMISE_COMMIT}
+    fi
+
 fi
 
 # We do this regardless if its online or offline mode.
@@ -133,19 +165,6 @@ if [ ${RALLY_COMMIT} != "latest" ]; then
     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}
@@ -155,26 +174,37 @@ mkdir -p ${FUNCTEST_RESULTS_DIR}/ODL
 
 
 # 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
-    error "Cannot retrieve credentials file from installation. Check logs."
-    exit $retval
+if [ ! -f ${FUNCTEST_CONF_DIR}/openstack.creds ]; then
+    ${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
+        error "Cannot retrieve credentials file from installation. Check logs."
+        exit $retval
+    fi
+else
+    info "OpenStack credentials file given to the docker and stored in ${FUNCTEST_CONF_DIR}/openstack.creds."
 fi
-
-
 # Source credentials
 source ${FUNCTEST_CONF_DIR}/openstack.creds
 
+# Check OpenStack
+info "Checking that the basic OpenStack services are functional..."
+${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/check_os.sh
+RETVAL=$?
+if [ $RETVAL -ne 0 ]; then
+    exit 1
+fi
 
 # Prepare Functest Environment
 info "Functest: prepare Functest environment"
-python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug ${FUNCTEST_REPO_DIR}/ start
+python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug start
 retval=$?
 if [ $retval != 0 ]; then
     error "Error when configuring Functest environment"
     exit $retval
 fi
 
+ifconfig eth0 mtu 1450
+
 echo "1" > ${FUNCTEST_CONF_DIR}/env_active