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_check_instance()
22 heat stack-show bottlenecks
24 nova list | grep rubbos_control
27 bottlenecks_create_instance()
29 echo "create bottlenecks instance using heat template"
32 nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME
35 nova flavor-create $FLAVOR_NAME 200 2048 10 1
37 echo "use heat template to create stack"
39 heat stack-create bottlenecks -f ${TEMPLATE_NAME} \
40 -P "image=$IMAGE_NAME;key_name=$KEY_NAME;public_net=$PUBLIC_NET_NAME;flavor=$FLAVOR_NAME"
43 bottlenecks_rubbos_cirros_run()
45 echo "Run Rubbos based on cirros image"
46 control_ip=$(nova list | grep rubbos_control | awk '{print $13}')
47 for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \
48 rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \
51 ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}')
52 echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
55 chmod 600 $KEY_PATH/bottlenecks_key
56 ssh -i $KEY_PATH/bottlenecks_key \
57 -o StrictHostKeyChecking=no \
58 -o BatchMode=yes cirros@$control_ip "uname -a"
59 scp -r -i $KEY_PATH/bottlenecks_key \
60 -o StrictHostKeyChecking=no -o BatchMode=yes \
61 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
62 cirros@$control_ip:/tmp
63 ssh -i $KEY_PATH/bottlenecks_key \
64 -o StrictHostKeyChecking=no \
65 -o BatchMode=yes cirros@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
67 rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
70 bottlenecks_rubbos_run()
73 control_ip=$(nova list | grep rubbos_control | awk '{print $13}')
74 for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \
75 rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \
78 ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}')
79 echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
82 chmod 600 $KEY_PATH/bottlenecks_key
83 ssh -i $KEY_PATH/bottlenecks_key \
84 -o StrictHostKeyChecking=no \
85 -o BatchMode=yes ec2-user@$control_ip "uname -a"
86 scp -r -i $KEY_PATH/bottlenecks_key \
87 -o StrictHostKeyChecking=no -o BatchMode=yes \
88 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
89 ec2-user@$control_ip:/tmp
90 ssh -i $KEY_PATH/bottlenecks_key \
91 -o StrictHostKeyChecking=no \
92 -o BatchMode=yes ec2-user@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
94 rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
99 echo "clean up bottlenecks images and keys"
101 if heat stack-list; then
102 for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do
103 echo "clean up stack $stack"
104 heat stack-delete $stack || true
109 if glance image-list; then
110 for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do
111 echo "clean up image $image"
112 glance image-delete $image || true
116 if nova keypair-list; then
117 for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do
118 echo "clean up key $key"
119 nova keypair-delete $key || true
123 if nova flavor-list; then
124 for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do
125 echo "clean up flavor $flavor"
126 nova flavor-delete $flavor || true
131 bottlenecks_load_cirros_image()
133 echo "load cirros image"
135 wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O \
136 /tmp/bottlenecks-cirros.img
138 result=$(glance image-create \
140 --disk-format qcow2 \
141 --container-format bare \
142 --file /tmp/bottlenecks-cirros.img)
145 rm -rf /tmp/bottlenecks-cirros.img
147 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
148 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
149 echo 'failed to upload bottlenecks image to openstack'
153 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
156 bottlenecks_load_bottlenecks_image()
158 echo "load bottlenecks image"
160 # curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v
162 wget https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img -O \
163 /tmp/bottlenecks-trusty-server.img
165 result=$(glance image-create \
167 --disk-format qcow2 \
168 --container-format bare \
169 --file /tmp/bottlenecks-trusty-server.img)
172 rm -rf /tmp/bottlenecks-trusty-server.img
174 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
175 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
176 echo 'failed to upload bottlenecks image to openstack'
180 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
185 echo "create instances with heat template"
187 BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
188 BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks
189 IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
190 IMAGE_NAME=bottlenecks-trusty-server
191 KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
192 HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template
193 KEY_NAME=bottlenecks-key
194 FLAVOR_NAME=bottlenecks-flavor
195 TEMPLATE_NAME=bottlenecks_rubbos_hot.yaml
196 PUBLIC_NET_NAME=net04_ext
198 bottlenecks_env_prepare
200 bottlenecks_load_cirros_image
201 bottlenecks_create_instance
203 bottlenecks_check_instance
204 bottlenecks_rubbos_cirros_run
206 bottlenecks_load_bottlenecks_image
207 bottlenecks_create_instance
209 bottlenecks_check_instance
210 bottlenecks_rubbos_run