]> git.pld-linux.org Git - packages/lxd.git/blob - lxdbr.init
b07e748e9b8c2c0e157fc33d07ba110e51521753
[packages/lxd.git] / lxdbr.init
1 #!/bin/sh
2 #
3 # Bridge interface setup for LXD
4 #
5 # chkconfig:    345 19 81
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 link show $BRIDGE_DEV 2>/dev/null | grep -q ",UP"
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 addr 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         RETVAL=1
87         if is_bridge_up; then
88                 st="up"
89                 RETVAL=0
90         fi
91         nls "lxd bridge %s is %s" "$BRIDGE_DEV" "$st"
92 }
93
94 RETVAL=0
95 # See how we were called.
96 case "$1" in
97   start)
98         start
99         ;;
100   stop)
101         stop
102         ;;
103   restart)
104         stop
105         start
106         ;;
107   try-restart)
108         condrestart 0
109         ;;
110   force-reload)
111         condrestart 7
112         ;;
113   status)
114         bridge_status
115         ;;
116   *)
117         msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
118         exit 3
119 esac
120
121 exit $RETVAL
This page took 0.033713 seconds and 2 git commands to generate.