1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
#!/bin/sh
#
# ocf:pacemaker:remote OCF resource agent
#
# Copyright 2013-2025 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.
#
# This script provides metadata for Pacemaker's internal remote agent.
# Outside of acting as a placeholder so the agent can be indexed, and
# providing metadata, this script should never be invoked. The actual
# functionality behind the remote connection lives within Pacemaker's
# controller daemon.
#
: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"}
. "${OCF_FUNCTIONS}"
: ${__OCF_ACTION:="$1"}
meta_data() {
cat <<END
<?xml version="1.0"?>
<resource-agent name="remote" version="@VERSION@">
<version>1.1</version>
<shortdesc lang="en">Pacemaker Remote connection</shortdesc>
<parameters>
<parameter name="server" unique-group="address">
<longdesc lang="en">
Server location to connect to (IP address or resolvable host name)
</longdesc>
<shortdesc lang="en">Remote hostname</shortdesc>
<content type="string"/>
</parameter>
<parameter name="port" unique-group="address">
<longdesc lang="en">
TCP port at which to contact Pacemaker Remote executor
</longdesc>
<shortdesc lang="en">Remote port</shortdesc>
<content type="integer" default="3121"/>
</parameter>
<parameter name="reconnect_interval" reloadable="1">
<longdesc lang="en">
If this is a positive time interval, the cluster will attempt to
reconnect to a remote node after an active connection has been
lost at this interval. Otherwise, the cluster will attempt to
reconnect immediately (after any fencing needed).
</longdesc>
<shortdesc lang="en">reconnect interval</shortdesc>
<content type="string" default="0"/>
</parameter>
</parameters>
<actions>
<action name="start" timeout="60s" />
<action name="stop" timeout="60s" />
<action name="monitor" timeout="30s" interval="30s" />
<action name="migrate_to" timeout="60s" />
<action name="migrate_from" timeout="60s" />
<action name="reload" timeout="60s" />
<action name="reload-agent" timeout="60s" />
<action name="meta-data" timeout="5s" />
</actions>
</resource-agent>
END
return $OCF_SUCCESS
}
remote_usage() {
EXITSTATUS="$1"
cat <<END
Usage: $0 <action>
This conforms to the OCF Resource Agent API version 1.1, and expects
to have OCF-compliant environment variables provided.
END
return $EXITSTATUS
}
remote_unsupported() {
ocf_log info "The ocf:pacemaker:remote agent should not be directly invoked except for meta-data action"
return $OCF_ERR_GENERIC
}
case $__OCF_ACTION in
meta-data) meta_data ;;
start) remote_unsupported ;;
stop) remote_unsupported ;;
monitor) remote_unsupported ;;
migrate_to) remote_unsupported ;;
migrate_from) remote_unsupported ;;
reload) remote_unsupported ;;
reload-agent) remote_unsupported ;;
validate-all) remote_unsupported ;;
usage|help) remote_usage $OCF_SUCCESS ;;
*) remote_usage $OCF_ERR_UNIMPLEMENTED ;;
esac
rc=$?
ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc"
exit $rc
# vim: set filetype=sh expandtab tabstop=4 softtabstop=4 shiftwidth=4 textwidth=80:
|