]>
Commit | Line | Data |
---|---|---|
b69d7cd1 | 1 | #!/bin/sh |
2 | # | |
3 | # Bridge interface setup for LXD | |
4 | # | |
5e23fd35 | 5 | # chkconfig: 345 19 81 |
b69d7cd1 | 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" | |
a89a534c | 28 | exit 1 |
b69d7cd1 | 29 | fi |
30 | ||
31 | is_bridge_up() { | |
21819649 | 32 | ip link show $BRIDGE_DEV 2>/dev/null | grep -q ",UP," |
b69d7cd1 | 33 | } |
34 | ||
35 | start() { | |
a89a534c | 36 | if is_bridge_up; then |
7e883ab4 | 37 | nls "lxd bridge %s is already up" "$BRIDGE_DEV" |
b69d7cd1 | 38 | return |
39 | fi | |
40 | ||
41 | msg_starting $BRIDGE_DEV | |
a89a534c | 42 | busy |
b69d7cd1 | 43 | |
e06ffcb1 | 44 | ip link add dev $BRIDGE_DEV type bridge |
21819649 | 45 | ip addr add $BRIDGE_IPADDR dev $BRIDGE_DEV |
a89a534c | 46 | ip link set up dev $BRIDGE_DEV |
b69d7cd1 | 47 | |
a89a534c | 48 | if is_bridge_up; then |
b69d7cd1 | 49 | ok |
50 | else | |
a89a534c ER |
51 | fail |
52 | fi | |
b69d7cd1 | 53 | } |
54 | ||
55 | stop() { | |
a89a534c | 56 | if ! is_bridge_up; then |
7e883ab4 | 57 | nls "lxd bridge %s is already down" "$BRIDGE_DEV" |
b69d7cd1 | 58 | return |
a89a534c | 59 | fi |
b69d7cd1 | 60 | |
61 | if status --pidfile "/var/run/lxd.pid" lxd lxd >/dev/null; then | |
4c903bcb | 62 | nls "lxd bridge cannot be stopped while lxd daemon is running" |
a89a534c ER |
63 | RETVAL=1 |
64 | return | |
65 | fi | |
b69d7cd1 | 66 | |
67 | msg_stopping $BRIDGE_DEV | |
a89a534c ER |
68 | ip link set down dev $BRIDGE_DEV |
69 | ip link del dev $BRIDGE_DEV | |
b69d7cd1 | 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 | ||
7e883ab4 | 84 | bridge_status() { |
a89a534c | 85 | local st="down" |
21819649 | 86 | RETVAL=1 |
87 | if is_bridge_up; then | |
a89a534c | 88 | st="up" |
21819649 | 89 | RETVAL=0 |
a89a534c | 90 | fi |
7e883ab4 | 91 | nls "lxd bridge %s is %s" "$BRIDGE_DEV" "$st" |
a89a534c ER |
92 | } |
93 | ||
b69d7cd1 | 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) | |
7e883ab4 | 114 | bridge_status |
b69d7cd1 | 115 | ;; |
116 | *) | |
117 | msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" | |
118 | exit 3 | |
119 | esac | |
120 | ||
121 | exit $RETVAL |