5 bottlenecks_env_prepare()
7 if [ -d $BOTTLENECKS_REPO_DIR ]; then
8 rm -rf ${BOTTLENECKS_REPO_DIR}
11 mkdir -p ${BOTTLENECKS_REPO_DIR}
12 git config --global http.sslVerify false
13 git clone ${BOTTLENECKS_REPO} ${BOTTLENECKS_REPO_DIR}
15 source $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh
18 bottlenecks_create_instance()
20 echo "create bottlenecks instance using heat template"
23 nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME
26 nova flavor-create $FLAVOR_NAME 200 2048 10 1
28 echo "use heat template to create stack"
30 heat stack-create bottlenecks -f ${TEMPLATE_NAME} \
31 -P "image=$IMAGE_NAME;key_name=$KEY_NAME;public_net=$PUBLIC_NET_NAME;flavor=$FLAVOR_NAME"
34 heat stack-show bottlenecks
36 nova list | grep rubbos_control
39 bottlenecks_rubbos_run()
42 control_ip=$(nova list | grep rubbos_control | awk '{print $13}')
43 for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \
44 rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \
47 ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}')
48 echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
51 chmod 600 $KEY_PATH/bottlenecks_key
52 ssh -i $KEY_PATH/bottlenecks_key \
53 -o StrictHostKeyChecking=no \
54 -o BatchMode=yes root@$control_ip "uname -a"
55 scp -r -i $KEY_PATH/bottlenecks_key \
56 -o StrictHostKeyChecking=no -o BatchMode=yes \
57 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
59 ssh -i $KEY_PATH/bottlenecks_key \
60 -o StrictHostKeyChecking=no \
61 -o BatchMode=yes root@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
63 rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
69 echo "clean up bottlenecks images and keys"
71 if heat stack-list; then
72 for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do
73 echo "clean up stack $stack"
74 heat stack-delete $stack || true
79 if glance image-list; then
80 for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do
81 echo "clean up image $image"
82 glance image-delete $image || true
86 if nova keypair-list; then
87 for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do
88 echo "clean up key $key"
89 nova keypair-delete $key || true
93 if nova flavor-list; then
94 for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do
95 echo "clean up flavor $flavor"
96 nova flavor-delete $flavor || true
101 bottlenecks_load_bottlenecks_image()
103 echo "load bottlenecks image"
105 curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v
106 #if [ $? != 0 ]; then
107 wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O \
108 /tmp/bottlenecks-trusty-server.img
111 result=$(glance image-create \
113 --disk-format qcow2 \
114 --container-format bare \
115 --file /tmp/bottlenecks-trusty-server.img)
118 rm -rf /tmp/bottlenecks-trusty-server.img
120 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
121 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
122 echo 'failed to upload bottlenecks image to openstack'
126 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
131 echo "create instances with heat template"
133 BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
134 BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks
135 IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
136 IMAGE_NAME=bottlenecks-trusty-server
137 KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
138 HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template
139 KEY_NAME=bottlenecks-key
140 FLAVOR_NAME=bottlenecks-flavor
141 TEMPLATE_NAME=bottlenecks_rubbos_hot.yaml
142 PUBLIC_NET_NAME=net04_ext
144 bottlenecks_env_prepare
146 bottlenecks_load_bottlenecks_image
147 bottlenecks_create_instance
148 bottlenecks_rubbos_run