</longdesc>
<shortdesc lang="en">L7vsd resource agent</shortdesc>
-<parameters>
-<parameter name="state" unique="1">
-<longdesc lang="en">
-Location to store the resource state in.
-</longdesc>
-<shortdesc lang="en">State file</shortdesc>
-<content type="string" default="" />
-</parameter>
-
-</parameters>
+<parameter/>
+<parameters/>
<actions>
<action name="start" timeout="60" />
cat <<END
usage: $0 {start|stop|monitor|meta-data}
-Expects to have a fully populated OCF RA-compliant environment set.
END
}
###############################
-# Resource start Method (dummy)
+# Resource start Method
###############################
l7vsd_start() {
- l7vsd_monitor
- RET=$?
- if [[ $RET -eq $OCF_SUCCESS || $RET -eq $OCF_NOT_RUNNING ]];then
- touch ${OCF_RESKEY_state}
- return $OCF_SUCCESS
- else
- return $OCF_ERR_GENERIC
- fi
+ ocf_log info "l7vsd is starting ..."
+ l7vsd_monitor
+ RET=$?
+ if [ $RET -eq $OCF_SUCCESS ]; then
+ 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
+ RET=$?
+ if [ $RET -ne 0 ]; then
+ MSG="l7vsd start error!"
+ outputLog err ${OCF_ERR_GENERIC} $MSG
+ return $OCF_ERR_GENERIC
+ fi
+ l7vsd_status
+ if [ $? -eq $OCF_SUCCESS ]; then
+ # l7vsd is running
+ ocf_log info "l7vsd starts."
+ return $OCF_SUCCSESS
+ fi
+ fi
+ MSG="l7vsd does not work. (ps=$RET) "
+ outputLog err ${OCF_ERR_GENERIC} ${MSG}
+ return $OCF_ERR_GENERIC
}
###############################
# Resource stop Method
###############################
l7vsd_stop() {
- rm ${OCF_RESKEY_state}
- return $OCF_SUCCESS
+ ocf_log info "l7vsd stopping ..."
+ isRunning;
+ RET=$?
+ if [ $RET -eq 0 ]; then
+ ocf_log info "l7vsd stopped."
+ return $OCF_SUCCESS
+ fi
+ /etc/init.d/l7vsd stop > /dev/null 2>&1
+ count=0
+ while [ $count -le 10 ]
+ do
+ isRunning;
+ RET=$?
+ if [ $RET -eq 0 ]; then
+ ocf_log info "l7vsd stopped."
+ return $OCF_SUCCESS
+ fi
+ count=`expr $count + 1`
+ sleep 1
+ done
+ l7vsd_pkill
+ RET=$?
+ return $RET
}
###############################
}
###############################
+# kill process
+###############################
+l7vsd_pkill(){
+ pkill -9 -f "/usr/sbin/l7vsd"
+ ocf_log info "kill l7vsd process!"
+ while true
+ do
+ sleep 1
+ isRunning;
+ RET=$?
+ if [ $RET -eq 0 ]; then
+ # stop OK
+ ocf_log info "l7vsd process stopped!"
+ return $OCF_SUCCESS
+ fi
+ done
+}
+
+###############################
# Resource Running Check Method
###############################
isRunning(){
RET=0
- RET=`ps -ef | grep l7vsd | grep -v grep | grep -v less | grep -v vi | wc -l`
+ RET=`ps -ef | grep /usr/sbin/l7vsd | grep -v grep | wc -l`
return $RET
}
###############################
l7vsd_status(){
/etc/init.d/l7vsd status > /dev/null 2>&1
- #/usr/sbin/l7vsadm -l > /dev/null 2>&1
RET=$?
if [ $RET -eq 0 ]; then
return $OCF_SUCCESS
# Get Resource Monitor Method
###############################
l7vsd_monitor() {
- if [ -f ${OCF_RESKEY_state} ]; then
- break
- else
- return $OCF_NOT_RUNNING
- fi
isRunning;
RET=$?
if [ $RET -eq 1 ]; then
return $OCF_ERR_GENERIC
}
-: ${OCF_RESKEY_state=${HA_RSCTMP}/L7vsd-${OCF_RESOURCE_INSTANCE}.state}
-
case $__OCF_ACTION in
meta-data) meta_data
exit $OCF_SUCCESS ;;