diff options
Diffstat (limited to 'tests/functest_run.sh')
-rwxr-xr-x | tests/functest_run.sh | 97 |
1 files changed, 74 insertions, 23 deletions
diff --git a/tests/functest_run.sh b/tests/functest_run.sh index bdbe898..f6a50c5 100755 --- a/tests/functest_run.sh +++ b/tests/functest_run.sh @@ -1,6 +1,6 @@ #!/bin/bash -e ############################################################################## -# Copyright (c) 2016 ZTE Corporation. +# Copyright (c) 2018 ZTE Corporation, ENEA AB. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,7 +9,8 @@ ############################################################################## PARSER_CI_DEBUG=${CI_DEBUG:-false} -PRASER_WORK_DIR=$(cd $(dirname $0) && pwd) +PARSER_WORK_DIR=$(cd $(dirname $0) && pwd) +POD_ARCH=${POD_ARCH:-$(uname -m)} [[ "${PARSER_CI_DEBUG}" == "true" ]] && { set -x @@ -20,22 +21,43 @@ PRASER_WORK_DIR=$(cd $(dirname $0) && pwd) } LOCAL_IMAGE_FILE=${1:-""} +# VRNC_INPUT_TEMPLATE_FILE=${PARSER_WORK_DIR}/../tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions/vRNC.yaml +# VRNC_INPUT_TEMPLATE_RAW_FILE=${PARSER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml +VRNC_INPUT_TEMPLATE_RAW_FILE=${PARSER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/vRNC/Definitions/vRNC.yaml +VRNC_OUTPUT_TEMPLATE_FILE=${PARSER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/vRNC/vRNC_Hot_Template.yaml + +PARSER_IMAGE_NAME=cirros-0.3.2-x86_64-uec + if [ -e "${LOCAL_IMAGE_FILE}" ]; then echo "Input local image file: ${LOCAL_IMAGE_FILE}" PARSER_IMAGE_URL_FILE=${LOCAL_IMAGE_FILE} else - echo "No local image file or the file(${LOCAL_IMAGE_FILE}) doesn't exsit!" + echo "No local image file or the file(${LOCAL_IMAGE_FILE}) doesn't exist!" + + if [[ ${POD_ARCH} = 'aarch64' ]]; then + echo "" + echo "${POD_ARCH} Detected. The proper image file for that architecture will be downloaded" + PARSER_IMAGE_URL_FILE=cirros-0.4.0-aarch64-disk.img + PARSER_IMAGE_NAME=cirros-0.4.0-aarch64-disk + sed -i 's/x86_64/aarch64/g' ${VRNC_INPUT_TEMPLATE_RAW_FILE} + sed -i 's/0.3.2/0.4.0/g' ${VRNC_INPUT_TEMPLATE_RAW_FILE} + + else + PARSER_IMAGE_URL_FILE=cirros-0.3.5-x86_64-disk.img + # PARSER_IMAGE_URL=https://launchpad.net/cirros/trunk/0.3.0/+download/${PARSER_IMAGE_URL_FILE} + fi - PARSER_IMAGE_URL_FILE=cirros-0.3.5-x86_64-disk.img PARSER_IMAGE_VERSION=$(echo ${PARSER_IMAGE_URL_FILE} | awk -F- '{print $2}') - # PARSER_IMAGE_URL=https://launchpad.net/cirros/trunk/0.3.0/+download/${PARSER_IMAGE_URL_FILE} PARSER_IMAGE_URL=http://download.cirros-cloud.net/${PARSER_IMAGE_VERSION}/${PARSER_IMAGE_URL_FILE} echo "so will download image(${PARSER_IMAGE_URL_FILE}) from ${PARSER_IMAGE_URL}." + fi # PARSER_IMAGE_NAME=rhel-6.5-test-image -# fiexd image name according to the translator default vlaue of images -PARSER_IMAGE_NAME=cirros-0.3.2-x86_64-uec +# fixed image name according to the translator's default value of images + + + PARSER_IMAGE_FILE="${PARSER_IMAGE_NAME}.img" PARSER_IMAGE_FORMAT=qcow2 @@ -47,47 +69,75 @@ PARSER_TENANT=${PARSER_PROJECT} PARSER_ROLE=admin +VM_FLAVOR_NAME=m1.tiny +VM_FLAVOR_CPUS=1 +VM_FLAVOR_RAM=512 +VM_FLAVOR_DISK=1 + PARSER_STACK_NAME=vRNC_Stack -# VRNC_INPUT_TEMPLATE_FILE=${PRASER_WORK_DIR}/../tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions/vRNC.yaml -# VRNC_INPUT_TEMPLATE_RAW_FILE=${PRASER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml -VRNC_INPUT_TEMPLATE_RAW_FILE=${PRASER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/vRNC/Definitions/vRNC.yaml -VRNC_OUTPUT_TEMPLATE_FILE=${PRASER_WORK_DIR}/../tosca2heat/heat-translator/translator/tests/data/vRNC/vRNC_Hot_Template.yaml + VRNC_INPUT_TEMPLATE_FILE=${VRNC_INPUT_TEMPLATE_RAW_FILE%.*}_patch.yaml download_parser_image() { [ -e "${PARSER_IMAGE_URL_FILE}" ] && { - echo " Image ${PARSER_IMAGE_URL_FILE} has bee cached, needn't download again." + echo " Image ${PARSER_IMAGE_URL_FILE} has been cached, no need to download again." cp ${PARSER_IMAGE_URL_FILE} ${PARSER_IMAGE_FILE} return 0 } echo "" echo " Download image ${PARSER_IMAGE_URL_FILE}..." - wget ${PARSER_IMAGE_URL} -o ${PARSER_IMAGE_FILE} + + wget ${PARSER_IMAGE_URL} -O ${PARSER_IMAGE_FILE} } -register_parser_image() { +register_parser_image_and_flavor() { + + echo "" + [[ ! $(openstack ${debug} flavor show ${VM_FLAVOR_NAME}) ]] && { + echo " Create default flavor ${VM_FLAVOR_NAME}..." + openstack ${debug} flavor create --ram ${VM_FLAVOR_RAM} \ + --vcpus ${VM_FLAVOR_CPUS} \ + --disk ${VM_FLAVOR_DISK} \ + ${VM_FLAVOR_NAME} + } || { + echo " Default flavor ${VM_FLAVOR_NAME} already exsits." + } + openstack ${debug} image list | grep -qwo "${PARSER_IMAGE_NAME}" && { - echo " Image ${PARSER_IMAGE_NAME} has bee registed, needn't registe again." + echo " Image ${PARSER_IMAGE_NAME} has been registed, no need to register again." return 0 } echo "" - echo " Registe image ${PARSER_IMAGE_NAME}..." - openstack ${debug} image create "${PARSER_IMAGE_NAME}" \ + echo " Register image ${PARSER_IMAGE_NAME}..." + + if [[ ${POD_ARCH} = 'aarch64' ]]; then + + openstack ${debug} image create "${PARSER_IMAGE_NAME}" \ + --public \ + --disk-format ${PARSER_IMAGE_FORMAT} \ + --container-format bare \ + --property hw_firmware_type="uefi" \ + --property short_id="cirros.aarch64" \ + --file ${PARSER_IMAGE_FILE} + else + openstack ${debug} image create "${PARSER_IMAGE_NAME}" \ --public \ --disk-format ${PARSER_IMAGE_FORMAT} \ --container-format bare \ --file ${PARSER_IMAGE_FILE} + fi + } create_parser_user_and_project() { # 1. create parser project openstack ${debug} project list | grep -qwo "${PARSER_PROJECT}" && { - echo " Project ${PARSER_PROJECT} exist, doesn't create agian." + echo " Project ${PARSER_PROJECT} exists, no need to create again." } || { openstack ${debug} project create ${PARSER_PROJECT} \ --description "Project for parser test" @@ -96,7 +146,7 @@ create_parser_user_and_project() { # 2. create parser user. openstack ${debug} user list | grep -qwo ${PARSER_USER} && { - echo " User ${PARSER_USER} exist, doesn't create again." + echo " User ${PARSER_USER} exists , no need to create again." } || { openstack ${debug} user create ${PARSER_USER} --password ${PARSER_PASSWORD} \ --project ${PARSER_PROJECT} --email ${PARSER_EMAIL} @@ -106,7 +156,7 @@ create_parser_user_and_project() { # 3. grant role for parser user openstack ${debug} role assignment list --user ${PARSER_USER} --project ${PARSER_PROJECT} \ | grep -qow ${PARSER_ROLE} && { - echo " User ${PARSER_USER} has role ${PARSER_ROLE} in project ${PARSER_PROJECT}, doesn't create." + echo " User ${PARSER_USER} has role ${PARSER_ROLE} in project ${PARSER_PROJECT}, no need to create." } || { openstack ${debug} role add ${PARSER_ROLE} --user ${PARSER_USER} \ --project ${PARSER_PROJECT} @@ -175,8 +225,9 @@ translator_and_deploy_vRNC() { # 1. Delete parser stack ${PARSER_STACK_NAME}, use admin user in admin project openstack ${debug} stack list | grep -qow ${PARSER_STACK_NAME} && { echo " Stack ${PARSER_STACK_NAME} exist, delete it first." - openstack stack delete --yes --wait ${PARSER_STACK_NAME} + openstack ${debug} stack delete --yes --wait ${PARSER_STACK_NAME} } + # 2. Switch env to parser project temporally echo " Switch openstack env to parser project" change_env_to_parser_user_project @@ -313,9 +364,9 @@ trap reset_parser_test EXIT # start syslog for loghander which service > /dev/null && service rsyslog restart || true -echo "|========= 1/4. Preparing VM image for parser... =========|" +echo "|========= 1/4. Preparing VM image and flavor for parser... =========|" download_parser_image -register_parser_image +register_parser_image_and_flavor echo "" echo "|========= 2/4. Creating test user for parser... =========|" |