summaryrefslogtreecommitdiffstats
path: root/extras/hook-scripts/start/post/S29CTDBsetup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'extras/hook-scripts/start/post/S29CTDBsetup.sh')
-rwxr-xr-x[-rw-r--r--]extras/hook-scripts/start/post/S29CTDBsetup.sh77
1 files changed, 42 insertions, 35 deletions
diff --git a/extras/hook-scripts/start/post/S29CTDBsetup.sh b/extras/hook-scripts/start/post/S29CTDBsetup.sh
index 2567cf8307e..69a0d89a3eb 100644..100755
--- a/extras/hook-scripts/start/post/S29CTDBsetup.sh
+++ b/extras/hook-scripts/start/post/S29CTDBsetup.sh
@@ -1,18 +1,22 @@
#! /bin/bash
-# RHS-2.0 only
+#
# - The script mounts the 'meta-vol' on start 'event' on a known
# directory (eg. /gluster/lock)
-# - Adds the necessary configuration changes for ctdb in smb.conf and
-# restarts smb service.
# - P.S: There are other 'tasks' that need to be done outside this script
# to get CTDB based failover up and running.
-SMB_CONF=/etc/samba/smb.conf
-
CTDB_MNT=/gluster/lock
+# Make sure ping-timeout is not default for CTDB volume
+PING_TIMEOUT_SECS=10
PROGNAME="ctdb"
-OPTSPEC="volname:"
+OPTSPEC="volname:,gd-workdir:,version:,volume-op:,first:"
+HOSTNAME=`hostname`
+MNTOPTS="_netdev,transport=tcp,xlator-option=*client*.ping-timeout=${PING_TIMEOUT_SECS}"
VOL=
+GLUSTERD_WORKDIR=
+VERSION=
+VOLUME_OP=
+FIRST=
# $META is the volume that will be used by CTDB as a shared filesystem.
# It is not desirable to use this volume for storing 'data' as well.
# META is set to 'all' (viz. a keyword and hence not a legal volume name)
@@ -21,7 +25,7 @@ VOL=
META="all"
function parse_args () {
- ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@)
+ ARGS=$(getopt -o '' -l $OPTSPEC -n $PROGNAME -- "$@")
eval set -- "$ARGS"
while true; do
@@ -29,49 +33,52 @@ function parse_args () {
--volname)
shift
VOL=$1
- ;;
-
+ ;;
+ --gd-workdir)
+ shift
+ GLUSTERD_WORKDIR=$1
+ ;;
+ --version)
+ shift
+ VERSION=$1
+ ;;
+ --volume-op)
+ shift
+ VOLUME_OP=$1
+ ;;
+ --first)
+ shift
+ FIRST=$1
+ ;;
*)
- shift
- break
- ;;
-
+ shift
+ break
+ ;;
esac
shift
done
}
-function add_glusterfs_ctdb_options () {
- PAT="Share Definitions"
- GLUSTER_CTDB_CONFIG="# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n"
- exists=`grep "clustering = yes" "$SMB_CONF"`
- if [ "$exists" == "" ]
- then
- sed -i /"$PAT"/i\ "$GLUSTER_CTDB_CONFIG" "$SMB_CONF"
- fi
-}
-
function add_fstab_entry () {
volname=$1
mntpt=$2
- mntent="`hostname`:/$volname $mntpt glusterfs defaults,transport=tcp 0 0"
- exists=`grep "$mntent" /etc/fstab`
+ mntopts="${MNTOPTS}"
+
+ mntent="${HOSTNAME}:/${volname} ${mntpt} glusterfs ${mntopts} 0 0"
+ exists=`grep "${mntpt}" /etc/fstab`
if [ "$exists" == "" ]
then
- echo "$mntent" >> /etc/fstab
+ echo "${mntent}" >> /etc/fstab
fi
}
-parse_args $@
+parse_args "$@"
if [ "$META" = "$VOL" ]
then
- #expects ctdb service to manage smb
- service smb stop
- add_glusterfs_ctdb_options
- mkdir -p $CTDB_MNT
- sleep 5
- mount -t glusterfs `hostname`:$VOL "$CTDB_MNT" && \
- add_fstab_entry $VOL $CTDB_MNT
- chkconfig ctdb on
+ mkdir -p $CTDB_MNT
+ sleep 5
+ mount -t glusterfs -o${MNTOPTS} ${HOSTNAME}:/$VOL "$CTDB_MNT" && \
+ add_fstab_entry $VOL $CTDB_MNT
+ chkconfig ctdb on
fi