X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=docker%2Fprepare_env.sh;h=542df0e72aa4ad81b71d13ea8fb389e705f7aecd;hb=3b70767b85152cc79381104ba73c0afe9607f781;hp=f3e31d92695645e52d47cecf05b6f5e8314186e6;hpb=3c128d2156ed4214f63be7d1b6fe974506f899bf;p=functest.git diff --git a/docker/prepare_env.sh b/docker/prepare_env.sh index f3e31d926..542df0e72 100755 --- a/docker/prepare_env.sh +++ b/docker/prepare_env.sh @@ -6,6 +6,12 @@ # 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. @@ -56,37 +62,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 +122,70 @@ 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 + + info "Updating OVNO repository...." + cd ${OVNO_REPO_DIR} + if [ ${OVNO_BRANCH} != "master" ]; then + info "OVNO repo: checkout ${OVNO} branch..." + git checkout ${OVNO_BRANCH} + fi + info "OVNO repo: pulling to latest..." + git pull + if [ ${OVNO_COMMIT} != "latest" ]; then + info "OVNO repo: given commit is ${OVNO_COMMIT}. Reseting..." + git reset --hard ${OVNO_COMMIT} + fi + + info "Updating DOCTOR repository...." + cd ${DOCTOR_REPO_DIR} + if [ ${DOCTOR_BRANCH} != "master" ]; then + info "DOCTOR repo: checkout ${DOCTOR} branch..." + git checkout ${DOCTOR_BRANCH} + fi + info "DOCTOR repo: pulling to latest..." + git pull + if [ ${DOCTOR_COMMIT} != "latest" ]; then + info "DOCTOR repo: given commit is ${DOCTOR_COMMIT}. Reseting..." + git reset --hard ${DOCTOR_COMMIT} + fi fi # We do this regardless if its online or offline mode. @@ -133,18 +196,10 @@ 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 +# IMPORTANT: To be removed when version 0.2.1 is out +git config --global user.email "functest@opnfv.com" +git config --global user.name "opnfv/functest" +git fetch https://review.openstack.org/openstack/rally refs/changes/06/270506/9 && git cherry-pick FETCH_HEAD # Create directories @@ -155,26 +210,43 @@ 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 +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 -d + + +ifconfig eth0 mtu 1450 + echo "1" > ${FUNCTEST_CONF_DIR}/env_active