------------------------------------------------------------
revno: 411
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Andrew Tridgell <[EMAIL PROTECTED]>
branch nick: tridge
timestamp: Fri 2007-06-01 13:50:18 +1000
message:
  added CTDB_WAIT_DIRECTORIES support
modified:
  packaging/RHEL/setup/ctdb.sysconfig 
ctdb.sysconfig-20070527204758-biuh7znabuwan3zn-7
  tools/events                   events-20070529030121-04fjh63cxfh8v1pj-1
=== modified file 'packaging/RHEL/setup/ctdb.sysconfig'
--- a/packaging/RHEL/setup/ctdb.sysconfig       2007-05-31 01:09:45 +0000
+++ b/packaging/RHEL/setup/ctdb.sysconfig       2007-06-01 03:50:18 +0000
@@ -47,6 +47,11 @@
 # the default is not to wait for any local services
 # CTDB_WAIT_TCP_PORTS="445 139"
 
+# use this to specify any local directories to wait on before starting
+# ctdb. You should list any critical Samba or NFS shared directories 
+# the default is not to wait for any local directories
+# CTDB_WAIT_DIRECTORIES="/some/directory"
+
 # the shared directory where you want to put statd information on
 # which clients to notify on a NFS restart
 # there is no default

=== modified file 'tools/events'
--- a/tools/events      2007-06-01 03:26:14 +0000
+++ b/tools/events      2007-06-01 03:50:18 +0000
@@ -8,10 +8,10 @@
 
 case $cmd in 
      startup)
-       # wait for local services to come up
+       # wait for local services to come up.
        [ -z "$CTDB_WAIT_TCP_PORTS" ] || {
          all_ok=0
-         echo "Waiting for tcp services on $CTDB_WAIT_TCP_PORTS to come up"
+         echo "Waiting for local tcp ports $CTDB_WAIT_TCP_PORTS"
          while [ $all_ok -eq 0 ]; do
                  all_ok=1
                  for p in $CTDB_WAIT_TCP_PORTS; do
@@ -23,7 +23,24 @@
                        exit 1
                  }
           done
-         echo "Local tcp services on $CTDB_WAIT_TCP_PORTS are up"
+         echo "Local tcp services are up"
+       }
+       # wait for local directories to becomes available (could be slow to 
mount)
+       [ -z "$CTDB_WAIT_DIRECTORIES" ] || {
+         all_ok=0
+         echo "Waiting for local directories $CTDB_WAIT_DIRECTORIES"
+         while [ $all_ok -eq 0 ]; do
+                 all_ok=1
+                 for d in $CTDB_WAIT_DIRECTORIES; do
+                     [ -d $d ] || all_ok=0
+                 done
+                 [ $all_ok -eq 1 ] || sleep 1
+                 /usr/bin/ctdb status > /dev/null 2>&1 || {
+                       echo "ctdb daemon has died. Exiting event startup"
+                       exit 1
+                 }
+          done
+         echo "Local directories are available"
        }
        exit 0; 
        ;;

Reply via email to