[SCM] CTDB repository - branch master updated - ctdb-1.0.114-303-g516423c

Ronnie Sahlberg sahlberg at samba.org
Thu Sep 2 20:48:12 MDT 2010


The branch, master has been updated
       via  516423c25afa9861d9988096efa8a4a2b12b31b1 (commit)
      from  f8642d0438c6bbb34a72c25d6a904b626e247410 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 516423c25afa9861d9988096efa8a4a2b12b31b1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 3 12:35:25 2010 +1000

    Dont store temporary runtime data in $CTDB_BASE/state
    since that will usually be /etc/ctdb/state and storing this under /etc is just
    wrong.
    
    Add a new variable CTDB_VARDIR that defaults to /var/ctdb and store the data there instead.

-----------------------------------------------------------------------

Summary of changes:
 config/ctdb.init                  |    4 +++
 config/events.d/00.ctdb           |   16 +++++++-------
 config/events.d/13.per_ip_routing |    2 +-
 config/events.d/20.multipathd     |    4 +-
 config/events.d/50.samba          |   14 ++++++------
 config/events.d/60.nfs            |   10 ++++----
 config/events.d/62.cnfs           |    2 +-
 config/events.d/README            |    4 +-
 config/functions                  |   14 ++++++------
 config/statd-callout              |   42 ++++++++++++++++++++----------------
 10 files changed, 60 insertions(+), 52 deletions(-)


Changeset truncated at 500 lines:

diff --git a/config/ctdb.init b/config/ctdb.init
index fc66ab2..25e158f 100755
--- a/config/ctdb.init
+++ b/config/ctdb.init
@@ -39,6 +39,10 @@ unset TMPDIR
     export CTDB_BASE="/etc/ctdb"
 }
 
+[ -z "$CTDB_VARDIR" ] && {
+    export CTDB_VARDIR="/var/ctdb"
+}
+
 . $CTDB_BASE/functions
 loadconfig network
 loadconfig ctdb
diff --git a/config/events.d/00.ctdb b/config/events.d/00.ctdb
index 7e9e386..8ff6488 100755
--- a/config/events.d/00.ctdb
+++ b/config/events.d/00.ctdb
@@ -15,10 +15,10 @@ loadconfig
 case "$1" in 
      init)
         # make sure we have a blank state directory for the scripts to work with
-	/bin/rm -rf $CTDB_BASE/state
-	/bin/mkdir -p $CTDB_BASE/state || {
+	/bin/rm -rf $CTDB_VARDIR/state
+	/bin/mkdir -p $CTDB_VARDIR/state || {
 	    ret=$?
-	    echo "/bin/mkdir -p $CTDB_BASE/state - failed - $ret"
+	    echo "/bin/mkdir -p $CTDB_VARDIR/state - failed - $ret"
 	    exit $ret
 	}
 	;;
@@ -37,15 +37,15 @@ case "$1" in
     startup)
 	# Pull optional ctdb configuration data out of config.tdb
 	PUBLICADDRESSESKEY='public-addresses:node#'`ctdb -t 1 xpnn|sed -e "s/.*://"`
-	rm -f $CTDB_BASE/state/public_addresses
-	ctdb pfetch config.tdb $PUBLICADDRESSESKEY $CTDB_BASE/state/public_addresses
+	rm -f $CTDB_VARDIR/state/public_addresses
+	ctdb pfetch config.tdb $PUBLICADDRESSESKEY $CTDB_VARDIR/state/public_addresses
 	[ "$?" = "0" ] && [ `stat --format="%s" /etc/ctdb/state/public_addresses` != "0" ] && [ ! -z "$CTDB_PUBLIC_ADDRESSES" ] && {
-		diff $CTDB_BASE/state/public_addresses $CTDB_PUBLIC_ADDRESSES >/dev/null 2>/dev/null
+		diff $CTDB_VARDIR/state/public_addresses $CTDB_PUBLIC_ADDRESSES >/dev/null 2>/dev/null
 		[ $? = "0" ] || {
 			echo CTDB public address configuration had been updated.
 			echo Extracting new configuration from database.
-			diff $CTDB_BASE/state/public_addresses $CTDB_PUBLIC_ADDRESSES
-			cp $CTDB_BASE/state/public_addresses $CTDB_PUBLIC_ADDRESSES
+			diff $CTDB_VARDIR/state/public_addresses $CTDB_PUBLIC_ADDRESSES
+			cp $CTDB_VARDIR/state/public_addresses $CTDB_PUBLIC_ADDRESSES
 			echo Restarting CTDB
 			service ctdb restart &
 		}
diff --git a/config/events.d/13.per_ip_routing b/config/events.d/13.per_ip_routing
index 6b51b05..c734bbc 100755
--- a/config/events.d/13.per_ip_routing
+++ b/config/events.d/13.per_ip_routing
@@ -4,7 +4,7 @@
 loadconfig
 
 [ -z "$CTDB_PER_IP_ROUTING_STATE" ] && {
-	CTDB_PER_IP_ROUTING_STATE="$CTDB_BASE/state/per_ip_routing"
+	CTDB_PER_IP_ROUTING_STATE="$CTDB_VARDIR/state/per_ip_routing"
 }
 
 AUTO_LINK_LOCAL="no"
diff --git a/config/events.d/20.multipathd b/config/events.d/20.multipathd
index 091a773..2f484a4 100644
--- a/config/events.d/20.multipathd
+++ b/config/events.d/20.multipathd
@@ -16,7 +16,7 @@ loadconfig
 	exit 0
 }
 
-MPFAILURE=$CTDB_BASE/state/multipathd/failure
+MPFAILURE=$CTDB_VARDIR/state/multipathd/failure
 
 multipathd_check_background()
 {
@@ -78,7 +78,7 @@ case "$1" in
     startup)
 	# create a state directory to keep/track the multipath device
 	# state
-	/bin/mkdir -p $CTDB_BASE/state/multipathd
+	/bin/mkdir -p $CTDB_VARDIR/state/multipathd
 	exit 0
 	;;
 
diff --git a/config/events.d/50.samba b/config/events.d/50.samba
index 23dd060..047f9e0 100755
--- a/config/events.d/50.samba
+++ b/config/events.d/50.samba
@@ -34,7 +34,7 @@ loadconfig
 
 start_samba() {
 	# create the state directory for samba
-	/bin/mkdir -p $CTDB_BASE/state/samba
+	/bin/mkdir -p $CTDB_VARDIR/state/samba
 
 	# make sure samba is not already started
 	[ "$CTDB_MANAGES_SAMBA" = "yes" ] && {
@@ -101,13 +101,13 @@ stop_samba() {
 }
 
 # we keep a cached copy of smb.conf here
-smbconf_cache="$CTDB_BASE/state/samba/smb.conf.cache"
+smbconf_cache="$CTDB_VARDIR/state/samba/smb.conf.cache"
 
 
 #############################################
 # update the smb.conf cache in the foreground
 testparm_foreground_update() {
-    mkdir -p "$CTDB_BASE/state/samba" || exit 1
+    mkdir -p "$CTDB_VARDIR/state/samba" || exit 1
     testparm -s 2> /dev/null | egrep -v 'registry.shares.=|include.=' > "$smbconf_cache"
 }
 
@@ -215,13 +215,13 @@ case "$1" in
      monitor)
 	# Create a dummy file to track when we need to do periodic cleanup
 	# of samba databases
-	[ -f $CTDB_BASE/state/samba/periodic_cleanup ] || {
-		touch $CTDB_BASE/state/samba/periodic_cleanup
+	[ -f $CTDB_VARDIR/state/samba/periodic_cleanup ] || {
+		touch $CTDB_VARDIR/state/samba/periodic_cleanup
 	}
-	[ `/usr/bin/find $CTDB_BASE/state/samba/periodic_cleanup -mmin +$SAMBA_CLEANUP_PERIOD | wc -l` -eq 1 ] && {
+	[ `/usr/bin/find $CTDB_VARDIR/state/samba/periodic_cleanup -mmin +$SAMBA_CLEANUP_PERIOD | wc -l` -eq 1 ] && {
 		# Cleanup the databases
 	    	periodic_cleanup
-		touch $CTDB_BASE/state/samba/periodic_cleanup
+		touch $CTDB_VARDIR/state/samba/periodic_cleanup
 	}
 
 	[ "$CTDB_MANAGES_SAMBA" = "yes" ] && {
diff --git a/config/events.d/60.nfs b/config/events.d/60.nfs
index 35f96c2..60de41e 100755
--- a/config/events.d/60.nfs
+++ b/config/events.d/60.nfs
@@ -2,8 +2,8 @@
 # script to manage nfs in a clustered environment
 
 start_nfs() {
-	/bin/mkdir -p $CTDB_BASE/state/nfs
-	/bin/mkdir -p $CTDB_BASE/state/statd/ip
+	/bin/mkdir -p $CTDB_VARDIR/state/nfs
+	/bin/mkdir -p $CTDB_VARDIR/state/statd/ip
 	startstop_nfs stop
 	startstop_nfs start
 	echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
@@ -25,7 +25,7 @@ case "$1" in
 	;;
      startup)
 	ctdb_service_start
-	touch $CTDB_BASE/state/statd/update-trigger
+	touch $CTDB_VARDIR/state/statd/update-trigger
 	;;
 
      shutdown)
@@ -103,11 +103,11 @@ case "$1" in
 
 	# once every 60 seconds, update the statd state database for which
 	# clients need notifications
-	LAST_UPDATE=`stat --printf="%Y" $CTDB_BASE/state/statd/update-trigger`
+	LAST_UPDATE=`stat --printf="%Y" $CTDB_VARDIR/state/statd/update-trigger`
 	CURRENT_TIME=`date +"%s"`
 	expr "$CURRENT_TIME" ">" "(" "$LAST_UPDATE" "+" "60" ")" >/dev/null 2>/dev/null
 	[ $? = "0" ] && {
-	    touch $CTDB_BASE/state/statd/update-trigger
+	    touch $CTDB_VARDIR/state/statd/update-trigger
 	    $CTDB_BASE/statd-callout updatelocal &
 	    $CTDB_BASE/statd-callout updateremote &
 	}
diff --git a/config/events.d/62.cnfs b/config/events.d/62.cnfs
index 2577675..e0af722 100755
--- a/config/events.d/62.cnfs
+++ b/config/events.d/62.cnfs
@@ -5,7 +5,7 @@
 
 loadconfig
 
-STATEDIR=$CTDB_BASE/state/gpfs
+STATEDIR=$CTDB_VARDIR/state/gpfs
 
 
 # filesystems needed by nfs
diff --git a/config/events.d/README b/config/events.d/README
index ef345b5..c05a1fd 100644
--- a/config/events.d/README
+++ b/config/events.d/README
@@ -29,7 +29,7 @@ init
 	and prepare the basic setup.
 	At this stage 'ctdb' commands won't work.
 
-	Example: 00.ctdb cleans up $CTDB_BASE/state
+	Example: 00.ctdb cleans up $CTDB_VARDIR/state
 
 setup
 	This event does not take any additional arguments.
@@ -37,7 +37,7 @@ setup
 	This event is used to do some cleanup work from earlier runs
 	and prepare the basic setup.
 
-	Example: 00.ctdb cleans up $CTDB_BASE/state
+	Example: 00.ctdb cleans up $CTDB_VARDIR/state
 
 startup
 	This event does not take any additional arguments.
diff --git a/config/functions b/config/functions
index a20cadf..9771905 100755
--- a/config/functions
+++ b/config/functions
@@ -231,7 +231,7 @@ kill_tcp_connections() {
     _failed=0
 
     _killcount=0
-    connfile="$CTDB_BASE/state/connections.$_IP"
+    connfile="$CTDB_VARDIR/state/connections.$_IP"
     netstat -tn |egrep "^tcp.*[[:space:]]+$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' > $connfile
     netstat -tn |egrep "^tcp.*[[:space:]]+::ffff:$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' >> $connfile
 
@@ -281,7 +281,7 @@ kill_tcp_connections_local_only() {
     _failed=0
 
     _killcount=0
-    connfile="$CTDB_BASE/state/connections.$_IP"
+    connfile="$CTDB_VARDIR/state/connections.$_IP"
     netstat -tn |egrep "^tcp.*[[:space:]]+$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' > $connfile
     netstat -tn |egrep "^tcp.*[[:space:]]+::ffff:$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' >> $connfile
 
@@ -323,7 +323,7 @@ tickle_tcp_connections() {
     _failed=0
 
     _killcount=0
-    connfile="$CTDB_BASE/state/connections.$_IP"
+    connfile="$CTDB_VARDIR/state/connections.$_IP"
     netstat -tn |egrep "^tcp.*[[:space:]]+$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' > $connfile
     netstat -tn |egrep "^tcp.*[[:space:]]+::ffff:$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' >> $connfile
 
@@ -453,7 +453,7 @@ add_ip_to_iface()
 	local _iface=$1
 	local _ip=$2
 	local _maskbits=$3
-	local _state_dir="$CTDB_BASE/state/interface_modify"
+	local _state_dir="$CTDB_VARDIR/state/interface_modify"
 	local _lockfile="$_state_dir/$_iface.flock"
 	local _readd_base="$_state_dir/$_iface.readd.d"
 
@@ -476,7 +476,7 @@ delete_ip_from_iface()
 	local _iface=$1
 	local _ip=$2
 	local _maskbits=$3
-	local _state_dir="$CTDB_BASE/state/interface_modify"
+	local _state_dir="$CTDB_VARDIR/state/interface_modify"
 	local _lockfile="$_state_dir/$_iface.flock"
 	local _readd_base="$_state_dir/$_iface.readd.d"
 
@@ -500,7 +500,7 @@ setup_iface_ip_readd_script()
 	local _ip=$2
 	local _maskbits=$3
 	local _readd_script=$4
-	local _state_dir="$CTDB_BASE/state/interface_modify"
+	local _state_dir="$CTDB_VARDIR/state/interface_modify"
 	local _lockfile="$_state_dir/$_iface.flock"
 	local _readd_base="$_state_dir/$_iface.readd.d"
 
@@ -779,7 +779,7 @@ iptables()
 ########################################################
 
 # Temporary directory for tickles.
-tickledir="$CTDB_BASE/state/tickles"
+tickledir="$CTDB_VARDIR/state/tickles"
 mkdir -p "$tickledir"
 
 update_tickles ()
diff --git a/config/statd-callout b/config/statd-callout
index 9808cb9..39be9d3 100755
--- a/config/statd-callout
+++ b/config/statd-callout
@@ -9,6 +9,10 @@
     export CTDB_BASE="/etc/ctdb"
 }
 
+[ -z "$CTDB_VARDIR" ] && {
+    export CTDB_VARDIR="/var/ctdb"
+}
+
 . $CTDB_BASE/functions
 loadconfig ctdb
 loadconfig nfs
@@ -30,8 +34,8 @@ case "$1" in
 			continue
 		} 
 		IP=`echo $LINE | cut -f2 -d:`
-		/bin/mkdir -p $CTDB_BASE/state/statd/ip/$IP
-		touch $CTDB_BASE/state/statd/ip/$IP/$2
+		/bin/mkdir -p $CTDB_VARDIR/state/statd/ip/$IP
+		touch $CTDB_VARDIR/state/statd/ip/$IP/$2
 	done
 	;;
   del-client)
@@ -45,8 +49,8 @@ case "$1" in
 			continue
 		} 
 		IP=`echo $LINE | cut -f2 -d:`
-		mkdir -p $CTDB_BASE/state/statd/ip/$IP
-		/bin/rm -f $CTDB_BASE/state/statd/ip/$IP/$2
+		mkdir -p $CTDB_VARDIR/state/statd/ip/$IP
+		/bin/rm -f $CTDB_VARDIR/state/statd/ip/$IP/$2
 	done
 	;;
   updatelocal)
@@ -59,25 +63,25 @@ case "$1" in
 		} 
 		IP=`echo $LINE | cut -f2 -d:`
 
-		mkdir -p $CTDB_BASE/state/statd/ip/$IP
+		mkdir -p $CTDB_VARDIR/state/statd/ip/$IP
 
-		rm -f $CTDB_BASE/state/statd/ip/$IP.tar
-		tar cfP $CTDB_BASE/state/statd/ip/$IP.tar $CTDB_BASE/state/statd/ip/$IP
+		rm -f $CTDB_VARDIR/state/statd/ip/$IP.tar
+		tar cfP $CTDB_VARDIR/state/statd/ip/$IP.tar $CTDB_VARDIR/state/statd/ip/$IP
 
-		rm -f $CTDB_BASE/state/statd/ip/$IP.rec
-		ctdb pfetch ctdb.tdb statd-state:$IP $CTDB_BASE/state/statd/ip/$IP.rec 2>/dev/null
+		rm -f $CTDB_VARDIR/state/statd/ip/$IP.rec
+		ctdb pfetch ctdb.tdb statd-state:$IP $CTDB_VARDIR/state/statd/ip/$IP.rec 2>/dev/null
 		[ "$?" = "0" ] || {
 			# something went wrong,  try storing this data
 			echo No record. Store STATD state data for $IP
-			ctdb pstore ctdb.tdb statd-state:$IP $CTDB_BASE/state/statd/ip/$IP.tar 2>/dev/null
+			ctdb pstore ctdb.tdb statd-state:$IP $CTDB_VARDIR/state/statd/ip/$IP.tar 2>/dev/null
 			continue
 		}
 
-		cmp $CTDB_BASE/state/statd/ip/$IP.tar $CTDB_BASE/state/statd/ip/$IP.rec >/dev/null 2>/dev/null
+		cmp $CTDB_VARDIR/state/statd/ip/$IP.tar $CTDB_VARDIR/state/statd/ip/$IP.rec >/dev/null 2>/dev/null
 		[ "$?" = "0" ] || {
 			# something went wrong,  try storing this data
 			echo Updated record. Store STATD state data for $IP
-			ctdb pstore ctdb.tdb statd-state:$IP $CTDB_BASE/state/statd/ip/$IP.tar 2>/dev/null
+			ctdb pstore ctdb.tdb statd-state:$IP $CTDB_VARDIR/state/statd/ip/$IP.tar 2>/dev/null
 			continue
 		}
 	done
@@ -93,16 +97,16 @@ case "$1" in
 		} 
 		IP=`echo $LINE | cut -f2 -d:`
 
-		mkdir -p $CTDB_BASE/state/statd/ip/$IP
+		mkdir -p $CTDB_VARDIR/state/statd/ip/$IP
 
-		rm -f $CTDB_BASE/state/statd/ip/$IP.rec
-		ctdb pfetch ctdb.tdb statd-state:$IP $CTDB_BASE/state/statd/ip/$IP.rec 2>/dev/null
+		rm -f $CTDB_VARDIR/state/statd/ip/$IP.rec
+		ctdb pfetch ctdb.tdb statd-state:$IP $CTDB_VARDIR/state/statd/ip/$IP.rec 2>/dev/null
 		[ "$?" = "0" ] || {
 			continue
 		}
 
-		rm -f $CTDB_BASE/state/statd/ip/$IP/*
-		tar xfP $CTDB_BASE/state/statd/ip/$IP.rec
+		rm -f $CTDB_VARDIR/state/statd/ip/$IP/*
+		tar xfP $CTDB_VARDIR/state/statd/ip/$IP.rec
 	done
 	;;
 
@@ -181,8 +185,8 @@ case "$1" in
 		} 
 		IP=`echo $LINE | cut -f2 -d:`
 
-		ls $CTDB_BASE/state/statd/ip/$IP | while read CLIENT; do
-			rm $CTDB_BASE/state/statd/ip/$IP/$CLIENT
+		ls $CTDB_VARDIR/state/statd/ip/$IP | while read CLIENT; do
+			rm $CTDB_VARDIR/state/statd/ip/$IP/$CLIENT
 			/usr/bin/smnotify --client=$CLIENT --ip=$IP --server=$ip --stateval=$STATE
 			/usr/bin/smnotify --client=$CLIENT --ip=$IP --server=$NFS_HOSTNAME --stateval=$STATE
 			STATE=`expr "$STATE" "+" "1"`


-- 
CTDB repository


More information about the samba-cvs mailing list