diff --git a/extra/resources/pingd b/extra/resources/pingd index 3bfacd2389..dc4382c3b4 100644 --- a/extra/resources/pingd +++ b/extra/resources/pingd @@ -1,76 +1,198 @@ #!/bin/sh # # # pingd OCF Resource Agent # Records (in the CIB) the current number of ping nodes a # cluster node can connect to. # # Copyright (c) 2006 Andrew Beekhof # 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_ROOT}/resource.d/heartbeat/.ocf-shellfuncs : ${OCF_RESKEY_name:="pingd"} : ${OCF_RESKEY_interval:="1"} : ${OCF_RESKEY_CRM_meta_interval:=0} upgrade1="This agent (ocf:pacemaker:pingd) has been replaced by the more reliable ocf:pacemaker:ping." upgrade2="Attempting automated conversion, run 'crm ra info ocf:pacemaker:ping' for all configuration options" upgrade3="You will need to remove the existing resource and replace it with one that uses 'ocf:pacemaker:ping' directly" case $__OCF_ACTION in start|monitor) if [ "x" != "x$OCF_RESKEY_host_list" ]; then ocf_log err "$upgrade1" ocf_log err "$upgrade2" ocf_log err "Automatic conversion to ocf:pacemaker:ping failed: no hosts were configured to check for connectivity" ocf_log err "$upgrade3" exit $OCF_ERR_ARGS fi recurring=`crm configure show $OCF_RESOURCE_INSTANCE | grep "op monitor.*interval=\"[1-9]" | sed s/.*interval=// | awk -F\" '{print $2}' | sed s/.*interval=// | awk -F\" '{print $2}' | sort | head -n 1` if [ -z $recurring ]; then ocf_log err "$upgrade1" ocf_log err "$upgrade2" ocf_log err "Automatic conversion to ocf:pacemaker:ping failed: no monitor operation configured" ocf_log err "Without an explicit monitor operation for '$OCF_RESOURCE_INSTANCE', connectivity changes will not be noticed" ocf_log err "Preventing startup to ensure the issue is addressed before it matters" exit $OCF_ERR_ARGS fi if [ $OCF_RESKEY_CRM_meta_interval = 0 ]; then ocf_log warn "$upgrade1" ocf_log warn "$upgrade2" if [ $recurring != $OCF_RESKEY_interval ]; then ocf_log warn "Your monitor operation happens every $recurring, which means that the $OCF_RESKEY_name attribute will be updated with a different frequency than the previously configured ( $OCF_RESKEY_interval )" ocf_log warn "Either change the monitor interval to match or, ideally, switch to the ocf:pacemaker:ping agent and avoid all this compatibility nonsense." fi fi ;; + meta-data) + cat < + + +1.0 + +This agent (ocf:pacemaker:pingd) has been replaced by the more reliable ocf:pacemaker:ping. +It records (in the CIB) the current number of ping nodes (specified in the 'host_list' parameter) a cluster node can connect to. + +pingd resource agent + + + + +PID file +PID file + + + + + + +The user we want to run pingd as + +The user we want to run pingd as + + + + + +The time to wait (dampening) further changes occur + +Dampening interval + + + + + +The name of the instance_attributes set to place the value in. Rarely needs to be specified. + +Set name + + + + + +The name of the attributes to set. This is the name to be used in the constraints. + +Attribute name + + + + + +The section place the value in. Rarely needs to be specified. + +Section name + + + + + +The number by which to multiply the number of connected ping nodes by + +Value multiplier + + + + + +The list of ping nodes to count. Defaults to all configured ping nodes. Rarely needs to be specified. + +Host list + + + + + +How often, in seconds, to check for node liveliness + +ping interval in seconds + + + + + +Number of ping attempts, per host, before declaring it dead + +no. of ping attempts + + + + + +How long, in seconds, to wait before declaring a ping lost + +ping timeout in seconds + + + + + +A catch all for any other options that need to be passed to pingd. + +Extra Options + + + + + + + + + + + + + +END + exit $OCF_SUCCESS + ;; esac ${OCF_ROOT}/resource.d/pacemaker/ping $1 exit $?