diff options
Diffstat (limited to 'heartbeat/Evmsd')
-rwxr-xr-x | heartbeat/Evmsd | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/heartbeat/Evmsd b/heartbeat/Evmsd new file mode 100755 index 0000000..6e30eae --- /dev/null +++ b/heartbeat/Evmsd @@ -0,0 +1,161 @@ +#!/bin/sh +# +# Evmsd OCF RA. +# +# Copyright (c) 2004 SUSE LINUX AG, Jo De Baer +# All Rights Reserved. +# +# 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_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat} +. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs + +# Parameter defaults + +OCF_RESKEY_ignore_deprecation_default="false" + +: ${OCF_RESKEY_ignore_deprecation=${OCF_RESKEY_ignore_deprecation_default}} + +####################################################################### + +meta_data() { + cat <<END +<?xml version="1.0"?> +<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> +<resource-agent name="Evmsd" version="1.0"> +<version>1.0</version> + +<longdesc lang="en"> +Deprecation warning: EVMS is no longer actively maintained and should not be used. This agent is deprecated and may be removed from a future release. -- +This is a Evmsd Resource Agent. +</longdesc> +<shortdesc lang="en">Controls clustered EVMS volume management +(deprecated)</shortdesc> + +<parameters> +<parameter name="ignore_deprecation"> +<longdesc lang="en"> +If set to true, suppresses the deprecation warning for this agent. +</longdesc> +<shortdesc lang="en">Suppress deprecation warning</shortdesc> +<content type="boolean" default="${OCF_RESKEY_ignore_deprecation_default}" /> +</parameter> +</parameters> + +<actions> +<action name="start" timeout="20s" /> +<action name="stop" timeout="20s" /> +<action name="monitor" timeout="20s" interval="10s" depth="0" /> +<action name="meta-data" timeout="5s" /> +</actions> +</resource-agent> +END +} + +####################################################################### + +evmsd_usage() { + cat <<END +usage: $0 {start|stop|monitor|meta-data} + +Expects to have a fully populated OCF RA-compliant environment set. +END +} + +evmsd_start() { + local PID=`pgrep evmsd` + if [ -z $PID ] ; then + nohup /sbin/evmsd & + # Spin waiting for the server to come up. + # Let the CRM/LRM time us out if required + start_wait=1 + while [ $start_wait = 1 ]; do + if evmsd_monitor ; then + sleep 1 + return $OCF_SUCCESS + else + sleep 1 + fi + done + else + # already running + return $OCF_SUCCESS + fi +} + +evmsd_stop() { + local PID=`pgrep evmsd` + if [ -z $PID ] ; then + # not running + return $OCF_SUCCESS + else + /bin/kill -15 $PID + sleep 1 + /bin/kill -9 $PID + # Spin waiting for the server to go down. + # Let the CRM/LRM time us out if required + stop_wait=1 + while [ $stop_wait = 1 ]; do + if evmsd_monitor ; then + sleep 1 + else + return $OCF_SUCCESS + fi + done + fi +} + +evmsd_monitor() { + local PID=`pgrep evmsd` + if [ -z $PID ] ; then + return $OCF_NOT_RUNNING + else + return $OCF_SUCCESS + fi +} + +if [ "$__OCF_ACTION" = "meta-data" ]; then + meta_data + exit $OCF_SUCCESS +fi + +# Be obnoxious, log deprecation warning on every invocation (unless +# suppressed by resource configuration). +ocf_deprecated + +case $__OCF_ACTION in +start) evmsd_start;; +stop) evmsd_stop;; +monitor) evmsd_monitor;; +usage|help) evmsd_usage + exit $OCF_SUCCESS + ;; +*) evmsd_usage + exit $OCF_ERR_UNIMPLEMENTED + ;; +esac +rc=$? +ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc" +exit $rc + |