Removed opendaylight build capabilities as a preparation toward Arno SR1
[genesis.git] / fuel / build / f_odl_docker / puppet / modules / opnfv / scripts / change.sh
1 #!/bin/bash
2 # script to remove bridges and reset networking for ODL
3
4
5 #VARS
6 MODE=0
7 DNS=8.8.8.8
8
9 #ENV
10 source ~/openrc
11
12 # GET IPS for that node
13 function get_ips {
14         BR_MGMT=`grep address /etc/network/ifcfg_backup/ifcfg-br-mgmt | awk -F" " '{print $2}'`
15         BR_STORAGE=`grep address /etc/network/ifcfg_backup/ifcfg-br-storage | awk -F" " '{print $2}'`
16         BR_FW_ADMIN=`grep address /etc/network/ifcfg_backup/ifcfg-br-fw-admin | awk -F" " '{print $2}'`
17         BR_EX=`grep address /etc/network/ifcfg_backup/ifcfg-br-ex | awk -F" " '{print $2}'`
18         DEF_NETMASK=255.255.255.0
19         DEF_GW=172.30.9.1
20 }
21
22 function backup_ifcfg {
23         echo " backing up "
24         mkdir -p /etc/network/ifcfg_backup
25         mv /etc/network/interfaces.d/ifcfg-br-ex /etc/network/ifcfg_backup/.
26         mv /etc/network/interfaces.d/ifcfg-br-fw-admin /etc/network/ifcfg_backup/.
27         mv /etc/network/interfaces.d/ifcfg-br-mgmt /etc/network/ifcfg_backup/.
28         mv /etc/network/interfaces.d/ifcfg-br-storage /etc/network/ifcfg_backup/.
29         mv /etc/network/interfaces.d/ifcfg-br-prv /etc/network/ifcfg_backup/.
30         mv /etc/network/interfaces.d/ifcfg-eth0 /etc/network/ifcfg_backup/.
31         mv /etc/network/interfaces.d/ifcfg-eth1 /etc/network/ifcfg_backup/.
32         rm -rf /etc/network/interfaces.d/ifcfg-eth1.300
33         rm -rf /etc/network/interfaces.d/ifcfg-eth1.301
34         rm -rf /etc/network/interfaces.d/ifcfg-eth1
35         rm -rf /etc/network/interfaces.d/ifcfg-eth0
36
37 }
38
39
40 function create_ifcfg_br_mgmt {
41         echo "migrating br_mgmt"
42         echo "auto eth1.300" >> /etc/network/interfaces.d/ifcfg-eth1.300
43         echo "iface eth1.300 inet static" >> /etc/network/interfaces.d/ifcfg-eth1.300
44         echo "     address $BR_MGMT" >> /etc/network/interfaces.d/ifcfg-eth1.300
45         echo "     netmask $DEF_NETMASK" >> /etc/network/interfaces.d/ifcfg-eth1.300
46 }
47
48 function create_ifcfg_br_storage {
49         echo "migration br_storage"
50         echo "auto eth1.301" >> /etc/network/interfaces.d/ifcfg-eth1.301
51         echo "iface eth1.301 inet static" >> /etc/network/interfaces.d/ifcfg-eth1.301
52         echo "     address $BR_STORAGE" >> /etc/network/interfaces.d/ifcfg-eth1.301
53         echo "     netmask $DEF_NETMASK" >> /etc/network/interfaces.d/ifcfg-eth1.301
54 }
55
56 function create_ifcfg_br_fw_admin {
57         echo " migratinng br_fw_admin"
58         echo "auto eth1" >> /etc/network/interfaces.d/ifcfg-eth1
59         echo "iface eth1 inet static" >> /etc/network/interfaces.d/ifcfg-eth1
60         echo "     address $BR_FW_ADMIN" >> /etc/network/interfaces.d/ifcfg-eth1
61         echo "     netmask $DEF_NETMASK" >> /etc/network/interfaces.d/ifcfg-eth1
62 }
63
64 function create_ifcfg_eth0 {
65         echo "migratinng br-ex to eth0 - temporarily"
66         echo "auto eth0" >> /etc/network/interfaces.d/ifcfg-eth0
67         echo "iface eth0 inet static" >> /etc/network/interfaces.d/ifcfg-eth0
68         echo "     address $BR_EX" >> /etc/network/interfaces.d/ifcfg-eth0
69         echo "     netmask $DEF_NETMASK" >> /etc/network/interfaces.d/ifcfg-eth0
70         echo "     gateway $DEF_GW" >> /etc/network/interfaces.d/ifcfg-eth0
71 }
72
73 function set_mode {
74         if [ -d "/var/lib/glance/images" ]
75         then 
76                 echo " controller "
77                 MODE=0
78         else 
79                 echo " compute "
80                 MODE=1
81         fi
82 }
83
84
85 function stop_ovs {
86         echo "Stopping OpenVSwitch"
87         service openvswitch-switch stop
88
89 }
90
91 function start_ovs {
92         echo "Starting OVS"
93         service openvswitch-switch start
94         ovs-vsctl show
95 }
96
97
98 function clean_ovs {
99         echo "cleaning OVS DB"
100         stop_ovs
101         rm -rf /var/log/openvswitch/*
102         mkdir -p /opt/opnfv/odl/ovs_back
103         cp -pr /etc/openvswitch/* /opt/opnfv/odl/ovs_back/.
104         rm -rf /etc/openvswitch/conf.db
105         echo "restarting OVS - you should see Nothing there"
106         start_ovs
107 }
108
109
110
111 function reboot_me {
112         reboot
113 }
114
115 function allow_challenge {
116         sed -i -e 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
117         service ssh restart
118 }
119
120 function clean_neutron {
121         subnets=( `neutron subnet-list | awk -F" " '{print $2}' | grep -v id | sed '/^$/d'` )
122         networks=( `neutron net-list | awk -F" " '{print $2}' | grep -v id | sed '/^$/d'` )
123         ports=( `neutron port-list | awk -F" " '{print $2}' | grep -v id | sed '/^$/d'` )
124         routers=( `neutron router-list | awk -F" " '{print $2}' | grep -v id | sed '/^$/d'` )
125
126         #display all elements
127         echo "SUBNETS: ${subnets[@]} "
128         echo "NETWORKS: ${networks[@]} "
129         echo "PORTS: ${ports[@]} "
130         echo "ROUTERS: ${routers[@]} "
131         
132         
133         # get port and subnet for each router
134         for i in "${routers[@]}"
135         do
136                 routerport=( `neutron router-port-list $i | awk -F" " '{print $2}' | grep -v id |  sed '/^$/d' `)
137                 routersnet=( `neutron router-port-list $i | awk -F" " '{print $8}' | grep -v fixed |  sed '/^$/d' | sed 's/,$//' | sed -e 's/^"//'  -e 's/"$//' `)
138         done
139
140         echo "ROUTER PORTS: ${routerport[@]} "
141         echo "ROUTER SUBNET: ${routersnet[@]} "
142         
143         #remove router subnets
144         echo "router-interface-delete"
145         for i in "${routersnet[@]}"
146         do
147                 neutron router-interface-delete ${routers[0]} $i
148         done
149
150         #remove subnets
151         echo "subnet-delete"
152         for i in "${subnets[@]}"
153         do
154                 neutron subnet-delete $i
155         done
156
157         #remove nets
158         echo "net-delete"
159         for i in "${networks[@]}"
160         do
161                 neutron net-delete $i
162         done
163
164         #remove routers
165         echo "router-delete"
166         for i in "${routers[@]}"
167         do
168                 neutron router-delete $i
169         done
170
171         #remove ports
172         echo "port-delete"
173         for i in "${ports[@]}"
174         do
175                 neutron port-delete $i
176         done
177
178         #remove subnets
179         echo "subnet-delete second pass"
180         for i in "${subnets[@]}"
181         do
182                 neutron subnet-delete $i
183         done
184
185 }
186
187 function set_dns {
188         sed -i -e 's/nameserver 10.20.0.2/nameserver $DNS/g' /etc/resolv.conf
189 }
190
191
192 #OUTPUT
193
194 function check {
195         echo $BR_MGMT
196         echo $BR_STORAGE
197         echo $BR_FW_ADMIN
198         echo $BR_EX
199 }
200
201 ### MAIN
202
203
204 set_mode
205 backup_ifcfg
206 get_ips
207 create_ifcfg_br_mgmt
208 create_ifcfg_br_storage
209 create_ifcfg_br_fw_admin
210 if [ $MODE == "0" ]
211 then
212         create_ifcfg_eth0
213 fi
214 allow_challenge
215 clean_ovs
216 check
217 reboot_me
218
219