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"
33 heat stack-show bottlenecks
35 nova list | grep rubbos_control
38 bottlenecks_rubbos_cirros_run()
40 echo "Run Rubbos based on cirros image"
41 control_ip=$(nova list | grep rubbos_control | awk '{print $13}')
42 for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \
43 rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \
46 ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}')
47 echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
50 chmod 600 $KEY_PATH/bottlenecks_key
51 ssh -i $KEY_PATH/bottlenecks_key \
52 -o StrictHostKeyChecking=no \
53 -o BatchMode=yes cirros@$control_ip "uname -a"
54 scp -r -i $KEY_PATH/bottlenecks_key \
55 -o StrictHostKeyChecking=no -o BatchMode=yes \
56 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
57 cirros@$control_ip:/tmp
58 ssh -i $KEY_PATH/bottlenecks_key \
59 -o StrictHostKeyChecking=no \
60 -o BatchMode=yes cirros@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
62 rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
65 bottlenecks_rubbos_run()
68 control_ip=$(nova list | grep rubbos_control | awk '{print $13}')
69 for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \
70 rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \
73 ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}')
74 echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
77 chmod 600 $KEY_PATH/bottlenecks_key
78 ssh -i $KEY_PATH/bottlenecks_key \
79 -o StrictHostKeyChecking=no \
80 -o BatchMode=yes root@$control_ip "uname -a"
81 scp -r -i $KEY_PATH/bottlenecks_key \
82 -o StrictHostKeyChecking=no -o BatchMode=yes \
83 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
85 ssh -i $KEY_PATH/bottlenecks_key \
86 -o StrictHostKeyChecking=no \
87 -o BatchMode=yes root@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
89 rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf
94 echo "clean up bottlenecks images and keys"
96 if heat stack-list; then
97 for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do
98 echo "clean up stack $stack"
99 heat stack-delete $stack || true
104 if glance image-list; then
105 for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do
106 echo "clean up image $image"
107 glance image-delete $image || true
111 if nova keypair-list; then
112 for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do
113 echo "clean up key $key"
114 nova keypair-delete $key || true
118 if nova flavor-list; then
119 for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do
120 echo "clean up flavor $flavor"
121 nova flavor-delete $flavor || true
126 bottlenecks_load_cirros_image()
128 echo "load cirros image"
130 wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O \
131 /tmp/bottlenecks-cirros.img
133 result=$(glance image-create \
135 --disk-format qcow2 \
136 --container-format bare \
137 --file /tmp/bottlenecks-cirros.img)
140 rm -rf /tmp/bottlenecks-cirros.img
142 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
143 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
144 echo 'failed to upload bottlenecks image to openstack'
148 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
151 bottlenecks_load_bottlenecks_image()
153 echo "load bottlenecks image"
155 curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v
157 result=$(glance image-create \
159 --disk-format qcow2 \
160 --container-format bare \
161 --file /tmp/bottlenecks-trusty-server.img)
164 rm -rf /tmp/bottlenecks-trusty-server.img
166 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
167 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
168 echo 'failed to upload bottlenecks image to openstack'
172 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
177 echo "create instances with heat template"
179 BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
180 BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks
181 IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
182 IMAGE_NAME=bottlenecks-trusty-server
183 KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
184 HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template
185 KEY_NAME=bottlenecks-key
186 FLAVOR_NAME=bottlenecks-flavor
187 TEMPLATE_NAME=bottlenecks_rubbos_hot.yaml
188 PUBLIC_NET_NAME=net04_ext
190 bottlenecks_env_prepare
192 bottlenecks_load_cirros_image
193 bottlenecks_create_instance
195 bottlenecks_rubbos_cirros_run
197 bottlenecks_load_bottlenecks_image
198 bottlenecks_create_instance
200 bottlenecks_rubbos_run