#!/bin/sh # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Further, this software is distributed without any warranty that it is # free of the rightful claim of any third person regarding infringement # or the like. Any license provided herein, whether implied or # otherwise, applies only to this software file. Patent licenses, if # any, provided herein do not apply to combinations of this program with # other software, or any other product whatsoever. # # You should have received a copy of the GNU General Public License # along with this program; if not, write the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. # ####################################################################### # Initialization: . ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs #. /usr/lib/ocf/resource.d/heartbeat/.ocf-shellfuncs ####################################################################### meta_data() { cat < 1.0 This is a L7directord Resource Agent. L7directord resource agent Location to store the resource state in. State file END } ####################################################################### l7directord_usage() { cat < /dev/null 2>&1 RET=$? if [ $RET -eq 0 ]; then return ${OCF_SUCCESS} else MSG="l7directord status ERROR!: $RET" outputLog err ${OCF_ERR_GENERIC} ${MSG} return ${OCF_ERR_GENERIC} fi } ############################### # Get Resource Monitor Method ############################### l7directord_monitor() { isRunning; RET=$? if [ $RET -eq 1 ]; then # l7directord is running l7directord_status if [ $? -eq ${OCF_SUCCESS} ]; then # status OK return ${OCF_SUCCESS} else break fi elif [ $RET -eq 0 ]; then MSG="l7direcotrd is not running." outputLog err ${OCF_NOT_RUNNING} ${MSG} return ${OCF_NOT_RUNNING} fi MSG="l7direcotrd does not work. (ps=$RET) " outputLog err ${OCF_ERR_GENERIC} ${MSG} return ${OCF_ERR_GENERIC} } ############################### # Resource start Method ############################### l7directord_start() { outputLog info "l7directord is starting ..." l7directord_monitor RET=$? if [ $RET -eq ${OCF_SUCCESS} ]; then MSG="l7directord is already running." outputLog info ${OCF_SUCCESS} $MSG return $OCF_SUCCESS fi while true do isRunning; RET=$? if [ $RET -eq 1 ]; then # l7directord is running outputLog info "l7directord starts." return ${OCF_SUCCESS} elif [ $RET -eq 0 ]; then /etc/init.d/l7directord start > /dev/null 2>&1 RET=$? if [ $RET -ne 0 ]; then MSG="l7directord start fatal error!: $RET" outputLog err ${OCF_ERR_GENERIC} $MSG fi fi sleep 1 done } ############################### # Resource stop Method ############################### l7directord_stop() { outputLog info "l7directord is stopping ..." isRunning; RET=$? if [ $RET -eq 0 ]; then outputLog info "l7directord stopped." l7vsd_flush return ${OCF_SUCCESS} elif [ $RET -eq 1 ]; then /etc/init.d/l7directord stop > /dev/null 2>&1 RET=$? if [ $RET -ne 0 ]; then MSG="l7directord stop fatal error!: $RET" outputLog err ${OCF_ERR_GENERIC} $MSG l7directord_pkill RET=$? fi else l7directord_pkill RET=$? fi l7vsd_flush return $RET } case $__OCF_ACTION in meta-data) meta_data exit $OCF_SUCCESS ;; start) l7directord_start ;; stop) l7directord_stop ;; monitor) l7directord_monitor ;; usage|help) l7directord_usage exit $OCF_SUCCESS ;; *) l7directord_usage exit $OCF_ERR_UNIMPLEMENTED ;; esac rc=$? ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc" #ocf_log info "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc" exit $rc