summaryrefslogtreecommitdiffstats
path: root/agents/ocf/remote.in
blob: 048b50434472ba4d4d9953b9abf8bfc7b990eb1f (plain)
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-2023 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" />
    <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: