summaryrefslogtreecommitdiffstats
path: root/extras/ganesha
diff options
context:
space:
mode:
Diffstat (limited to 'extras/ganesha')
-rw-r--r--extras/ganesha/ocf/ganesha_grace12
-rw-r--r--extras/ganesha/ocf/ganesha_mon12
-rwxr-xr-xextras/ganesha/scripts/ganesha-ha.sh25
3 files changed, 35 insertions, 14 deletions
diff --git a/extras/ganesha/ocf/ganesha_grace b/extras/ganesha/ocf/ganesha_grace
index dceaccf5e77..75ec16c0fd1 100644
--- a/extras/ganesha/ocf/ganesha_grace
+++ b/extras/ganesha/ocf/ganesha_grace
@@ -88,14 +88,22 @@ ganesha_grace_start()
local resourcename=""
local deadserver=""
local tmpIFS=${IFS}
+ local pid_file="/var/run/ganesha.nfsd.pid"
+
+ # RHEL6 /etc/init.d/nfs-ganesha adds "-p /var/run/ganesha.nfsd.pid"
+ # RHEL7 systemd does not. Would be nicer if all distros used the
+ # same pid file.
+ if [ -e /usr/lib/systemd/system/nfs-ganesha.service ]; then
+ pid_file="/var/run/ganesha.pid"
+ fi
# logger "ganesha_grace_start()"
# we're here because somewhere in the cluster one or more
# of the ganesha.nfsds have died, triggering a floating IP
# address to move. Resource constraint location rules ensure
# that this is invoked before the floating IP is moved.
- if [ -e /var/run/ganesha.nfsd.pid -a \
- -d /proc/$(cat /var/run/ganesha.nfsd.pid) ]; then
+ if [ -e ${pid_file} -a \
+ -d /proc/$(cat ${pid_file} ) ]; then
# my ganesha.nfsd is still running
# find out which one died?
diff --git a/extras/ganesha/ocf/ganesha_mon b/extras/ganesha/ocf/ganesha_mon
index 47943f8a577..c8e7de9c45e 100644
--- a/extras/ganesha/ocf/ganesha_mon
+++ b/extras/ganesha/ocf/ganesha_mon
@@ -97,9 +97,17 @@ ganesha_mon_stop()
ganesha_mon_monitor()
{
local short_host=$(hostname -s)
+ local pid_file="/var/run/ganesha.nfsd.pid"
- if [ -e /var/run/ganesha.nfsd.pid -a \
- -d /proc/$(cat /var/run/ganesha.nfsd.pid) ]; then
+ # RHEL6 /etc/init.d/nfs-ganesha adds -p /var/run/ganesha.nfsd.pid
+ # RHEL7 systemd does not. Would be nice if all distros used the
+ # same pid file.
+ if [ -e /usr/lib/systemd/system/nfs-ganesha.service ]; then
+ pid_file="/var/run/ganesha.pid"
+ fi
+
+ if [ -e ${pid_file} -a \
+ -d /proc/$(cat ${pid_file} ) ]; then
( pcs resource delete ${short_host}-dead_ip-1 > /dev/null 2>&1 )
attrd_updater -n ganesha-active -v 1
diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh
index fc2a00980c1..02bca6e84da 100755
--- a/extras/ganesha/scripts/ganesha-ha.sh
+++ b/extras/ganesha/scripts/ganesha-ha.sh
@@ -22,11 +22,13 @@
HA_NUM_SERVERS=0
HA_SERVERS=""
-HA_CONFDIR=""
+HA_CONFDIR="/etc/ganesha"
HA_VOL_NAME="gluster_shared_storage"
HA_VOL_MNT="/var/run/gluster/shared_storage"
SERVICE_MAN="DISTRO_NOT_FOUND"
-CONF=$(cat /etc/sysconfig/ganesha | grep "CONFFILE" | cut -f 2 -d "=")
+cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha)
+eval $(echo ${cfgline} | grep -F CONFFILE=)
+GANESHA_CONF=${CONFFILE:-/etc/ganesha/ganesha.conf}
RHEL6_PCS_CNAME_OPTION="--name"
@@ -236,7 +238,7 @@ cleanup_ganesha_config ()
rm -rf ${HA_CONFDIR}/.export_added
rm -rf /etc/cluster/cluster.conf*
rm -rf /var/lib/pacemaker/cib/*
- sed -r -i -e '/^%include[[:space:]]+".+\.conf"$/d' $CONF
+ sed -r -i -e '/^%include[[:space:]]+".+\.conf"$/d' ${GANESHA_CONF}
}
do_create_virt_ip_constraints()
@@ -740,15 +742,18 @@ main()
local node=""
local vip=""
- ha_name=$(grep ^HA_NAME= ${ha_conf} | cut -d = -f 2)
- HA_NAME=${ha_name//\"/}
- ha_vol_server=$(grep ^HA_VOL_SERVER= ${ha_conf} | cut -d = -f 2)
- HA_VOL_SERVER=${ha_vol_server//\"/}
- ha_cluster_nodes=$(grep ^HA_CLUSTER_NODES= ${ha_conf} | cut -d = -f 2)
- HA_CLUSTER_NODES=${ha_cluster_nodes//\"/}
+ # ignore any comment lines
+ cfgline=$(grep ^HA_NAME= ${ha_conf})
+ eval $(echo ${cfgline} | grep -F HA_NAME=)
+ cfgline=$(grep ^HA_VOL_SERVER= ${ha_conf})
+ eval $(echo ${cfgline} | grep -F HA_VOL_SERVER=)
+ cfgline=$(grep ^HA_CLUSTER_NODES= ${ha_conf})
+ eval $(echo ${cfgline} | grep -F HA_CLUSTER_NODES=)
+ # we'll pretend that nobody ever edits /etc/os-release
if [ -e /etc/os-release ]; then
- RHEL6_PCS_CNAME_OPTION=""
+ eval $(grep -F "REDHAT_SUPPORT_PRODUCT=" /etc/os-release)
+ [ "$REDHAT_SUPPORT_PRODUCT" == "Fedora" ] && RHEL6_PCS_CNAME_OPTION=""
fi
case "${cmd}" in