Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F4525306
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
View Options
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 <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="exportfs">
<version>1.0</version>
<longdesc lang="en">
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.
</longdesc>
<shortdesc lang="en">
Manages NFS exports
</shortdesc>
<parameters>
<parameter name="clientspec" unique="0" required="1">
<longdesc lang="en">
The client specification allowing remote machines to mount the directory over NFS.
</longdesc>
<shortdesc lang="en">
Client ACL.
</shortdesc>
<content type="string" default="" />
</parameter>
<parameter name="options" unique="0" required="0">
<longdesc lang="en">
The options to pass to exportfs for the exported directory.
</longdesc>
<shortdesc lang="en">
Export options.
</shortdesc>
<content type="string" default="" />
</parameter>
-<parameter name="dir" unique="0" required="1">
+<parameter name="directory" unique="0" required="1">
<longdesc lang="en">
The directory which you wish to export using NFS.
</longdesc>
<shortdesc lang="en">
The directory to export.
</shortdesc>
<content type="string" default="" />
</parameter>
</parameters>
<actions>
<action name="start" timeout="40" />
<action name="stop" timeout="10" />
<action name="monitor" depth="0" timeout="20" interval="10" />
<action name="meta-data" timeout="5" />
<action name="validate-all" timeout="30" />
</actions>
</resource-agent>
END
return $OCF_SUCCESS
}
exportfs_usage() {
cat <<END
usage: $0 {start|stop|monitor|status|validate-all|meta-data}
END
}
if [ $# -ne 1 ]; then
exportfs_usage
exit $OCF_ERR_ARGS
fi
case $__OCF_ACTION in
meta-data) exportfs_meta_data
exit $OCF_SUCCESS
;;
usage|help) exportfs_usage
exit $OCF_SUCCESS
;;
*)
;;
esac
#fp="$OCF_RESKEY_nfs_shared_infodir"
backup_rmtab ()
{
- grep ${OCF_RESKEY_dir} /var/lib/nfs/rmtab > ${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
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Jun 26, 6:20 PM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1959399
Default Alt Text
(5 KB)
Attached To
Mode
rR Resource Agents
Attached
Detach File
Event Timeline
Log In to Comment