diff options
| author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2015-06-16 09:33:48 -0400 | 
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2015-06-19 01:25:46 -0700 | 
| commit | 46bf15e897ee9711835af211c19351a9920d490b (patch) | |
| tree | 6abf2a4abe8a78d459d5359ade492b6c44cce135 /extras/ganesha | |
| parent | 4442449f1436e47c84c55c3f0d8f1a8b248db4b6 (diff) | |
common-ha: cluster setup issues on RHEL7
 * use --name on RHEL7 (later versions of pcs drop --name) we guessed
   wrong and did not get the version that dropped use of --name option
 * more robust config file param parsing for n/v with ""s in the value
   after not sourcing the config file
 * pid file fix. RHEL6 init.d adds -p /var/run/ganesha.nfsd.pid to
   cmdline options. RHEL7 systemd does not, so defaults to
   /var/run/ganesha.pid.
Change-Id: I575aa13c98f05523cca10c55f2c387200bad3f93
BUG: 1229948
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: http://review.gluster.org/11257
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: soumya k <skoduri@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Meghana M <mmadhusu@redhat.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'extras/ganesha')
| -rw-r--r-- | extras/ganesha/ocf/ganesha_grace | 12 | ||||
| -rw-r--r-- | extras/ganesha/ocf/ganesha_mon | 12 | ||||
| -rwxr-xr-x | extras/ganesha/scripts/ganesha-ha.sh | 25 | 
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  | 
