OSDN Git Service

RAがSysVinit依存だったためSysVinit,Systemdに係らず
[ultramonkey-l7/ultramonkey-l7-v3.git] / doc / heartbeat-ra / L7vsd
index 6d17af3..a9f6e8e 100644 (file)
@@ -24,7 +24,8 @@
 # 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}
 
 #######################################################################
 
@@ -40,8 +41,15 @@ This is a L7vsd Resource Agent.
 </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" />
@@ -73,7 +81,16 @@ l7vsd_start() {
                 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!"
@@ -97,19 +114,19 @@ l7vsd_start() {
 ###############################
 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
@@ -118,6 +135,7 @@ l7vsd_stop() {
         done
         l7vsd_pkill
         RET=$?
+        rm -rf $L7SOCKFILE
         return $RET
 }
 
@@ -144,9 +162,9 @@ l7vsd_pkill(){
         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
@@ -155,24 +173,19 @@ l7vsd_pkill(){
 }
 
 ###############################
-# 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
@@ -188,23 +201,16 @@ l7vsd_monitor() {
                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
 }