diff options
author | MatthewLi <matthew.lijun@huawei.com> | 2016-03-24 22:22:43 -0400 |
---|---|---|
committer | MatthewLi <matthew.lijun@huawei.com> | 2016-03-24 22:28:09 -0400 |
commit | ab7c7ec8d74647c3e9f73ec6abb60866064fc6a2 (patch) | |
tree | 488680b7e7fe3985e568ae8138c6014c5f33f3fd /utils/infra_setup/heat_template/HOT_create_instance.sh | |
parent | 59e823031ecd6b073831efb1a9cbea4a60322781 (diff) |
rubbos instance workflow improvement
JIRA: BOTTLENECK-46
Change-Id: I3c2adc93701b4b1fb2d34601e2aaeb8d714880b7
Signed-off-by: MatthewLi <matthew.lijun@huawei.com>
Diffstat (limited to 'utils/infra_setup/heat_template/HOT_create_instance.sh')
-rwxr-xr-x | utils/infra_setup/heat_template/HOT_create_instance.sh | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/utils/infra_setup/heat_template/HOT_create_instance.sh b/utils/infra_setup/heat_template/HOT_create_instance.sh deleted file mode 100755 index 1a80d950..00000000 --- a/utils/infra_setup/heat_template/HOT_create_instance.sh +++ /dev/null @@ -1,325 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -set -x - -git_checkout() -{ - if git cat-file -e $1^{commit} 2>/dev/null; then - # branch, tag or sha1 object - git checkout $1 - else - # refspec / changeset - git fetch --tags --progress $2 $1 - git checkout FETCH_HEAD - fi -} - -bottlenecks_env_prepare() { - set -e - echo "Bottlenecks env prepare start $(date)" - git config --global http.sslVerify false - - if [ ! -d $BOTTLENECKS_REPO_DIR ]; then - git clone $BOTTLENECKS_REPO $BOTTLENECKS_REPO_DIR - fi - cd $BOTTLENECKS_REPO_DIR - git checkout master && git pull - git_checkout $BOTTLENECKS_BRANCH $BOTTLENECKS_REPO - cd - - - echo "Creating openstack credentials .." - if [ ! -d $RELENG_REPO_DIR ]; then - git clone $RELENG_REPO $RELENG_REPO_DIR - fi - cd $RELENG_REPO_DIR - git checkout master && git pull - git_checkout $RELENG_BRANCH $RELENG_REPO - cd - - - # Create openstack credentials - $RELENG_REPO_DIR/utils/fetch_os_creds.sh \ - -d /tmp/openrc \ - -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} - - source /tmp/openrc - - chmod 600 $KEY_PATH/bottlenecks_key - - echo "Bottlenecks env prepare end $(date)" - set +e -} - -wait_heat_stack_complete() { - retry=0 - while true - do - status=$(heat stack-list | grep bottlenecks | awk '{print $6}') - if [ x$status = x"CREATE_COMPLETE" ]; then - echo "bottlenecks stacke create complete" - heat stack-show bottlenecks - nova list | grep rubbos_ - break; - elif [ x$status = x"CREATE_FAILED" ]; then - echo "bottlenecks stacke create failed !!!" - heat stack-show bottlenecks - exit 1 - fi - - #if [ $BOTTLENECKS_DEBUG = True ]; then - if false; then - heat stack-show bottlenecks - nova list | grep rubbos_ - for i in $(nova list | grep rubbos_ | grep ERROR | awk '{print $2}') - do - nova show $i - done - fi - sleep 1 - let retry+=1 - if [[ $retry -ge $1 ]];then - echo "Heat stack create timeout, status $status !!!" - exit 1 - fi - done -} - -wait_rubbos_control_ok() { - control_ip=$(nova list | grep rubbos_control | awk '{print $13}') - - retry=0 - until timeout 3s ssh $ssh_args ubuntu@$control_ip "exit" >/dev/null 2>&1 - do - echo "retry connect rubbos control $retry" - sleep 1 - let retry+=1 - if [[ $retry -ge $1 ]];then - echo "rubbos control start timeout !!!" - exit 1 - fi - done - ssh $ssh_args ubuntu@$control_ip "uname -a" -} - -bottlenecks_check_instance_ok() -{ - echo "Bottlenecks check instance ok start $(date)" - - wait_heat_stack_complete 120 - wait_rubbos_control_ok 300 - nova list | grep rubbos_ - if [ $BOTTLENECKS_DEBUG = True ]; then - date - while true - do - for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \ - rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 rubbos_tomcat1 - do - echo "logging $i" - nova console-log $i | tail -n 2 | grep Cloud-init | grep finished - if [ $? != 0 ]; then - break - fi - if [ $i = rubbos_tomcat1 ]; then - echo "all vm Cloud-init finished!" - date - return - fi - done - sleep 10 - done - fi - - echo "Bottlenecks check instance ok end $(date)" -} - -bottlenecks_create_instance() -{ - echo "Bottlenecks create instance using heat template start $(date)" - - echo "upload keypair" - nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME - - echo "create flavor" - nova flavor-create $FLAVOR_NAME 200 4096 20 2 - - echo "use heat template to create stack" - cd $HOT_PATH - heat stack-create bottlenecks -f ${TEMPLATE_NAME} \ - -P "image=$IMAGE_NAME;key_name=$KEY_NAME;public_net=$EXTERNAL_NET;flavor=$FLAVOR_NAME" - - echo "Bottlenecks create instance using heat template end $(date)" -} - -bottlenecks_rubbos_wait_finish() -{ - echo "Start checking rubbos running status..." - retry=0 - while true - do - ssh $ssh_args ubuntu@$control_ip "FILE=/tmp/rubbos_finished; if [ -f \$FILE ]; then exit 0; else exit 1; fi" - if [ $? = 0 ]; then - echo "Rubbos test case successfully finished :)" - return 0 - fi - echo "Rubbos running $retry ..." - sleep 30 - let retry+=1 - if [[ $retry -ge $1 ]]; then - echo "Rubbos test case timeout :(" - return 1 - fi - done -} - -bottlenecks_rubbos_run() -{ - echo "Run Rubbos" - control_ip=$(nova list | grep rubbos_control | awk '{print $13}') - for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \ - rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \ - rubbos_tomcat1 - do - ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}') - echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - done - - nameserver_ip=$(grep -m 1 '^nameserver' \ - /etc/resolv.conf | awk '{ print $2 '}) - echo "nameserver_ip=$nameserver_ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - - echo "GERRIT_REFSPEC_DEBUG=$GERRIT_REFSPEC_DEBUG" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - echo "BOTTLENECKS_BRANCH=$BOTTLENECKS_BRANCH" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - - echo "NODE_NAME=$NODE_NAME" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - echo "BOTTLENECKS_VERSION=$BOTTLENECKS_VERSION" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - echo "BOTTLENECKS_DB_TARGET=$BOTTLENECKS_DB_TARGET" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - echo "PACKAGE_URL=$PACKAGE_URL" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf - - scp $ssh_args -r \ - $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \ - ubuntu@$control_ip:/tmp - ssh $ssh_args \ - ubuntu@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh" & - - bottlenecks_rubbos_wait_finish 200 - - if [ x"$GERRIT_REFSPEC_DEBUG" != x ]; then - # TODO fix hard coded path - scp $ssh_args \ - ubuntu@$control_ip:"/bottlenecks/rubbos/rubbos_results/2015-01-20T081237-0700.tgz" /tmp - fi - - rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf -} - -bottlenecks_cleanup() -{ - echo "Bottlenecks cleanup start $(date)" - - if heat stack-list; then - for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do - echo "clean up stack $stack" - heat stack-delete $stack || true - sleep 30 - done - fi - - if glance image-list; then - for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do - echo "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 "clean up key $key" - nova keypair-delete $key || true - done - fi - - if nova flavor-list; then - for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do - echo "clean up flavor $flavor" - nova flavor-delete $flavor || true - done - fi - - echo "Bottlenecks cleanup end $(date)" -} - -bottlenecks_load_bottlenecks_image() -{ - echo "Bottlenecks load image start $(date)" - - curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v - - result=$(glance image-create \ - --name $IMAGE_NAME \ - --disk-format qcow2 \ - --container-format bare \ - --file /tmp/bottlenecks-trusty-server.img) - echo "$result" - - rm -rf /tmp/bottlenecks-trusty-server.img - - IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}') - if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then - echo 'failed to upload bottlenecks image to openstack' - exit 1 - fi - - echo "bottlenecks image end id: $IMAGE_ID_BOTTLENECKS $(date)" -} - -main() -{ - echo "main start $(date)" - - : ${BOTTLENECKS_DEBUG:='True'} - : ${BOTTLENECKS_REPO:='https://gerrit.opnfv.org/gerrit/bottlenecks'} - : ${BOTTLENECKS_REPO_DIR:='/tmp/opnfvrepo/bottlenecks'} - : ${BOTTLENECKS_BRANCH:='master'} # branch, tag, sha1 or refspec - : ${RELENG_REPO:='https://gerrit.opnfv.org/gerrit/releng'} - : ${RELENG_REPO_DIR:='/tmp/opnfvrepo/releng'} - : ${RELENG_BRANCH:='master'} # branch, tag, sha1 or refspec - : ${IMAGE_NAME:='bottlenecks-trusty-server'} - KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key - HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template - : ${KEY_NAME:='bottlenecks-key'} - : ${FLAVOR_NAME:='bottlenecks-flavor'} - : ${TEMPLATE_NAME:='bottlenecks_rubbos_hot.yaml'} - ssh_args="-o StrictHostKeyChecking=no -o BatchMode=yes -i $KEY_PATH/bottlenecks_key" - : ${EXTERNAL_NET:='net04_ext'} - : ${PACKAGE_URL:='http://artifacts.opnfv.org/bottlenecks'} - : ${NODE_NAME:='opnfv-jump-2'} - : ${INSTALLER_TYPE:='fuel'} - : ${INSTALLER_IP:='10.20.0.2'} - # TODO fix for dashboard - : ${BOTTLENECKS_VERSION:='master'} - : ${BOTTLENECKS_DB_TARGET:='213.77.62.197'} - IMAGE_URL=${PACKAGE_URL}/rubbos/bottlenecks-trusty-server.img - - bottlenecks_env_prepare - set -x - bottlenecks_cleanup - bottlenecks_load_bottlenecks_image - bottlenecks_create_instance - bottlenecks_check_instance_ok - bottlenecks_rubbos_run - bottlenecks_cleanup - echo "main end $(date)" -} - -main -set +x - |