/etc/ha.d/resource.d/OCF is in heartbeat 1:3.0.6-7.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | #!/bin/sh
#
# Copyright: (C) 2003 International Business Machines Corporation
# Author: Alan Robertson <alanr@unix.sh>
# License: GNU General Public License (GPL)
# Support: linux-ha@lists.linux-ha.org
#
#
# OCF resource agent wrapper script for "original" heartbeat
# resource system
#
# This allows heartbeat to use OCF resource agents.
#
# They are configured in /etc/ha.d/haresources like this:
#
# OCF::resource-type::resource-instance-name
#
# Note that resource-type must be a script in the ${OCF_AGENTS} directory
# and that resource-instance-name must be a configuration file in
# ${HA_DIR}/conf/OCF/OCF-resource-name/
#
HA_HBCONF_DIR=/etc/ha.d
# Source function library.
. $HA_HBCONF_DIR/shellfuncs
# ${HA_DIR} is where things show up
# ${HA_DIR}/conf/OCF is where we find our resource settings.
# One directory per resource type
#
# ${OCF_AGENTS} is a directory above where OCF resource agent scripts
# are found
#
#
usage() {
cat <<-! >&2
usage: $0 OCF-resource-name OCF-instance-name operation-name
OCF-resource-name is the name of an OCF-compliant resource agent
script found under an immediate subdirectory of ${OCF_AGENTS}
OCF-instance-name is the name of an instance of OCF-resource-name.
It corresponds to an instance conf file named
${HA_DIR}/conf/OCF/OCF-resource-name/OCF-instance-name
operation-name is one of:
start
stop
status
monitor
!
exit 1
}
#
# Official OCF environment variable names
#
OCF_RES_VERSION_MAJOR=1
OCF_RES_VERSION_MAJOR=0
OCF_RES_NAME=$2
export OCF_RES_VERSION_MAJOR OCF_RES_VERSION_MAJOR OCF_RES_NAME
ocf_catvars()
{
cat $Resource_Inst_File | sed -e 's%#.*%%' -e 's%^[ ]*%%' | grep '.'
}
ocf_varnames()
{
ocf_catvars | grep '=' | sed 's%=.*%%'
}
ocf_setvars()
{
. $Resource_Inst_File
for j in `ocf_varnames`
do
eval export $j
done
}
ocf_op() {
(
ocf_setvars
$Resource_Script $1
)
}
rname()
{
echo "OCF Resource $Resource_Name::$Resource_Instance"
}
ocf_status() {
statoutput=`OCF_STATUS_QOS=0 ocf_op status`
rc=$?
case $statoutput in
"") ;;
*) ha_log "info: $statoutput"
esac
if
[ $rc -eq 0 ]
then
case $statoutput in
*OK*|*running*) echo $statoutput;;
*) echo "`rname` is running"
;;
esac
return 0
else
case $statoutput in
*OK*|*running*) echo "`rname` is stopped"
;;
*) echo "$statoutput";;
esac
return $rc
fi
}
ocf_monitor()
{
OCF_STATUS_QOS=10 ocf_op status
}
if
[ $# -ne 3 ]
then
usage
fi
Resource_Name=$1
Resource_Instance=$2
Operation=$3
Resource_Inst_File="${HA_DIR}/conf/OCF/${Resource_Name}/${Resource_Instance}"
Resource_Script=`ls ${OCF_AGENTS}/*/${Resource_Name} 2>/dev/null | head -n 1`
if
[ ! -f "$Resource_Script" -o ! -x "$Resource_Script" -o \
! -f "$Resource_Inst_File" ]
then
usage
fi
case $Operation in
status) ocf_status;;
monitor) ocf_monitor;;
*) ocf_op $Operation;;
esac
|