/usr/lib/x86_64-linux-gnu/ganesha/dbus-send.sh is in glusterfs-common 3.7.6-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | #/bin/bash
# Try loading the config from any of the distro
# specific configuration locations
if [ -f /etc/sysconfig/ganesha ]
then
. /etc/sysconfig/ganesha
fi
if [ -f /etc/conf.d/ganesha ]
then
. /etc/conf.d/ganesha
fi
if [ -f /etc/default/ganesha ]
then
. /etc/default/ganesha
fi
declare -i EXPORT_ID
GANESHA_DIR=${1%/}
OPTION=$2
VOL=$3
CONF=
function find_rhel7_conf
{
while [[ $# > 0 ]]
do
key="$1"
case $key in
-f)
CONFFILE="$2"
break;
;;
*)
;;
esac
shift
done
}
if [ -z $CONFFILE ]
then
find_rhel7_conf $OPTIONS
fi
CONF=${CONFFILE:-/etc/ganesha/ganesha.conf}
function check_cmd_status()
{
if [ "$1" != "0" ]
then
rm -rf $GANESHA_DIR/exports/export.$VOL.conf
sed -i /$VOL.conf/d $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 --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 " " -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
}
if [ "$OPTION" = "on" ];
then
dynamic_export_add $@
fi
if [ "$OPTION" = "off" ];
then
dynamic_export_remove $@
fi
|