Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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
- GANESHA_DIR=${1%/}
- OPTION=$2
- VOL=$3
- CONF=$GANESHA_DIR"/ganesha.conf"
- function check_cmd_status()
- {
- if [ "$1" != "0" ]
- then
- logger "dynamic export failed on node :${hostname -s}"
- fi
- }
- #This function keeps track of export IDs and increments it with every new entry
- function dynamic_export_add()
- {
- 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)"
- check_cmd_status `echo $?`
- }
- #This function removes an export dynamically(uses the export_id of the export)
- function dynamic_export_remove()
- {
- # Below bash fetch all the export from ShowExport command and search
- # export entry based on path and then get its export entry.
- # There are two possiblities for path, either entire volume will be
- # exported or subdir. It handles both cases. But it remove only first
- # entry from the list based on assumption that entry exported via cli
- # has lowest export id value
- removed_id=$(dbus-send --type=method_call --print-reply --system \
- --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
- org.ganesha.nfsd.exportmgr.ShowExports | grep -B 1 -we \
- "/"$VOL -e "/"$VOL"/" | grep uint16 | awk '{print $2}' \
- | head -1)
- 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 $?`
- }
- #this function displays the mdcache stats and oc
- grep utilization
- function show_mdcache()
- {
- dbus-send --print-reply --system \
- --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \
- org.ganesha.nfsd.exportstats.ShowCacheInode"
- check_cmd_status `echo $?`
- }
- if [ "$OPTION" = "on" ];
- then
- dynamic_export_add $@
- fi
- if [ "$OPTION" = "off" ];
- then
- dynamic_export_remove $@
- fi
- if [ "$OPTION" = "cache" ];
- then
- show_mdcache()
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement