summaryrefslogtreecommitdiffstats
path: root/utils/infra_setup/heat_template/HOT_create_instance.sh
blob: d9e09a984465ac9d44cb1e15e6983e47c78a6907 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash

set -e

bottlenecks_create_instance()
{
   echo "create bottlenecks instance using heat template"

   mkdir -p ${BOTTLENECKS_REPO_DIR}
   git config --global http.sslVerify false
   git clone ${BOTTLENECKS_REPO} ${BOTTLENECKS_REPO_DIR}

   echo "upload keypair"
   nova keypair-add --pub_key $KEY_PATH/bottleneck_key.pub $KEY_NAME
   #need FIX, only upload the public key? should be keypair

   echo "use heat template to create stack"
   cd $HOT_PATH
   heat stack-create bottlenecks -f ${TEMPLATE_NAME} -P "image=$IMAGE_NAME;key=$KEY_NAME;public_network=$PUBLIC_NET_NAME"
   #need FIX, use stack to create 9 VMs
}

bottlenecks_cleanup()
{
   echo "clean up bottlenecks images"

   if ! glance image-list; then
       return
   fi

   #need to check
   for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do
       echo "clean up image $image"
       glance image-delete $iamge || true
   done

   #FIX ME
   #nova flavor-delete yardstick-flavor &> /dev/null || true
}

bottlenecks_build_image()
{
   echo "build bottlenecks image"

   #need FIX
}

bottlenecks_load_cirros_image()
{
   echo "load bottlenecks cirros image"

   local image_file=/home/opnfv/images/cirros-0.3.3-x86_64-disk.img

   result=$(glance image-create \
       --name cirros-0.3.3 \
       --disk-format qcow2 \
       --container-format bare \
       --file $image_file)
   echo "$result"

   IMAGE_ID_CIRROS=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
   if [ -z "$IMAGE_ID_CIRROS" ]; then
        echo 'failed to upload cirros image to openstack'
        exit 1
   fi

   echo "cirros image id: $IMAGE_ID_CIRROS"
}

bottlenecks_load_image()
{
   echo "load bottlenecks image"

   result=$(glance --os-image-api-version 1 image-create \
      --name $IMAGE_NAME \
      --is-public true --disk-format qcow2 \
      --container-format bare \
      --file $IMAGE_FILE_NAME)
   echo "$result"

   GLANCE_IMAGE_ID=$(echo "$result" | grep " id " | awk '{print $(NF-1)}')

   if [ -z "$GLANCE_IMAGE_ID" ]; then
       echo 'add image to glance failed'
       exit 1
   fi

   sudo rm -f $IMAGE_FILE_NAME

   echo "add glance image completed: $GLANCE_IMAGE_ID"
}

main()
{
   echo "create instances with heat template"

   BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks
   BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks
   #IMAGE_URL=http://205.177.226.235:9999
   IMAGE_NAME=cirros-0.3.3
   #need FIX, need a script to transfer the image from the url to be the installer images
   KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key
   HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template
   KEY_NAME=bottlenecks_key
   TEMPLATE_NAME=bottlenecks_template1.yaml
   PUBLIC_NET_NAME=net04_ext
   #need FIX
   #IMAGE_FILE_NAME=""

   #bottlenecks_cleanup
   #bottlenecks_build_image
   bottlenecks_load_cirros_image
   bottlenecks_create_instance
}

main