summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshangxdy <shang.xiaodong@zte.com.cn>2016-08-25 21:48:23 +0800
committerxiaodong shang <shang.xiaodong@zte.com.cn>2016-08-25 13:54:21 +0000
commit9f18961d8573d91349e1c0bcd08c9f4dde1e8575 (patch)
tree922c8b8d3ec04d02b0f781e7534b702fd87be43b
parent139dd1fa33b8defbf58bdf28803f0f17f11e3004 (diff)
Make patch for provider network when run in functest
When run parser in functest, we don't know the provider network about Openstack, if use vxlan or vlan or gre as default, it may be error. So it's necessary to path the provider network definition in yaml, and select it in runtime. JIRA:PARSER-99 Change-Id: I20ae6b213870b18cee094d43ce2ba958f53b111e Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
-rwxr-xr-xtests/functest_run.sh61
1 files changed, 52 insertions, 9 deletions
diff --git a/tests/functest_run.sh b/tests/functest_run.sh
index 615cad5..2b45089 100755
--- a/tests/functest_run.sh
+++ b/tests/functest_run.sh
@@ -36,10 +36,11 @@ PARSER_ROLE=admin
PARSER_STACK_NAME=vRNC_Stack
# VRNC_INPUT_TEMPLATE_FILE=../tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions/vRNC.yaml
-VRNC_INPUT_TEMPLATE_FILE=../tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml
-
+VRNC_INPUT_TEMPLATE_RAW_FILE=../tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml
VRNC_OUTPUT_TEMPLATE_FILE=./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."
@@ -108,6 +109,33 @@ change_env_to_parser_user_project() {
}
+
+make_patch_for_provider_network() {
+
+ # copy temp file
+ echo " Patch provider network for input file:"
+ echo " Raw yaml file: ${VRNC_INPUT_TEMPLATE_RAW_FILE}"
+ echo " Patched yaml file: ${VRNC_INPUT_TEMPLATE_FILE}"
+ cp ${VRNC_INPUT_TEMPLATE_RAW_FILE} ${VRNC_INPUT_TEMPLATE_FILE}
+ echo ""
+
+ # Delete the provider:network_type
+ echo " Patch provider:network_type..."
+ sed -i '/network_type:/d' ${VRNC_INPUT_TEMPLATE_FILE}
+
+ # Delete the provider:segmentation_id
+ echo " Patch provider:segmentation_id..."
+ sed -i '/segmentation_id:/d' ${VRNC_INPUT_TEMPLATE_FILE}
+
+ # Delete the provider:physical_network
+ echo " Patch provider:physical_network..."
+ sed -i '/physical_network:/d' ${VRNC_INPUT_TEMPLATE_FILE}
+
+ echo ""
+
+}
+
+
translator_and_deploy_vRNC() {
(
@@ -119,21 +147,27 @@ translator_and_deploy_vRNC() {
# 2. Switch env to parser project temporally
echo " Switch openstack env to parser project"
change_env_to_parser_user_project
+ echo ""
- # 3. Translator yaml
+ # 3. Patch provider network
+ echo " Make patch for provider network"
+ make_patch_for_provider_network
+
+ # 4. Translator yaml
echo " Translator use parser:"
echo " 1. Input file: ${VRNC_INPUT_TEMPLATE_FILE}"
echo " 2. Output file: ${VRNC_OUTPUT_TEMPLATE_FILE}"
heat-translator --template-type tosca --template-file ${VRNC_INPUT_TEMPLATE_FILE} \
--output-file ${VRNC_OUTPUT_TEMPLATE_FILE}
+ echo ""
- # 4. deploy vRNC
+ # 5. deploy vRNC
echo " Deploy stack..."
[[ "${PARSER_CI_DEBUG}" == "true" ]] && debug="--debug" || debug=""
openstack ${debug} stack create --timeout 30 --wait --enable-rollback \
-t ${VRNC_OUTPUT_TEMPLATE_FILE} ${PARSER_STACK_NAME}
- # 5. Validate the deploy result.
+ # 6. Validate the deploy result.
echo " Checking the result of deployment..."
openstack ${debug} stack show ${PARSER_STACK_NAME} | grep -qow "CREATE_COMPLETE" && {
echo " Check the result of deployment successfully."
@@ -155,30 +189,39 @@ reset_parser_test() {
change_env_to_parser_user_project
# 2). Delete the stack ${PARSER_STACK_NAME}
+ echo ""
openstack ${debug} stack list | grep -qow ${PARSER_STACK_NAME} && {
echo " Stack ${PARSER_STACK_NAME} has been created, delete it after test."
+ echo ""
openstack ${debug} stack delete --yes --wait ${PARSER_STACK_NAME}
+ echo ""
+ }
+
+ # 3). Delete patch tmp file ${VRNC_INPUT_TEMPLATE_FILE}
+ [ -e ${VRNC_OUTPUT_TEMPLATE_FILE} -a ${PARSER_CI_DEBUG} != "true" ] && {
+ echo " Delete patch temp file ${VRNC_INPUT_TEMPLATE_FILE} after test."
+ rm -fr ${VRNC_INPUT_TEMPLATE_FILE}
}
- # 3). Delete hot tmp file ${VRNC_OUTPUT_TEMPLATE_FILE}
+ # 4). Delete hot tmp file ${VRNC_OUTPUT_TEMPLATE_FILE}
[ -e ${VRNC_OUTPUT_TEMPLATE_FILE} -a ${PARSER_CI_DEBUG} != "true" ] && {
echo " Delete hot temp file ${VRNC_OUTPUT_TEMPLATE_FILE} after test."
rm -fr ${VRNC_OUTPUT_TEMPLATE_FILE}
}
- # 4). Delete tmp image ${PARSER_IMAGE_FILE}
+ # 5). Delete tmp image ${PARSER_IMAGE_FILE}
[[ -e ${PARSER_IMAGE_FILE} ]] && {
echo " Delete local image file ${PARSER_IMAGE_FILE} after test."
rm -fr ${PARSER_IMAGE_FILE}
}
- # 5). Delete tmp image ${PARSER_IMAGE_URL_FILE}
+ # 6). Delete tmp image ${PARSER_IMAGE_URL_FILE}
[ -e ${PARSER_IMAGE_URL_FILE} -a ${PARSER_CI_DEBUG} != "true" ] && {
echo " Delete local URL image file ${PARSER_IMAGE_URL_FILE} after test."
rm -fr ${PARSER_IMAGE_URL_FILE}
}
- # 6). Delete image from openstack
+ # 7). Delete image from openstack
parser_image_id=$(openstack ${debug} image list | grep -w "${PARSER_IMAGE_NAME}" | awk '{print $2}')
[[ -n "${parser_image_id}" ]] && openstack image delete "${parser_image_id}"