]> git.pld-linux.org Git - packages/lxd.git/blob - lxdbr.init
be332a2f70ac08b5c5aaaf9d12f7353a33ca3fef
[packages/lxd.git] / lxdbr.init
1 #!/bin/sh
2 #
3 # Bridge interface setup for LXD
4 #
5 # chkconfig:    345 21 79
6 #
7
8 # Source function library
9 . /etc/rc.d/init.d/functions
10
11 # Get network config
12 . /etc/sysconfig/network
13
14 # Check that networking is up.
15 if is_yes "${NETWORKING}"; then
16         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
17                 msg_network_down "lxdbr"
18                 exit 1
19         fi
20 else
21         exit 0
22 fi
23
24 [ -f /etc/sysconfig/lxd ] && . /etc/sysconfig/lxd
25
26 if [ -z "$BRIDGE_DEV" -o -z "$BRIDGE_IPADDR" ]; then
27         nls "Please configure BRIDGE_IPADDR in /etc/sysconfig/lxd"
28         exit 1
29 fi
30
31 is_bridge_up() {
32         ip addr show $BRIDGE_DEV 2>/dev/null | grep -q $BRIDGE_IPADDR
33 }
34
35 start() {
36         if is_bridge_up; then
37                 nls "lxd bridge %s is already up" "$BRIDGE_DEV"
38                 return
39         fi
40
41         msg_starting $BRIDGE_DEV
42         busy
43
44         ip link add dev $BRIDGE_DEV type bridge
45         ip a add $BRIDGE_IPADDR dev $BRIDGE_DEV
46         ip link set up dev $BRIDGE_DEV
47
48         if is_bridge_up; then
49                 ok
50         else
51                 fail
52         fi
53 }
54
55 stop() {
56         if ! is_bridge_up; then
57                 nls "lxd bridge %s is already down" "$BRIDGE_DEV"
58                 return
59         fi
60
61         if status --pidfile "/var/run/lxd.pid" lxd lxd >/dev/null; then
62                 nls "lxd bridge cannot be stopped while lxd daemon is running"
63                 RETVAL=1
64                 return
65         fi
66
67         msg_stopping $BRIDGE_DEV
68         ip link set down dev $BRIDGE_DEV
69         ip link del dev $BRIDGE_DEV
70         ok
71 }
72
73 condrestart() {
74         if ! is_bridge_up; then
75                 nls "lxd bridge %s is down" $BRIDGE_DEV
76                 RETVAL=$1
77                 return
78         fi
79
80         stop
81         start
82 }
83
84 bridge_status() {
85         local st="down"
86         if ip link show $BRIDGE_DEV >/dev/null; then
87                 st="up"
88                 RETVAL=1
89         fi
90         nls "lxd bridge %s is %s" "$BRIDGE_DEV" "$st"
91 }
92
93 RETVAL=0
94 # See how we were called.
95 case "$1" in
96   start)
97         start
98         ;;
99   stop)
100         stop
101         ;;
102   restart)
103         stop
104         start
105         ;;
106   try-restart)
107         condrestart 0
108         ;;
109   force-reload)
110         condrestart 7
111         ;;
112   status)
113         bridge_status
114         ;;
115   *)
116         msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
117         exit 3
118 esac
119
120 exit $RETVAL
This page took 0.036118 seconds and 2 git commands to generate.