summaryrefslogtreecommitdiffstats
path: root/utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh
diff options
context:
space:
mode:
Diffstat (limited to 'utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh')
-rwxr-xr-xutils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh172
1 files changed, 172 insertions, 0 deletions
diff --git a/utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh b/utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh
index 11df69b8..f608e120 100755
--- a/utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh
+++ b/utils/infra_setup/heat_template/vstf_heat_template/vstf_HOT_create_instance.sh
@@ -26,7 +26,146 @@ bottlenecks_env_prepare()
source $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh
}
+vstf_cleanup()
+{
+ echo "[INFO]Begin to clean up vstf heat-stack ,glance images and keypairs"
+ #heat stack-delete bottlenecks
+ sleep 30
+ if heat stack-list; then
+ for stack in $(heat stack-list | grep -e " vstf " | awk '{print $2}'); do
+ echo "[INFO]clean up stack $stack"
+ heat stack-delete $stack || true
+ sleep 30
+ done
+ fi
+
+ glance image-delete ${MANAGER_IMAGE_NAME};glance image-delete "${AGENT_IMAGE_NAME}"
+ if glance image-list; then
+ for image in $(glance image-list | grep -e "${MANAGER_IMAGE_NAME}" | awk '{print $2}'); do
+ echo "[INFO]clean up image $image"
+ glance image-delete $image || true
+ done
+ for image in $(glance image-list | grep -e "${AGENT_IMAGE_NAME}" | awk '{print $2}'); do
+ echo "[INFO]clean up image $image"
+ glance image-delete $image || true
+ done
+ fi
+
+ if nova keypair-list; then
+ for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do
+ echo "[INFO]clean up key $key"
+ nova keypair-delete $key || true
+ done
+ fi
+
+ #check the default flavor m1.large existing
+ if nova flavor-list; then
+ flag=`nova flavor-list | grep "m1.large "`
+ echo "[INFO]the flavor m1.large num is $flag"
+ fi
+ return 0
+}
+
+vstf_register()
+{
+ echo "[INFO]download vstf images"
+ #download vstf-manager and vstf-agent image
+ #curl --connect-timeout 10 -o /tmp/vstf-manager.img $MANAGER_IMAGE_URL -v
+ #curl --connect-timeout 10 -o /tmp/vstf-agent.img $AGENT_IMAGE_URL -v
+ curl --connect-timeout 10 -o /tmp/vstf-manager.img $MANAGER_IMAGE_URL -v
+ curl --connect-timeout 10 -o /tmp/vstf-agent.img $AGENT_IMAGE_URL -v
+ #echo "begin to test downloading from vstf directory!!!!!!"
+ #curl --connect-timeout 10 -o /tmp/vstf-test.txt
+ #echo "begin to cat /tmp/vstf-test.txt vstf directory!!!!!!"
+ #cat /tmp/vstf-test.txt
+ #register
+ echo "[INFO]register vstf manager and agent images"
+ result=$(glance image-create \
+ --name $MANAGER_IMAGE_NAME \
+ --disk-format qcow2 \
+ --container-format bare \
+ --file /tmp/vstf-manager.img)
+ echo "Manager image register result $result."
+
+ result=$(glance image-create \
+ --name $AGENT_IMAGE_NAME \
+ --disk-format qcow2 \
+ --container-format bare \
+ --file /tmp/vstf-agent.img)
+ echo "Agent image register result $result."
+
+ glance image-list
+
+ rm -rf /tmp/vstf-manager.img;rm -rf /tmp/vstf-agent.img
+}
+
#vstf logic function here
+vstf_create_heat_template()
+{
+ echo "create vstf instance using heat template"
+ echo "upload keypair"
+ nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME
+ nova keypair-list
+ echo "use heat template to create stack"
+ cd ${HOT_PATH}
+ heat stack-create vstf -f ${TEMPLATE_NAME}
+
+}
+
+wait_heat_stack_complete()
+{
+ retry=0
+ while true
+ do
+ status=$(heat stack-list | grep vstf | awk '{print $6}')
+ if [ x$status = x"CREATE_COMPLETE" ]; then
+ echo "vstf stacke create complete"
+ heat stack-show vstf
+ nova list | grep vstf-
+ break;
+ elif [ x$status = x"CREATE_FAILED" ]; then
+ echo "bottlenecks stacke create failed !!!"
+ heat stack-show vstf
+ exit 1
+ fi
+
+ if [ "$BOTTLENECKS_DEBUG" == "True" ]; then
+ heat stack-show vstf
+ nova list | grep vstf-
+ for i in $(nova list | grep "vstf-" | grep ERROR | awk '{print $2}')
+ do
+ nova show $i
+ done
+ fi
+ sleep 1
+ let retry+=1
+ if [[ $retry -ge $1 ]];then
+ echo "Heat vstf stack create timeout, status $status !!!"
+ exit 1
+ fi
+ done
+}
+
+
+vstf_check_instance_ok()
+{
+ wait_heat_stack_complete 120
+
+ return 0
+}
+
+vstf_launch()
+{
+ cd ${HOT_PATH}
+ bash -x ./launch_vstf.sh
+
+}
+
+vstf_test()
+{
+ cd ${HOT_PATH}
+ bash -x ./vstf_test.sh
+}
main()
{
@@ -35,9 +174,42 @@ main()
BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo_vstf/bottlenecks
#vstf parameter here
+ MANAGER_IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/vstf/vstf-manager.img
+ AGENT_IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/vstf/vstf-agent.img
+ MANAGER_IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
+ AGENT_IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
+ MANAGER_IMAGE_NAME="vstf-manager"
+ AGENT_IMAGE_NAME="vstf-agent"
+ KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
+ HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template/vstf_heat_template
+ KEY_NAME=vstf-key
+ #use the default openstack flavor m1.large
+ FLAVOR_NAME="m1.large"
+ TEMPLATE_NAME=bottleneck_vstf.yaml
+ PUBLIC_NET_NAME=net04_ext
+ #load adminrc
bottlenecks_env_prepare
+
#vstf function here
+ vstf_cleanup
+ vstf_register
+ vstf_create_heat_template
+ vstf_check_instance_ok
+ heat stack-list
+ nova list
+ sleep 100
+ vstf_launch
+ #sleep 30
+ vstf_test
+ #sleep 10
+ #echo "[INFO]bottleneck vstf testsuite done ,results in the directory ${HOT_PATH}/result"
+ echo "[INFO]Begin to clean up the vstf heat-stack and image"
+ vstf_cleanup
+ sleep 30
+ heat stack-list
+ nova list
+
}
main