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 chmod 600 $KEY_PATH/bottlenecks_key
44 ssh -i $KEY_PATH/bottlenecks_key \
45 -o StrictHostKeyChecking=no \
46 -o BatchMode=yes root@$control_ip "uname -a"
47 scp -r -i $KEY_PATH/bottlenecks_key \
48 -o StrictHostKeyChecking=no -o BatchMode=yes \
49 $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \
51 ssh -i $KEY_PATH/bottlenecks_key \
52 -o StrictHostKeyChecking=no \
53 -o BatchMode=yes root@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh"
58 echo "clean up bottlenecks images and keys"
60 if heat stack-list; then
61 for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do
62 echo "clean up stack $stack"
63 heat stack-delete $stack || true
68 if glance image-list; then
69 for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do
70 echo "clean up image $image"
71 glance image-delete $image || true
75 if nova keypair-list; then
76 for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do
77 echo "clean up key $key"
78 nova keypair-delete $key || true
82 if nova flavor-list; then
83 for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do
84 echo "clean up flavor $flavor"
85 nova flavor-delete $flavor || true
90 bottlenecks_load_bottlenecks_image()
92 echo "load bottlenecks image"
94 curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v
96 wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O \
97 /tmp/bottlenecks-trusty-server.img
100 result=$(glance image-create \
102 --disk-format qcow2 \
103 --container-format bare \
104 --file /tmp/bottlenecks-trusty-server.img)
107 rm -rf /tmp/bottlenecks-trusty-server.img
109 IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')
110 if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then
111 echo 'failed to upload bottlenecks image to openstack'
115 echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS"
120 echo "create instances with heat template"
122 BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
123 BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks
124 IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img
125 IMAGE_NAME=bottlenecks-trusty-server
126 KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
127 HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template
128 KEY_NAME=bottlenecks-key
129 FLAVOR_NAME=bottlenecks-flavor
130 TEMPLATE_NAME=bottlenecks_rubbos_hot.yaml
131 PUBLIC_NET_NAME=net04_ext
133 bottlenecks_env_prepare
135 bottlenecks_load_bottlenecks_image
136 bottlenecks_create_instance
137 bottlenecks_rubbos_run