From 23a004d37ba624970f4d6cf9bde694f403397af7 Mon Sep 17 00:00:00 2001 From: Meghana M Date: Thu, 9 Jul 2015 03:34:07 +0530 Subject: NFS-Ganesha : Export fails on RHEL 7.1 We grep for CONFFILE parameter in "/etc/syconfig/ganesha" file to find out the path of the ganesha config file. In RHEL 7.1, this parameter does not exist in the file and we can't find out the ganesha config file. Export fails invariably due to this. Changing this pattern to a more generic one and default it to "/etc/ganesha/ganesha.conf" This patch is a backport of the fix merged upstream, http://review.gluster.org/#/c/11594/ Change-Id: Ia0f87f964a5771b97d9077f17a0387d7a01e02b6 BUG: 1241885 Signed-off-by: Meghana Madhusudhan Reviewed-on: http://review.gluster.org/11621 Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY --- extras/ganesha/scripts/create-export-ganesha.sh | 32 +++++++++++++++++++-- extras/ganesha/scripts/dbus-send.sh | 31 +++++++++++++++++++- extras/ganesha/scripts/ganesha-ha.sh | 38 ++++++++++++++++++++++--- 3 files changed, 93 insertions(+), 8 deletions(-) mode change 100755 => 100644 extras/ganesha/scripts/ganesha-ha.sh (limited to 'extras') diff --git a/extras/ganesha/scripts/create-export-ganesha.sh b/extras/ganesha/scripts/create-export-ganesha.sh index 668f357409b..ab7c282af79 100755 --- a/extras/ganesha/scripts/create-export-ganesha.sh +++ b/extras/ganesha/scripts/create-export-ganesha.sh @@ -5,8 +5,10 @@ #An export file specific to a volume #is created in GANESHA_DIR/exports. -GANESHA_DIR=$1 +GANESHA_DIR=${1%/} VOL=$2 +CONF= +CONFFILE= function check_cmd_status() { @@ -24,9 +26,33 @@ if [ ! -d "$GANESHA_DIR/exports" ]; check_cmd_status `echo $?` fi -CONF=$(cat /etc/sysconfig/ganesha | grep "CONFFILE" | cut -f 2 -d "=") -check_cmd_status `echo $?` +function find_rhel7_conf +{ + while [[ $# > 0 ]] + do + key="$1" + case $key in + -f) + CONFFILE="$2" + ;; + *) + ;; + esac + shift + done +} + +cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha) +eval $(echo ${cfgline} | grep -F ^CONFFILE=) +if [ -z $CONFFILE ] + then + cfgline=$(grep ^OPTIONS= /etc/sysconfig/ganesha) + eval $(echo ${cfgline} | grep -F ^OPTIONS=) + find_rhel7_conf $cfgline + +fi +CONF=${CONFFILE:-/etc/ganesha/ganesha.conf} function write_conf() { diff --git a/extras/ganesha/scripts/dbus-send.sh b/extras/ganesha/scripts/dbus-send.sh index d838cabf7b2..4840be830d6 100755 --- a/extras/ganesha/scripts/dbus-send.sh +++ b/extras/ganesha/scripts/dbus-send.sh @@ -4,8 +4,37 @@ declare -i EXPORT_ID GANESHA_DIR=${1%/} OPTION=$2 VOL=$3 +CONF= +CONFFILE= + +function find_rhel7_conf +{ + while [[ $# > 0 ]] + do + key="$1" + case $key in + -f) + CONFFILE="$2" + break; + ;; + *) + ;; + esac + shift + done +} + cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha) -eval $(echo ${cfgline} | grep -F CONFFILE=) +eval $(echo ${cfgline} | grep -F ^CONFFILE=) + +if [ -z $CONFFILE ] + then + cfgline=$(grep ^OPTIONS= /etc/sysconfig/ganesha) + eval $(echo ${cfgline} | grep -F ^OPTIONS=) + find_rhel7_conf $cfgline + +fi + CONF=${CONFFILE:-/etc/ganesha/ganesha.conf} function check_cmd_status() diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh old mode 100755 new mode 100644 index c1f07573f42..9e03eb63b86 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -26,13 +26,43 @@ HA_CONFDIR="/etc/ganesha" HA_VOL_NAME="gluster_shared_storage" HA_VOL_MNT="/var/run/gluster/shared_storage" SERVICE_MAN="DISTRO_NOT_FOUND" -cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha) -eval $(echo ${cfgline} | grep -F CONFFILE=) -GANESHA_CONF=${CONFFILE:-/etc/ganesha/ganesha.conf} RHEL6_PCS_CNAME_OPTION="--name" SECRET_PEM="/var/lib/glusterd/nfs/secret.pem" +GANESHA_CONF= +CONFFILE= + +function find_rhel7_conf +{ + while [[ $# > 0 ]] + do + key="$1" + case $key in + -f) + CONFFILE="$2" + break; + ;; + *) + ;; + esac + shift + done +} + +cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha) +eval $(echo ${cfgline} | grep -F ^CONFFILE=) + +if [ -z $CONFFILE ] + then + cfgline=$(grep ^OPTIONS= /etc/sysconfig/ganesha) + eval $(echo ${cfgline} | grep -F ^OPTIONS=) + find_rhel7_conf $cfgline + +fi + +GANESHA_CONF=${CONFFILE:-/etc/ganesha/ganesha.conf} + usage() { echo "Usage : add|delete|status" @@ -823,7 +853,7 @@ main() exit 0 fi if [[ ${cmd} != *status ]]; then - HA_CONFDIR=${1}; shift + HA_CONFDIR=${1%/}; shift local ha_conf=${HA_CONFDIR}/ganesha-ha.conf local node="" local vip="" -- cgit