summaryrefslogtreecommitdiff
path: root/tools/ovn_migration/tripleo_environment/playbooks/roles/resources/create/templates/create-resources.sh.j2
blob: bf5ebc936ed0e24423a4fb33a0c6fd199556422b (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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/bash

set -x

source {{ overcloudrc }}

server_user_name={{ server_user_name }}
flavor_name={{ flavor_name }}
image_name={{ image_name }}

openstack image show $image_name
if [ "$?" != "0" ]
then
    if [ ! -f cirros-0.5.2-x86_64-disk.img ]
    then
        curl -Lo cirros-0.5.2-x86_64-disk.img https://github.com/cirros-dev/cirros/releases/download/0.5.2/cirros-0.5.2-x86_64-disk.img
    fi

    openstack image create "cirros-ovn-migration-{{ resource_suffix }}"  --file cirros-0.5.2-x86_64-disk.img \
--disk-format qcow2 --container-format bare --public
    image_name="cirros-ovn-migration-{{ resource_suffix }}"
fi

openstack flavor show $flavor_name
if [ "$?" != "0" ]
then
    openstack flavor create ovn-migration-{{ resource_suffix }} --ram 1024 --disk 1 --vcpus 1
    flavor_name="ovn-migration-{{ resource_suffix }}"
fi

openstack keypair create ovn-migration-{{ resource_suffix }} --private-key {{ ovn_migration_temp_dir }}/ovn_migration_ssh_key

openstack security group create ovn-migration-sg-{{ resource_suffix }}

openstack security group rule create --ingress --protocol icmp ovn-migration-sg-{{ resource_suffix }}

openstack security group rule create --ingress --protocol tcp --dst-port 22  ovn-migration-sg-{{ resource_suffix }}

openstack network create ovn-migration-net-{{ resource_suffix }}

neutron net-update ovn-migration-net-{{ resource_suffix }} --mtu 1442

openstack subnet create  --network ovn-migration-net-{{ resource_suffix }}  --subnet-range 172.168.199.0/24 ovn-migration-subnet-{{ resource_suffix }}

openstack router create ovn-migration-router-{{ resource_suffix }}

openstack router set --external-gateway {{ public_network_name }} ovn-migration-router-{{ resource_suffix }}

openstack router add subnet ovn-migration-router-{{ resource_suffix }} ovn-migration-subnet-{{ resource_suffix }}

openstack port create --network ovn-migration-net-{{ resource_suffix }} --security-group ovn-migration-sg-{{ resource_suffix }} ovn-migration-server-port-{{ resource_suffix }}

openstack server create --flavor $flavor_name --image $image_name \
--key-name ovn-migration-{{ resource_suffix }} \
--nic port-id=ovn-migration-server-port-{{ resource_suffix }} ovn-migration-server-{{ resource_suffix }}

server_ip=`openstack floating ip create --port ovn-migration-server-port-{{ resource_suffix }} \
{{ public_network_name }} -c floating_ip_address | grep floating_ip_address \
| awk '{print $4'}`

echo $server_ip > {{ ovn_migration_temp_dir }}/server_public_ip

chmod 0600 {{ ovn_migration_temp_dir }}/ovn_migration_ssh_key

# Wait till the port is ACTIVE

echo "Wait till the port is ACTIVE"
port_status=`openstack port show ovn-migration-server-port-{{ resource_suffix }} -c status | grep status | awk '{print $4}'`

num_attempts=0
while [ "$port_status" != "ACTIVE" ]
do
    num_attempts=$((num_attempts+1))
    sleep 5
    port_status=`openstack port show ovn-migration-server-port-{{ resource_suffix }} -c status | grep status | awk '{print $4}'`
    echo "Port status = $port_status"

    if [ $num_attempts -gt 24 ]
    then
        echo "Port is not up even after 2 minutes. Something is wrong"
        exit 1
    fi
done

echo "VM is up and the port is ACTIVE"

# Wait till the VM allows ssh connections

vm_status="down"
num_attempts=0
while [ "$vm_status" != "up" ]
do
    num_attempts=$((num_attempts+1))
    sleep 5
    openstack console log show ovn-migration-server-{{ resource_suffix }} | grep "login:"
    if [ "$?" == "0" ]
    then
        vm_status="up"
    else
        if [ $num_attempts -gt 60 ]
        then
            echo "Port is not up even after 5 minutes. Something is wrong."
            # Even though something seems wrong, lets try and ping.
            break
        fi
    fi
done

num_attempts=0
vm_reachable="false"
while [ "$vm_reachable" != "true" ]
do
    num_attempts=$((num_attempts+1))
    sleep 1
    ping -c 3 $server_ip
    if [ "$?" == "0" ]
    then
        vm_reachable="true"
    else
        if [ $num_attempts -gt 60 ]
        then
            echo "VM is not reachable. Something is wrong."
            # Even though something seems wrong, lets try and ping.
            exit 1
        fi
    fi
done

ssh -i {{ ovn_migration_temp_dir }}/ovn_migration_ssh_key -o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null  $server_user_name@$server_ip date

rc=$?

echo "Done with the resource creation : exiting with $rc"
exit $rc