summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshangxdy <shang.xiaodong@zte.com.cn>2016-08-25 21:48:23 +0800
committershangxdy <shang.xiaodong@zte.com.cn>2016-08-25 21:53:17 +0800
commit654a44a7d3727f7f6d3fb61f70f7e63f9b6d8524 (patch)
tree79e3a3f70c97273c164db32f80c8806cfe3ec330
parent0b14273724d39491583c280242d80f329a7469be (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}"