diff --git a/heartbeat/exportfs b/heartbeat/exportfs index 104284646..335640e17 100644 --- a/heartbeat/exportfs +++ b/heartbeat/exportfs @@ -1,238 +1,238 @@ #!/bin/sh # exportfs # # Description: Manages nfs exported file system. # by btimby@gmail.com # License: GNU General Public License v2 (GPLv2) and later : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat} . ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs exportfs_meta_data() { cat < 1.0 Exportfs uses the exportfs command to add/remove nfs exports. It does NOT manage the nfs server daemon. It depends on Linux specific NFS implementation details, so is considered not portable to other platforms yet. Manages NFS exports The client specification allowing remote machines to mount the directory over NFS. Client ACL. The options to pass to exportfs for the exported directory. Export options. - + The directory which you wish to export using NFS. The directory to export. END return $OCF_SUCCESS } exportfs_usage() { cat < ${OCF_RESKEY_dir}/.rmtab + grep :${OCF_RESKEY_directory}: /var/lib/nfs/rmtab > ${OCF_RESKEY_directory}/.rmtab } clean_rmtab () { - REMOVE=`echo ${OCF_RESKEY_dir} | sed 's/\//\\\\\//g'` - sed -i -e /${REMOVE}/d /var/lib/nfs/rmtab + REMOVE=`echo ${OCF_RESKEY_directory} | sed 's/\//\\\\\//g'` + sed -i -e /:${REMOVE}:/d /var/lib/nfs/rmtab } exportfs_monitor () { fn=`/bin/mktemp` - grep "${OCF_RESKEY_dir}" /var/lib/nfs/etab > $fn 2>&1 + grep "${OCF_RESKEY_directory}" /var/lib/nfs/etab > $fn 2>&1 rc=$? #Adapt grep status code to OCF return code if [ $rc -eq 0 ]; then ocf_log debug `cat $fn` rm -f $fn return $OCF_SUCCESS elif [ $rc -eq 1 ]; then rm -f $fn return $OCF_NOT_RUNNING else rm -f $fn return $OCF_ERR_GENERIC fi } exportfs_start () { ocf_log info "Exporting file system ..." if [ ${OCF_RESKEY_options} ]; then OPTIONS="${OCF_RESKEY_options}" OPTPREFIX=',' fi #generate fsid if none provided... if [ ! `echo ${OPTIONS} | grep fsid` ]; then if [ -f ${OCF_RESKEY_dir}/.fsid ]; then FSID=`cat ${OCF_RESKEY_dir}/.fsid` else FSID=$RANDOM fi echo $FSID > ${OCF_RESKEY_dir}/.fsid OPTIONS="${OPTIONS}${OPTPREFIX}fsid=${FSID}" fi OPTIONS="-o ${OPTIONS}" fn=`/bin/mktemp` - exportfs ${OPTIONS} ${OCF_RESKEY_clientspec}:${OCF_RESKEY_dir} > $fn 2>&1 + exportfs ${OPTIONS} ${OCF_RESKEY_clientspec}:${OCF_RESKEY_directory} > $fn 2>&1 rc=$? #restore saved rmtab backup from other server: if [ -f ${OCF_RESKEY_dir}/.rmtab ]; then cat ${OCF_RESKEY_dir}/.rmtab >> /var/lib/nfs/rmtab rm -f ${OCF_RESKEY_dir}/.rmtab fi /bin/sh $0 backup & if [ $rc -ne 0 ]; then ocf_log debug "Error invoking exportfs: `cat $fn`" ocf_log err "Failed to export file system" return $rc fi rm -f $fn ocf_log info "File system exported" return $OCF_SUCCESS } exportfs_stop () { ocf_log info "Un-exporting file system ..." fn=`/bin/mktemp` - exportfs -u ${OCF_RESKEY_clientspec}:${OCF_RESKEY_dir} > $fn 2>&1 + exportfs -u ${OCF_RESKEY_clientspec}:${OCF_RESKEY_directory} > $fn 2>&1 rc=$? - if [ -f ${OCF_RESKEY_dir}/.exportfs_backup.pid ]; then - kill `cat ${OCF_RESKEY_dir}/.exportfs_backup.pid` - rm ${OCF_RESKEY_dir}/.exportfs_backup.pid + if [ -f ${OCF_RESKEY_directory}/.exportfs_backup.pid ]; then + kill `cat ${OCF_RESKEY_directory}/.exportfs_backup.pid` + rm ${OCF_RESKEY_directory}/.exportfs_backup.pid fi backup_rmtab clean_rmtab if [ $rc -eq 0 ]; then ocf_log debug "Error invoking exportfs: `cat $fn`" ocf_log info "Un-exported file system" return $OCF_SUCCESS fi rm -f $fn ocf_log err "Failed to un-export file system" return $rc } exportfs_backup () { - echo $$ > ${OCF_RESKEY_dir}/.exportfs_backup.pid + echo $$ > ${OCF_RESKEY_directory}/.exportfs_backup.pid while [ 1 ]; do backup_rmtab sleep 2 done } exportfs_validate () { - if [ -d $OCF_RESKEY_dir ]; then + if [ -d $OCF_RESKEY_directory ]; then return $OCF_SUCCESS else exit $OCF_ERR_ARGS fi } if [ -n "$OCF_RESKEY_CRM_meta_clone" ]; then ocf_log err "THIS RA DOES NOT SUPPORT CLONE MODE!" exit $OCF_ERR_CONFIGURED fi exportfs_validate case $__OCF_ACTION in start) exportfs_start ;; stop) exportfs_stop ;; monitor) exportfs_monitor ;; backup) exportfs_backup ;; validate-all) exportfs_validate ;; *) exportfs_usage exit $OCF_ERR_UNIMPLEMENTED ;; esac