summaryrefslogtreecommitdiffstats
path: root/genome-bridge/genome-bridge
blob: 24a3905c19f44f4e18af09b12479c5608d5e2e19 (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
#!/bin/bash
#
# genome-bridge:        Network bridge for Genome virtualization 
#
# chkconfig: - 15 80 
#
# description:     Network bridge for Genome virtualization.
#
#                   
#

# Source function library.
. /etc/init.d/functions

BRIDGE="genomebr0"
GATEWAY_DEVICE=`ip route | grep ^default | cut -f5 -d" "`

status() {
    /sbin/ifconfig $BRIDGE &> /dev/null
}

case "$1" in
    start)
        status

        if [ $? == 0 ]; then
            echo "Bridge is already up"
            exit 1
        fi

	echo -n $"Starting genome-bridge: "
	touch /var/lock/subsys/genome-bridge
	/usr/bin/pkill -f "dhclient $GATEWAY_DEVICE"
	/usr/bin/pkill -f "dhclient $BRIDGE"
	/usr/sbin/brctl addbr $BRIDGE
	/sbin/ifconfig $GATEWAY_DEVICE 0.0.0.0 promisc up
	/usr/sbin/brctl addif $BRIDGE $GATEWAY_DEVICE 
	/sbin/dhclient $BRIDGE #TODO: support static IPs
        RETVAL=$?
        ;;
    stop)
	echo -n $"Stopping genome-bridge: "
	/sbin/ifconfig $BRIDGE down
	/sbin/service network restart
	/usr/sbin/brctl delbr $BRIDGE
	RETVAL=$?
	rm -rf /var/lock/subsys/genome-bridge
        ;;
    restart|reload)
	$0 stop
	$0 start
        ;;
    status)
        status
	RETVAL=$?
	if [ $RETVAL == 0 ]; then
		echo "Bridge is up"
        else
		echo "Bridge is down"
	fi
	exit $RETVAL
        ;;
 *)
   echo $"Usage: $0 {start|stop|status|restart|reload}"
   RETVAL=1
esac

exit $RETVAL