blob: 5426f6562f6d546627d6ff3584152f187bfce0e6 [file] [log] [blame]
Alex Savatieievbadc4762019-09-30 13:46:37 -05001#!/bin/bash
2cmp_name=${1}
3vmname=vm_${1}_01
4
5function waitfor () {
6 counter=0
7 while [ ${counter} -lt 6 ]; do
8 ids=( $(openstack server list --name ${vmname} --status ${1} -f value -c ID) )
9 if [ ${#ids[@]} -eq 0 ]; then
10 sleep 5
11 counter=$((counter + 1))
12 else
13 printf "# '${vmname}' reached status ${1}\n"
14 break
15 fi
16 done
17}
18
19function getid() {
20 openstack server list --name ${1} -f value -c ID
21}
22
23function vm_create() {
24 set -x
25 openstack server create --nic net-id=${fixed_net_left_id} --image ${cirros35_id} --flavor ${flavor_tiny_id} --key-name ${keypair_id} --security-group ${secgroup_all_id} --availability-zone nova:${1} ${2} 2>&1 >/dev/nul
26 set +x
27}
28
29function vm_action() {
30 openstack server ${1} ${2}
31}
32
33# temp file for commands
34cmds=$(mktemp)
35#trap "rm -f ${cmds}" EXIT
36#echo "# Using tempfile: '${cmds}'"
37
38# trap "source adminrc" EXIT
39
40echo "### CMP check for booting VMs"
41if [ ! -f cvp.manifest ]; then
42 echo "ERROR: No cvp.manifest file detected. Consider running prepare.sh"
43 exit 1
44else
45 source cvp.manifest
46fi
47
48if [ -z ${cmp_name} ]; then
49 echo "CMP node name not specified"
50 exit 1
51fi
52
53echo "# Sourcing cvprc"
54source cvprc
55
56echo "# Checking for previously created VMs"
57vmid=( $(getid ${vmname}) )
58if [ ${#vmid[@]} -ne 0 ]; then
59 echo "# Found previously created VMs. Cleaning."
60 vm_action delete ${vmid[@]}
61else
62 echo "# ...no VMs found"
63fi
64
65printf "### Checking '${cmp_name}': Create, Pause, Unpause, Delete a VM\n"
66echo "# ... creating VM on ${cmp_name} using name of ${vmname}"
67vm_create ${cmp_name} ${vmname}
68waitfor ACTIVE
69vmid=$(openstack server list --name ${vmname} -f value -c ID)
70
71vm_action pause ${vmid}
72waitfor PAUSED
73vm_action unpause ${vmid}
74waitfor ACTIVE
75
76echo "# ... deleting create VM (${vmid})"
77vm_action delete ${vmid}
78
79printf "\n# Done checking ${cmp_name}\n"
80