| #!/bin/sh | |
| # | |
| # | |
| # remote OCF RA. This script provides metadata for the internal | |
| # pacemaker remote lrmd connection agent. Outside of acting | |
| # as a place holder so the remote ra script can be indexed and | |
| # providing metadata, this script should never be invoked. The | |
| # actual functionality behind the remote lrmd connection lives | |
| # within pacemaker's crmd component. | |
| # | |
| # Copyright (c) 2013 David Vossel | |
| # | |
| # 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=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} | |
| . ${OCF_FUNCTIONS} | |
| : ${__OCF_ACTION=$1} | |
| ####################################################################### | |
| meta_data() { | |
| cat <<END | |
| <?xml version="1.0"?> | |
| <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> | |
| <resource-agent name="remote" version="0.1"> | |
| <version>1.0</version> | |
| <shortdesc lang="en">remote resource agent</shortdesc> | |
| <parameters> | |
| <parameter name="server" unique="1"> | |
| <longdesc lang="en"> | |
| Server location to connect to. This can be an ip address or hostname. | |
| </longdesc> | |
| <shortdesc lang="en">Server location</shortdesc> | |
| <content type="string"/> | |
| </parameter> | |
| <parameter name="port"> | |
| <longdesc lang="en"> | |
| tcp port to connect to. | |
| </longdesc> | |
| <shortdesc lang="en">tcp port</shortdesc> | |
| <content type="string" default="3121"/> | |
| </parameter> | |
| <parameter name="reconnect_interval" unique="0"> | |
| <longdesc lang="en"> | |
| Interval in seconds at which Pacemaker will attempt to reconnect to a | |
| remote node after an active connection to the remote node has been | |
| severed. When this value is nonzero, Pacemaker will retry the connection | |
| indefinitely, at the specified interval. As with any time-based actions, | |
| this is not guaranteed to be checked more frequently than the value of | |
| the cluster-recheck-interval cluster option. | |
| </longdesc> | |
| <shortdesc lang="en">reconnect interval</shortdesc> | |
| <content type="string" default="0"/> | |
| </parameter> | |
| </parameters> | |
| <actions> | |
| <action name="start" timeout="60" /> | |
| <action name="stop" timeout="60" /> | |
| <action name="reload" timeout="60" /> | |
| <action name="monitor" timeout="30" /> | |
| <action name="migrate_to" timeout="60" /> | |
| <action name="migrate_from" timeout="60" /> | |
| <action name="meta-data" timeout="5" /> | |
| </actions> | |
| </resource-agent> | |
| END | |
| } | |
| ####################################################################### | |
| remote_usage() { | |
| cat <<END | |
| usage: $0 {meta-data} | |
| Expects to have a fully populated OCF RA-compliant environment set. | |
| END | |
| } | |
| 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 | |
| exit $OCF_SUCCESS | |
| ;; | |
| start) remote_unsupported;; | |
| stop) remote_unsupported;; | |
| monitor) remote_unsupported;; | |
| migrate_to) remote_unsupported;; | |
| migrate_from) remote_unsupported;; | |
| reload) remote_unsupported;; | |
| validate-all) remote_unsupported;; | |
| usage|help) remote_usage | |
| exit $OCF_SUCCESS | |
| ;; | |
| *) remote_usage | |
| exit $OCF_ERR_UNIMPLEMENTED | |
| ;; | |
| esac | |
| rc=$? | |
| ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc" | |
| exit $rc |