Add basic files
[snf-network] / disconnect-network
1 #!/bin/bash
2
3 DIR=/var/lib/snf-network
4 NETWORK=$1
5 NODEGROUP=$2
6
7 source /etc/default/snf-network
8
9 if [ $# -ne 2 ]; then
10   echo "$0 <network> <nodegroup>"
11   exit 1
12 fi
13
14 NETWORK_FILE=$DIR/networks/$NETWORK
15 NODEGROUP_FILE=$DIR/nodegoups/$NODEGROUP
16 INTERFACES=$DIR/interfaces/$NETWORK-$NODEGROUP
17
18 read x VLAN BRIDGE < $INTERFACES
19
20 VLAN_ID=${VLAN#*:}
21
22 source $NETWORK_FILE
23 source $NODEGROUP_FILE
24
25 if [ $MODE == "routed" ]; then 
26   if [ $TYPE == "public" ]; then
27     APR_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}')
28     ip rule del iif $VLAN table rt_$NAME
29
30     ip route del $SUBNET dev $VLAN table main 
31
32     ip route del $SUBNET dev $VLAN table rt_$NAME
33     ip route del default via $GATEWAY dev $VLAN table rt_$NAME
34
35     arptables -D OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s  $ARP_IP 
36     ifdown -i $INTERFACES $VLAN
37     rm $INTERFACES
38   fi
39 fi
40
41
42
43 if [ $MODE == "bridged" ]; then
44   if [ $TYPE == "private" ]; then
45     VLAN_IDS="$VLAN_ID $PRIVATE_VLAN_IDS"
46     sed -i 's/PRIVATE_VLAN_IDS/ s/=.*/='"VLAN_IDS"'/' $NODEGROUP_FILE
47   fi
48
49   ip route del $SUBNET dev $BRIDGE table main
50
51   ip route del $SUBNET dev $BRIDGE table rt_$NETWORK
52   if [ ! -z $GATEWAY ]; then
53     ip route del default via $GATEWAY dev $BRIDGE table rt_$NETWORK
54     if [ $TYPE == "private" ]; then 
55       if [ ! -z $ROUTER ]; then 
56         if [ $(hostname) == $ROUTER ]; then
57           NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}')
58           ip addr del $GATEWAY/$NETMASK dev $LINK 
59           iptables -t nat -D POSTROUTING -s $SUBNET \! -d $SUBNET -j MASQUERADE
60         fi  
61       fi
62     fi
63   fi
64   ifdown -i $INTERFACES $BRIDGE
65   rm $INTERFACES
66 fi