summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeghana Madhusudhan <mmadhusu@redhat.com>2015-04-10 19:14:42 +0530
committerKaleb KEITHLEY <kkeithle@redhat.com>2015-04-13 10:36:58 +0000
commitdbd9bd7b2d806163f9bb069ec04e24d9269f769c (patch)
treefd44429596cebd50d6b29828ecb95556ebc1341c
parentb5d7faa96b5ca44be6899c6976691e0fde7d70d1 (diff)
NFS-Ganesha : Fixing HA script invocation and others
gluster features.ganesha disable failed invariably. And also, there were problems in unexporting volumes dynamically.Fixed the above problems. Change-Id: I29aa289dc8dc7b39fe0fd9d3098a02097ca8ca0c BUG: 1207629 Signed-off-by: Meghana Madhusudhan <mmadhusu@redhat.com> Reviewed-on: http://review.gluster.org/10199 Reviewed-by: jiffin tony Thottan <jthottan@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Tested-by: NetBSD Build System
-rwxr-xr-xextras/ganesha/scripts/create-export-ganesha.sh7
-rwxr-xr-xextras/ganesha/scripts/dbus-send.sh17
-rw-r--r--xlators/features/ganesha/src/ganesha.c16
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-ganesha.c15
4 files changed, 39 insertions, 16 deletions
diff --git a/extras/ganesha/scripts/create-export-ganesha.sh b/extras/ganesha/scripts/create-export-ganesha.sh
index 8140a11f548..de869c4629d 100755
--- a/extras/ganesha/scripts/create-export-ganesha.sh
+++ b/extras/ganesha/scripts/create-export-ganesha.sh
@@ -36,7 +36,8 @@ echo -e "# WARNING : Using Gluster CLI will overwrite manual
# and run ganesha-ha.sh --refresh-config."
echo "EXPORT{"
-echo " Export_Id = 1;"
+echo " Export_Id = 2;"
+echo " Path = \"/$VOL\";"
echo " FSAL {"
echo " name = "GLUSTER";"
echo " hostname=\"localhost\";"
@@ -45,8 +46,8 @@ echo " }"
echo " Access_type = RW;"
echo ' Squash="No_root_squash";'
echo " Pseudo=\"/$VOL\";"
-echo ' Protocols = "3,4" ;'
-echo ' Transports = "UDP,TCP";'
+echo ' Protocols = "3", "4" ;'
+echo ' Transports = "UDP","TCP";'
echo ' SecType = "sys";'
echo " }"
}
diff --git a/extras/ganesha/scripts/dbus-send.sh b/extras/ganesha/scripts/dbus-send.sh
index 406162f0747..170983a7a77 100755
--- a/extras/ganesha/scripts/dbus-send.sh
+++ b/extras/ganesha/scripts/dbus-send.sh
@@ -1,9 +1,11 @@
#/bin/bash
declare -i EXPORT_ID
-GANESHA_DIR=$1
-OPTION=$1
-VOL=$2
+GANESHA_DIR=${1%/}
+OPTION=$2
+VOL=$3
+
+CONF=$(cat /etc/sysconfig/ganesha | grep "CONFFILE" | cut -f 2 -d "=")
function check_cmd_status()
{
@@ -38,24 +40,23 @@ function dynamic_export_add()
sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \
$GANESHA_DIR/exports/export.$VOL.conf
check_cmd_status `echo $?`
- dbus-send --print-reply --system \
+ dbus-send --system \
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
org.ganesha.nfsd.exportmgr.AddExport string:$GANESHA_DIR/exports/export.$VOL.conf \
string:"EXPORT(Path=/$VOL)"
-
}
#This function removes an export dynamically(uses the export_id of the export)
function dynamic_export_remove()
{
removed_id=`cat $GANESHA_DIR/exports/export.$VOL.conf |\
-grep Export_Id | cut -d " " -f3`
- echo $removed_id
+grep Export_Id | cut -d " " -f8`
check_cmd_status `echo $?`
dbus-send --print-reply --system \
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id
check_cmd_status `echo $?`
+ sed -i /$VOL.conf/d $CONF
rm -rf $GANESHA_DIR/exports/export.$VOL.conf
}
@@ -63,12 +64,10 @@ org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id
if [ "$OPTION" = "on" ];
then
dynamic_export_add $@
- check_cmd_status `echo $?`
fi
if [ "$OPTION" = "off" ];
then
dynamic_export_remove $@
- check_cmd_status `echo $?`
fi
diff --git a/xlators/features/ganesha/src/ganesha.c b/xlators/features/ganesha/src/ganesha.c
index f034fc00d46..a3d392e3ecf 100644
--- a/xlators/features/ganesha/src/ganesha.c
+++ b/xlators/features/ganesha/src/ganesha.c
@@ -18,6 +18,22 @@
#include "ganesha-mem-types.h"
+int32_t
+mem_acct_init (xlator_t *this)
+{
+ int ret = -1;
+
+ if (!this)
+ return ret;
+
+ ret = xlator_mem_acct_init (this, gf_ganesha_mt_end + 1);
+
+ if (ret != 0)
+ gf_log (this->name, GF_LOG_WARNING, "Memory accounting"
+ "init failed");
+
+ return ret;
+}
int32_t
init (xlator_t *this)
diff --git a/xlators/mgmt/glusterd/src/glusterd-ganesha.c b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
index 534e332cdee..fe67be187f2 100644
--- a/xlators/mgmt/glusterd/src/glusterd-ganesha.c
+++ b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
@@ -194,6 +194,7 @@ glusterd_op_set_ganesha (dict_t *dict, char **errstr)
int32_t dict_count = 0;
dict_t *vol_opts = NULL;
int count = 0;
+ char *dup = NULL;
this = THIS;
GF_ASSERT (this);
@@ -217,6 +218,12 @@ glusterd_op_set_ganesha (dict_t *dict, char **errstr)
goto out;
}
+ dup = gf_strdup (value);
+ if (!dup) {
+ ret = -1;
+ goto out;
+ }
+
ret = glusterd_handle_ganesha_op (dict, errstr, key, value);
if (ret) {
gf_log (this->name, GF_LOG_ERROR,
@@ -422,7 +429,7 @@ ganesha_manage_export (dict_t *dict, char *value, char **op_errstr)
if (ret)
gf_asprintf(op_errstr, "Dynamic export"
" addition/deletion failed."
- "Please see log file for details");
+ " Please see log file for details");
}
out:
return ret;
@@ -436,7 +443,7 @@ tear_down_cluster(void)
if (is_ganesha_host()) {
runinit (&runner);
- runner_add_args (&runner, "sh", CONFDIR,
+ runner_add_args (&runner, "sh",
GANESHA_PREFIX"/ganesha-ha.sh", "teardown",
CONFDIR, NULL);
ret = runner_run(&runner);
@@ -470,7 +477,7 @@ stop_ganesha (char **op_errstr)
ret = tear_down_cluster();
if (ret == -1) {
gf_asprintf (op_errstr, "Cleanup of NFS-Ganesha"
- "HA config failed.");
+ " HA config failed.");
goto out;
}
@@ -527,7 +534,7 @@ start_ganesha (char **op_errstr)
ret = setup_cluster();
if (ret == -1) {
gf_asprintf (op_errstr, "Failed to set up HA "
- "config for NFS-Ganesha."
+ "config for NFS-Ganesha. "
"Please check the log file for details");
goto out;
}