split out the basic interface handling, and run event scripts in a deterministic...
[sahlberg/ctdb.git] / config / events.d / 50.samba
1 #!/bin/sh
2 # ctdb event script for Samba
3
4 PATH=/bin:/usr/bin:$PATH
5
6 . /etc/ctdb/functions
7 loadconfig ctdb
8
9 cmd="$1"
10 shift
11
12 [ "$CTDB_MANAGES_SAMBA" = "yes" ] || exit 0
13
14 case $cmd in 
15      startup)
16         # wait for all shared directories to become available
17         smb_dirs=`testparm -st 2> /dev/null | egrep '^\s*path = '  | cut -d= -f2`
18         ctdb_wait_directories "Samba" $smb_dirs 
19
20         # start Samba service
21         service smb start
22         service winbind start
23
24         # wait for the Samba tcp ports to become available
25         smb_ports=`testparm -stv 2> /dev/null | egrep '\s*smb ports =' | cut -d= -f2`
26         ctdb_wait_tcp_ports "Samba" $smb_ports
27         ;;
28         
29      takeip)
30         # nothing special for Samba
31         ;;
32
33      releaseip)
34         # nothing special for Samba
35         ;;
36
37      recovered)
38         # nothing special for Samba
39         exit 0
40         ;;
41
42      shutdown)
43         # shutdown Samba when ctdb goes down
44         service smb stop
45         service winbind stop
46         ;;
47 esac
48
49 # ignore unknown commands
50 exit 0