dont print a lot of log information about shutting down vsftpd
[metze/ctdb/wip.git] / config / events.d / 40.vsftpd
index 6f48e37b32a4a030d8c46abd263aecc295f420ed..72190db2a64e11a1110dc5f167475b2ede317a92 100755 (executable)
@@ -1,44 +1,62 @@
 #!/bin/sh
 # event strict to manage vsftpd in a cluster environment
 
-. /etc/ctdb/functions
-loadconfig vsftpd
+. $CTDB_BASE/functions
 
-[ "$CTDB_MANAGES_VSFTPD" = "yes" ] || exit 0
+service_name="vsftpd"
+# make sure the service is stopped first
+service_start="service $service_name stop > /dev/null 2>&1 ; service $service_name start"
+service_stop="service $service_name stop > /dev/null 2>&1"
+service_reconfigure="service $service_name restart"
+service_fail_limit=2
+service_tcp_ports=21
 
-cmd="$1"
-shift
+loadconfig
 
-case $cmd in 
-     startup)
-       /bin/mkdir -p /etc/ctdb/state/vsftpd
+ctdb_start_stop_service
 
-       # make sure the service is stopped first
-       service vsftpd stop > /dev/null 2>&1
-       service vsftpd start
-       ;;
+is_ctdb_managed_service || exit 0
 
-     shutdown)
-       service vsftpd stop
+case "$1" in 
+    startup)
+       ctdb_service_start
        ;;
 
-     takeip)
-       echo "restart" >> /etc/ctdb/state/vsftpd/restart
+    shutdown)
+       ctdb_service_stop
        ;;
 
-     releaseip)
-       echo "restart" >> /etc/ctdb/state/vsftpd/restart
+    takeip|releaseip)
+       ctdb_service_set_reconfigure
        ;;
 
-     recovered)
+    recovered)
        # if we have taken or released any ips we must 
        # restart vsftpd to ensure that all tcp connections are reset
-       [ -f /etc/ctdb/state/vsftpd/restart ] && {
-               service vsftpd stop > /dev/null 2>&1
-               service vsftpd start
-       } >/dev/null 2>&1
+       if ctdb_service_needs_reconfigure ; then
+           ctdb_service_reconfigure
+       fi
+       ;;
+
+    monitor)
+       if ctdb_service_needs_reconfigure ; then
+           ctdb_service_reconfigure
+           exit 0
+       fi
+
+       if [ -n "$service_tcp_ports" ] ; then
+           if ctdb_check_tcp_ports $service_tcp_ports ; then
+               ctdb_counter_init
+           else
+               ctdb_counter_incr
+               ctdb_check_counter_limit
+               exit 0 # only count 1 failure per monitor event
+           fi
+       fi      
+       ;;
 
-       /bin/rm -f /etc/ctdb/state/vsftpd/restart
+    *)
+       ctdb_standard_event_handler "$@"
        ;;
 esac