NFS-Ganesha : scripts related changes for supporting multiple export entires for volume
Previously script such as dbus-send.sh, ganesha-ha.sh can handle only one EXPORT{} block. Change-Id: I2286af4877f96f4334435818f67beea87efa2b1f BUG: 1275966 Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com> Reviewed-on: http://review.gluster.org/13283 Smoke: Gluster Build System <jenkins@build.gluster.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
This commit is contained in:
parent
487b3a65d3
commit
ea00992d3d
@ -63,30 +63,37 @@ function dynamic_export_add()
|
||||
|
||||
EXPORT_ID=`cat $GANESHA_DIR/.export_added`
|
||||
check_cmd_status `echo $?`
|
||||
EXPORT_ID=EXPORT_ID+1
|
||||
#fi
|
||||
fi
|
||||
for entry in `grep -n Export_Id $GANESHA_DIR/exports/export.$VOL.conf \
|
||||
| awk -F":" '{print$1}'`
|
||||
do
|
||||
sed -e "$entry s/Export_Id.*/Export_Id=$EXPORT_ID ;/" -i \
|
||||
$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(Export_Id=$EXPORT_ID)"
|
||||
EXPORT_ID=EXPORT_ID+1
|
||||
done
|
||||
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 $?`
|
||||
grep Export_Id $GANESHA_DIR/exports/export.$VOL.conf | \
|
||||
while read entry;
|
||||
do
|
||||
dbus-send --print-reply --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.RemoveExport \
|
||||
uint16:$(echo $entry | awk -F"[=,;]" '{print$2}')
|
||||
check_cmd_status `echo $?`
|
||||
done
|
||||
sed -i /$VOL.conf/d $CONF
|
||||
rm -rf $GANESHA_DIR/exports/export.$VOL.conf
|
||||
|
||||
|
@ -248,19 +248,26 @@ grep Export_Id | cut -d " " -f8`
|
||||
scp -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
|
||||
${SECRET_PEM} ${HA_CONFDIR}/exports/export.$VOL.conf \
|
||||
${current_host}:${HA_CONFDIR}/exports/
|
||||
ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
|
||||
${SECRET_PEM} root@${current_host} "dbus-send --print-reply --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id"
|
||||
sleep 1
|
||||
ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
|
||||
${SECRET_PEM} root@${current_host} "dbus-send --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.AddExport string:$HA_CONFDIR/exports/export.$VOL.conf \
|
||||
string:\"EXPORT(Path=/$VOL)\""
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "warning: refresh-config failed on ${current_host}"
|
||||
fi
|
||||
grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \
|
||||
while read entry;
|
||||
do
|
||||
export_id=$(echo $entry | awk -F"[=,;]" '{print$2}')
|
||||
ssh -oPasswordAuthentication=no \
|
||||
-oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \
|
||||
"dbus-send --print-reply --system --dest=org.ganesha.nfsd \
|
||||
/org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport \
|
||||
uint16:$export_id"
|
||||
sleep 1
|
||||
ssh -oPasswordAuthentication=no \
|
||||
-oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \
|
||||
"dbus-send --system --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.AddExport string:$HA_CONFDIR/exports/export.$VOL.conf \
|
||||
string:\"EXPORT(Export_Id=$export_id)\""
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "warning: refresh-config failed on" \
|
||||
" ${current_host}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
shift
|
||||
done
|
||||
@ -269,14 +276,20 @@ string:\"EXPORT(Path=/$VOL)\""
|
||||
fi
|
||||
|
||||
#Run the same command on the localhost,
|
||||
dbus-send --print-reply --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id
|
||||
sleep 1
|
||||
dbus-send --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.AddExport string:$HA_CONFDIR/exports/export.$VOL.conf \
|
||||
string:"EXPORT(Path=/$VOL)"
|
||||
grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \
|
||||
while read entry;
|
||||
do
|
||||
export_id=$(echo $entry | awk -F"[=,;]" '{print$2}')
|
||||
dbus-send --print-reply --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id
|
||||
sleep 1
|
||||
dbus-send --system \
|
||||
--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
|
||||
org.ganesha.nfsd.exportmgr.AddExport \
|
||||
string:$HA_CONFDIR/exports/export.$VOL.conf \
|
||||
string:"EXPORT(Export_Id=$export_id)"
|
||||
done
|
||||
}
|
||||
|
||||
copy_export_config ()
|
||||
|
@ -75,32 +75,30 @@ function export_add()
|
||||
# else
|
||||
|
||||
EXPORT_ID=`cat $GANESHA_DIR/.export_added`
|
||||
EXPORT_ID=EXPORT_ID+1
|
||||
#fi
|
||||
fi
|
||||
for entry in `grep -n Export_Id $GANESHA_DIR/exports/export.$VOL.conf \
|
||||
| awk -F":" '{print$1}'`
|
||||
do
|
||||
sed -e "$entry s/Export_Id.*/Export_Id=$EXPORT_ID ;/" -i \
|
||||
$GANESHA_DIR/exports/export.$VOL.conf
|
||||
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(Export_Id=$EXPORT_ID)"
|
||||
EXPORT_ID=EXPORT_ID+1
|
||||
done
|
||||
echo $EXPORT_ID > $GANESHA_DIR/.export_added
|
||||
sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \
|
||||
$GANESHA_DIR/exports/export.$VOL.conf
|
||||
echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF1
|
||||
}
|
||||
|
||||
#This function adds a new export dynamically by sending dbus signals
|
||||
function dynamic_export_add()
|
||||
{
|
||||
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)"
|
||||
|
||||
}
|
||||
|
||||
function start_ganesha()
|
||||
{
|
||||
#Remove export entry from nfs-ganesha.conf
|
||||
sed -i /$VOL.conf/d $CONF1
|
||||
#Create a new export entry
|
||||
export_add $VOL
|
||||
dynamic_export_add $VOL
|
||||
|
||||
}
|
||||
|
||||
# based on src/scripts/ganeshactl/Ganesha/export_mgr.py
|
||||
|
Loading…
x
Reference in New Issue
Block a user