X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=docker%2Fprepare_env.sh;h=48320d4ccd45d7029f1a4fd3482dc97e1b98455a;hb=7256a2b3ad02e338c8e80d4e9f1561032340a307;hp=eaa9b4f006fc53a32e4f1e3b39817e0438b98540;hpb=73c8f0a8ed1d6b18356d52a3ce6d3638c2c91ad3;p=functest.git diff --git a/docker/prepare_env.sh b/docker/prepare_env.sh index eaa9b4f00..48320d4cc 100755 --- a/docker/prepare_env.sh +++ b/docker/prepare_env.sh @@ -7,15 +7,47 @@ # and run the tests automatically # +usage="Script to prepare the Functest environment. + +usage: + bash $(basename "$0") [--offline] [-h|--help] [-t ] + +where: + -o|--offline optional offline mode (experimental) + -h|--help show this help text + +examples: + $(basename "$0") + $(basename "$0") --offline" + +offline=false + +# Parse parameters +while [[ $# > 0 ]] + do + key="$1" + case $key in + -h|--help) + echo "$usage" + exit 0 + shift + ;; + -o|--offline) + offline=true + ;; + *) + error "unknown option $1" + exit 1 + ;; + esac + shift # past argument or value +done + 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 @@ -24,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 @@ -70,12 +95,72 @@ if [ $offline == false ]; then 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 + + 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. +# 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 @@ -86,31 +171,40 @@ 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 +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 -echo "Functest: prepare Functest environment" -python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug ${FUNCTEST_REPO_DIR}/ start +info "Functest: prepare Functest environment" +python ${FUNCTEST_REPO_DIR}/testcases/config_functest.py --debug start retval=$? if [ $retval != 0 ]; then - echo "Error when configuring Functest environment" + error "Error when configuring Functest environment" exit $retval fi +ifconfig eth0 mtu 1450 + echo "1" > ${FUNCTEST_CONF_DIR}/env_active