summaryrefslogtreecommitdiffstats
path: root/extras/ganesha/scripts/dbus-send.sh
diff options
context:
space:
mode:
authorKaleb S. KEITHLEY <kkeithle@redhat.com>2015-03-17 09:27:05 -0400
committerKaleb KEITHLEY <kkeithle@redhat.com>2015-03-17 13:39:44 -0700
commitd81182cf69a4f188f304fcce6d651ffd56b67aac (patch)
treef71627c738d4424aa989805c9fe829f516ec6c51 /extras/ganesha/scripts/dbus-send.sh
parentc8be9af5f54aa3e42dffee4024d2915743258242 (diff)
NFS-Ganesha: Install scripts, config files, and resource agent scripts
Resubmitting after a gerrit bug bungled the merge of http://review.gluster.org/9621 (was it really a gerrit bug?) Scripts related to NFS-Ganesha are in extras/ganesha/scripts. Config files are in extras/ganesha/config. Resource Agent files are in extras/ganesha/ocf Files are copied to appropriate locations. Change-Id: I137169f4d653ee2b7d6df14d41e2babd0ae8d10c BUG: 1188184 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/9912 Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'extras/ganesha/scripts/dbus-send.sh')
-rwxr-xr-xextras/ganesha/scripts/dbus-send.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/extras/ganesha/scripts/dbus-send.sh b/extras/ganesha/scripts/dbus-send.sh
new file mode 100755
index 00000000000..406162f0747
--- /dev/null
+++ b/extras/ganesha/scripts/dbus-send.sh
@@ -0,0 +1,74 @@
+#/bin/bash
+
+declare -i EXPORT_ID
+GANESHA_DIR=$1
+OPTION=$1
+VOL=$2
+
+function check_cmd_status()
+{
+ if [ "$1" != "0" ]
+ then
+ rm -rf $GANESHA_DIR/exports/export.$VOL.conf
+ exit 1
+ fi
+}
+
+#This function keeps track of export IDs and increments it with every new entry
+function dynamic_export_add()
+{
+ count=`ls -l $GANESHA_DIR/exports/*.conf | wc -l`
+ if [ "$count" = "1" ] ;
+ then
+ EXPORT_ID=2
+ else
+ #if [ -s /var/lib/ganesha/export_removed ];
+ # then
+ # EXPORT_ID=`head -1 /var/lib/ganesha/export_removed`
+ # sed -i -e "1d" /var/lib/ganesha/export_removed
+ # else
+
+ EXPORT_ID=`cat $GANESHA_DIR/.export_added`
+ check_cmd_status `echo $?`
+ EXPORT_ID=EXPORT_ID+1
+ #fi
+ fi
+ echo $EXPORT_ID > $GANESHA_DIR/.export_added
+ check_cmd_status `echo $?`
+ sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \
+$GANESHA_DIR/exports/export.$VOL.conf
+ check_cmd_status `echo $?`
+ dbus-send --print-reply --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
+ 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 $?`
+ rm -rf $GANESHA_DIR/exports/export.$VOL.conf
+
+}
+
+if [ "$OPTION" = "on" ];
+then
+ dynamic_export_add $@
+ check_cmd_status `echo $?`
+fi
+
+if [ "$OPTION" = "off" ];
+then
+ dynamic_export_remove $@
+ check_cmd_status `echo $?`
+fi
+