@@ -26,6 +26,9 @@ EXEC_MODE=0
SELINUX_ENABLED=-1
STATD_PATH=" /var/lib/nfs"
STATD_DIR=" "
NFS_SYSCONFIG=" /etc/sysconfig/nfs"
NFS_SYSCONFIG_LOCAL_BACKUP=" /etc/sysconfig/nfs.ha.bu"
NFS_SYSCONFIG_AUTOGEN_TAG=" AUTOGENERATED by $0 high availability resource-agent"
nfsserver_meta_data () {
cat << END
@@ -102,6 +105,72 @@ rpc.nfsd options
<content type="string" />
</parameter>
<parameter name="lockd_udp_port" unique="0" required="0">
<longdesc lang="en">
The udp port lockd should listen on.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
lockd udp port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="lockd_tcp_port" unique="0" required="0">
<longdesc lang="en">
The tcp port lockd should listen on.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
lockd tcp port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="statd_outgoing_port" unique="0" required="0">
<longdesc lang="en">
The source port number sm-notify uses when sending reboot notifications.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
sm-notify source port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="statd_port" unique="0" required="0">
<longdesc lang="en">
The port number used for RPC listener sockets.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
rpc.statd listener port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="mountd_port" unique="0" required="0">
<longdesc lang="en">
The port number used for rpc.mountd listener sockets.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
rpc.mountd listener port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="rquotad_port" unique="0" required="0">
<longdesc lang="en">
The port number used for rpc.rquotad.
Note that setting this value will override all settings placed in the local /etc/sysconfig/nfs file.
</longdesc>
<shortdesc lang="en">
rpc.rquotad port
</shortdesc>
<content type="integer" />
</parameter>
<parameter name="nfs_shared_infodir" unique="0" required="0">
<longdesc lang="en">
The nfsserver resource agent will save nfs related information in this specific directory.
@@ -298,31 +367,61 @@ nfsserver_monitor ()
fi
}
set_nfsd_args ()
set_arg ()
{
local args
local key=" $1 "
local value=" $2 "
local file=" $3 "
if [ -z " $OCF_RESKEY_nfsd_args " ]; then
if [ -z " $value " ]; then
return
fi
# If we don't move this file. It will override our environment variables.
mv -f /etc/sysconfig/nfs /etc/sysconfig/nfs.bu
echo " RPCNFSDARGS=$OCF_RESKEY_nfsd_args " > /etc/sysconfig/nfs
export RPCNFSDARGS=$OCF_RESKEY_nfsd_args
echo " ${key} =\" ${value} \" " >> $file
export ${key} =" ${value} "
}
cleanup_nfsd_args ()
set_env_args ()
{
local tmpconfig=$( mktemp ${HA_RSCTMP} /nfsserver-tmp-XXXXX)
local statd_args
if [ -z " $OCF_RESKEY_nfsd_args " ]; then
return
# nfsd args
set_arg " RPCNFSDARGS" " $OCF_RESKEY_nfsd_args " " $tmpconfig "
# mountd args
if [ -n " $OCF_RESKEY_mountd_port " ]; then
set_arg " RPCMOUNTDOPTS" " -p $OCF_RESKEY_mountd_port " " $tmpconfig "
fi
# statd args
if [ -n " $OCF_RESKEY_statd_outgoing_port " ]; then
statd_args=" -o $OCF_RESKEY_statd_outgoing_port "
fi
if [ -n " $OCF_RESKEY_statd_port " ]; then
statd_args=" $statd_args -p $OCF_RESKEY_statd_port "
fi
set_arg " STATDARG" " $statd_args " " $tmpconfig "
rm -f /etc/sysconfig/nfs
mv -f /etc/sysconfig/nfs.bu /etc/sysconfig/nfs
# lockd ports
set_arg " LOCKD_UDPPORT" " $OCF_RESKEY_lockd_udp_port " " $tmpconfig "
set_arg " LOCKD_TCPPORT" " $OCF_RESKEY_lockd_tcp_port " " $tmpconfig "
# rquotad_port
set_arg " RPCRQUOTADOPTS" " $OCF_RESKEY_rquotad_port " " $tmpconfig "
# override local nfs config. preserve previous local config though.
if [ -s $tmpconfig ]; then
cat $NFS_SYSCONFIG | grep -e " $NFS_SYSCONFIG_AUTOGEN_TAG "
if [ $? -ne 0 ]; then
# backup local nfs config if it doesn't have our HA autogen tag in it.
mv -f $NFS_SYSCONFIG $NFS_SYSCONFIG_LOCAL_BACKUP
fi
echo " # $NFS_SYSCONFIG_AUTOGEN_TAG " > $NFS_SYSCONFIG
echo " # local config backup stored here, '$NFS_SYSCONFIG_LOCAL_BACKUP '" >> $NFS_SYSCONFIG
cat $tmpconfig >> $NFS_SYSCONFIG
fi
rm -f $tmpconfig
}
prepare_directory ()
@@ -514,6 +613,10 @@ renotify_locks()
opts=" $opts -m $OCF_RESKEY_nfs_smnotify_retry_time "
fi
if [ -n " $OCF_RESKEY_statd_outgoing_port " ]; then
opts=" $opts -p $OCF_RESKEY_statd_outgoing_port "
fi
# forces re-notificaiton regardless if notifies have already gone out
opts=" $opts -f"
@@ -542,6 +645,7 @@ nfsserver_start ()
return $OCF_SUCCESS
fi
set_env_args
prepare_directory
bind_tree
@@ -567,13 +671,11 @@ nfsserver_start ()
ocf_log info " rpc.statd already up"
fi
set_nfsd_args
fn=` mktemp`
nfs_exec start > $fn 2>&1
rc=$?
ocf_log debug " $( cat $fn ) "
rm -f $fn
cleanup_nfsd_args
if [ $rc -ne 0 ]; then
ocf_log err " Failed to start NFS server"
0 comments on commit
8fd1a9a