# Initialization:
. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs
-#. /usr/lib/ocf/resource.d/heartbeat/.ocf-shellfuncs
+
+L7SOCKFILE=${OCF_RESKEY_socket_default:-/var/run/l7vs/l7vs}
#######################################################################
</longdesc>
<shortdesc lang="en">L7vsd resource agent</shortdesc>
-<parameter/>
-<parameters/>
+<parameters>
+<parameter name="socket" unique="0" required="0">
+<longdesc lang="en">
+The socket to be used for l7vsadm.
+</longdesc>
+<shortdesc lang="en">l7vsadm socket</shortdesc>
+<content type="string" default="${OCF_RESKEY_socket_default}"/>
+</parameter>
+</parameters>
<actions>
<action name="start" timeout="60" />
ocf_log info "l7vsd is already running."
return $OCF_SUCCESS
elif [ $RET -eq $OCF_NOT_RUNNING ]; then
- /etc/init.d/l7vsd start > /dev/null 2>&1
+ L7SOCKDIR=`dirname L7SOCKFILE`
+ if [ ! -d $L7SOCKDIR ] ; then
+ ocf_log info "Creating l7vsadm socket dir: $L7SOCKDIR"
+ mkdir -p $L7SOCKDIR
+ fi
+ if [ -e $L7SOCKFILE ] ; then
+ ocf_log info "Delete l7vsadm socket filer: $L7SOCKFILE"
+ rm -rf $L7SOCKFILE
+ fi
+ /usr/sbin/l7vsd > /dev/null 2>&1
RET=$?
if [ $RET -ne 0 ]; then
MSG="l7vsd start error!"
###############################
l7vsd_stop() {
ocf_log info "l7vsd stopping ..."
- isRunning;
+ l7vsd_status
RET=$?
- if [ $RET -eq 0 ]; then
+ if [ $RET -eq $OCF_NOT_RUNNING ]; then
ocf_log info "l7vsd stopped."
return $OCF_SUCCESS
fi
- /etc/init.d/l7vsd stop > /dev/null 2>&1
+ pkill -f "/usr/sbin/l7vsd"
count=0
while [ $count -le 10 ]
do
- isRunning;
+ l7vsd_status
RET=$?
- if [ $RET -eq 0 ]; then
+ if [ $RET -eq $OCF_NOT_RUNNING ]; then
ocf_log info "l7vsd stopped."
return $OCF_SUCCESS
fi
done
l7vsd_pkill
RET=$?
+ rm -rf $L7SOCKFILE
return $RET
}
while true
do
sleep 1
- isRunning;
+ l7vsd_status
RET=$?
- if [ $RET -eq 0 ]; then
+ if [ $RET -eq $OCF_NOT_RUNNING ]; then
# stop OK
ocf_log info "l7vsd process stopped!"
return $OCF_SUCCESS
}
###############################
-# Resource Running Check Method
-###############################
-isRunning(){
- RET=0
- RET=`pgrep -fox "/usr/sbin/l7vsd" | wc -l`
- return $RET
-}
-
-###############################
# Get Resource Status Method
###############################
l7vsd_status(){
- /etc/init.d/l7vsd status > /dev/null 2>&1
- RET=$?
- if [ $RET -eq 0 ]; then
+ RET=0
+ RET=`pgrep -fox "/usr/sbin/l7vsd" | wc -l`
+ if [ $RET -eq 1 ]; then
return $OCF_SUCCESS
+ elif [ $RET -eq 0 ]; then
+ MSG="l7vsd is not running."
+ outputLog $loglevel ${OCF_NOT_RUNNING} ${MSG}
+ return $OCF_NOT_RUNNING
else
- MSG="l7vsd status ERROR!: $RET"
+ MSG="l7vsd status ERROR!: (ps=$RET)"
outputLog err ${OCF_ERR_GENERIC} ${MSG}
return $OCF_ERR_GENERIC
fi
loglevel="info"
fi
- isRunning;
+ l7vsd_status
RET=$?
- if [ $RET -eq 1 ]; then
- # l7vsd is running
- l7vsd_status
- if [ $? -eq $OCF_SUCCESS ]; then
- # status OK
- return $OCF_SUCCESS
- else
- break
- fi
- elif [ $RET -eq 0 ]; then
- MSG="l7vsd is not running."
- outputLog $loglevel ${OCF_NOT_RUNNING} ${MSG}
+ if [ $RET -eq $OCF_SUCCESS ]; then
+ # status OK
+ return $OCF_SUCCESS
+ elif [ $RET -eq $OCF_NOT_RUNNING ]; then
+ # status NG
return $OCF_NOT_RUNNING
fi
- MSG="l7vsd does not work. (ps=$RET) "
+ MSG="l7vsd duplicated. "
outputLog err ${OCF_ERR_GENERIC} ${MSG}
return $OCF_ERR_GENERIC
}