blob: 0b6e50ead0d78fe2c4b5b375746edf85d0e540d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#! /bin/bash
#non-portable - RHS-2.0 only
SMB_CONF=/etc/samba/smb.conf
CTDB_MNT=/gluster/lock
PROGNAME="ctdb"
OPTSPEC="volname:"
VOL=
# $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)
# to prevent the script from running for volumes it was not intended.
# User needs to set META to the volume that serves CTDB lockfile.
META="all"
function sighup_samba () {
pid=`cat /var/run/smbd.pid`
if [ "$pid" != "" ]
then
kill -HUP $pid;
else
/etc/init.d/smb start
fi
}
function parse_args () {
ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@)
eval set -- "$ARGS"
while true; do
case $1 in
--volname)
shift
VOL=$1
;;
*)
shift
break
;;
esac
shift
done
}
function remove_ctdb_options () {
IFS=$'\n'
GLUSTER_CTDB_CONFIG=$'# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n'
for line in $GLUSTER_CTDB_CONFIG
do
sed -i /"$line"/d $SMB_CONF
done
unset IFS
}
function remove_fstab_entry () {
volname=$1
mntpt=$2
mntent="`hostname`:/$volname $mntpt glusterfs defaults,transport=tcp 0 0"
esc_mntent=$(echo -e "$mntent" | sed 's/\//\\\//g')
exists=`grep "^$mntent" /etc/fstab`
if [ "$exists" != " " ]
then
sed -i /"$esc_mntent"/d /etc/fstab
fi
}
parse_args $@
if [ "$META" = "$VOL" ]
then
umount "$CTDB_MNT"
chkconfig ctdb off
remove_fstab_entry $VOL $CTDB_MNT
remove_ctdb_options
sighup_samba
fi
|