diff --git a/extra/resources/pingd b/extra/resources/pingd index 77617ce3ed..6e50e906b4 100755 --- a/extra/resources/pingd +++ b/extra/resources/pingd @@ -1,189 +1,185 @@ #!/bin/sh # # ocf:pacemaker:pingd resource agent # # Copyright 2006-2019 the Pacemaker project contributors # # The version control history for this file may have further details. # # This source code is licensed under the GNU General Public License version 2 # (GPLv2) WITHOUT ANY WARRANTY. # # # Records (in the CIB) the current number of ping nodes a cluster node can # connect to. # ####################################################################### # Initialization: : ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} . "${OCF_FUNCTIONS}" : ${__OCF_ACTION:="$1"} : ${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" +ocf_log err "This agent (ocf:pacemaker:pingd) is deprecated, does not work, and" +ocf_log err "will be removed in a future release (use ocf:pacemaker:ping instead)" case "$__OCF_ACTION" in start|monitor) + # BUG: The sense of this test is reversed. Rather than fix it now, we + # will formally deprecate the agent and remove it in a future release. if [ -n "$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 -eq 0 ]; then - ocf_log warn "$upgrade1" - ocf_log warn "$upgrade2" if [ $recurring -ne $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. +This agent (ocf:pacemaker:pingd) is deprecated and broken, and 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 $? # vim: set filetype=sh expandtab tabstop=4 softtabstop=4 shiftwidth=4 textwidth=80: