Send Linux-ha-cvs mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Linux-ha-cvs digest..."
Today's Topics:
1. Linux-HA CVS: resources by andrew from
([email protected])
----------------------------------------------------------------------
Message: 1
Date: Mon, 14 Aug 2006 03:37:22 -0600 (MDT)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: resources by andrew from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : andrew
Host :
Project : linux-ha
Module : resources
Dir : linux-ha/resources/heartbeat
Modified Files:
AudibleAlarm.in Delay.in Filesystem.in ICP.in IPaddr.in
IPaddr2.in IPsrcaddr.in IPv6addr.in LVM.in LinuxSCSI.in
MailTo.in Raid1.in ServeRAID.in WAS.in WinPopup.in Xinetd.in
apache.in db2.in hto-mapfuncs.in portblock.in
Log Message:
Remove the most bizare abstraction code I've seen to date
Remove all redundant features from the wrappers
Wrappers now *only* grab the required options and pass them to the real RA
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/AudibleAlarm.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- AudibleAlarm.in 8 Nov 2005 01:18:34 -0000 1.6
+++ AudibleAlarm.in 14 Aug 2006 09:37:21 -0000 1.7
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: AudibleAlarm.in,v 1.6 2005/11/08 01:18:34 xunsun Exp $
+# $Id: AudibleAlarm.in,v 1.7 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA AudibleAlarm, based on original heartbeat RA.
# See OCF RA AudibleAlarm for more information.
@@ -14,26 +14,23 @@
. @HB_RA_DIR@/hto-mapfuncs
usage() {
- echo "Usage: $0 [node1 node2 ... ] {start|stop|restart|status}"
- echo " The node list is an optional space delimited"
- echo " list of hosts that should never sound the alarm."
- echo "$Id: AudibleAlarm.in,v 1.6 2005/11/08 01:18:34 xunsun Exp $";
+ echo "Usage: $0 [node1 node2 ... ] $LEGAL_ACTIONS"
}
+
+if [ $# = 0 ]; then
+ usage
+fi
+
# Get operation name, which is the last argument we are passed.
for arg in "$@"; do
op=$arg
done
-# See how we were called.
-case "$op" in
- start|stop|restart|status)
- ;;
- usage)
- usage; exit 0;;
- *)
- usage; exit 1;;
-esac
-
nodelist=`echo $* | sed 's%'$op'$%%'`
-ra_execocf "rsc_id=AudibleAlarm" "rsc_type=AudibleAlarm" "provider=heartbeat"
$op "nodelist=$nodelist"
+OCF_TYPE=AudibleAlarm
+OCF_RESOURCE_INSTANCE=AudibleAlarm
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+OCF_RESKEY_nodelist=$nodelist; export OCF_RESKEY_nodelist
+ra_execocf $op
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/Delay.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Delay.in 2 Apr 2006 14:35:29 -0000 1.5
+++ Delay.in 14 Aug 2006 09:37:21 -0000 1.6
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: Delay.in,v 1.5 2006/04/02 14:35:29 xunsun Exp $
+# $Id: Delay.in,v 1.6 2006/08/14 09:37:21 andrew Exp $
#
# License: GNU General Public License (GPL)
# Support: [EMAIL PROTECTED]
@@ -15,29 +15,28 @@
#
usage() {
- cat <<-!
- usage: $0 [delay [stopdelay]] {start|stop|status|monitor}";
- $Id: Delay.in,v 1.5 2006/04/02 14:35:29 xunsun Exp $
- !
+ echo "usage: $0 [delay [stopdelay]] $LEGAL_ACTIONS"
exit 1
}
. @HB_RA_DIR@/hto-mapfuncs
-startdelay=
-stopdelay=
-
case $# in
1) op=$1;;
- 2) startdelay=$1; op=$2;;
- 3) startdelay=$1; stopdelay=$2; op=$3;;
+ 2) OCF_RESKEY_startdelay=$1; export OCF_RESKEY_startdelay; op=$2;;
+ 3) OCF_RESKEY_startdelay=$1;
+ OCF_RESKEY_stopdelay=$2;
+ export OCF_RESKEY_startdelay OCF_RESKEY_stopdelay;
+ op=$3;;
*) usage;;
esac
-case $op in
- start|stop|status|monitor)
- ;;
- *)
- usage;;
-esac
-ra_execocf "rsc_id=Delay" "rsc_type=Delay" "provider=heartbeat" $op
"startdelay=$startdelay" "stopdelay=$stopdelay"
+if [ -z $OCF_RESKEY_startdelay ]; then
+ OCF_RESKEY_startdelay=10
+fi
+
+OCF_TYPE=Delay
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_${OCF_RESKEY_startdelay}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $op;;
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/Filesystem.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- Filesystem.in 11 Feb 2006 13:40:42 -0000 1.6
+++ Filesystem.in 14 Aug 2006 09:37:21 -0000 1.7
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: Filesystem.in,v 1.6 2006/02/11 13:40:42 xunsun Exp $
+# $Id: Filesystem.in,v 1.7 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA Filesystem, based on original heartbeat RA.
# See OCF RA Filesystem for more information.
@@ -31,40 +31,40 @@
# Do not put this filesystem in /etc/fstab. This script manages all of
# that for you.
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
. @HB_RA_DIR@/hto-mapfuncs
usage() {
-
-cat <<-EOT;
- usage: $0 <device> <directory> [<fstype> [<options>]]
{start|stop|status}
-
- <device> : name of block device for the filesystem. e.g. /dev/sda1,
- /dev/md0 OR -LFileSystemLabel OR -Uuuid OR an NFS
- specification or a samba share
- <directory> : the mount point for the filesystem
- <fstype> : optional name of the filesystem type. e.g. ext2
- <options> : options to be given as -o options to mount.
-
- $Id: Filesystem.in,v 1.6 2006/02/11 13:40:42 xunsun Exp $
- EOT
+ echo "usage: $0 <device> <directory> [<fstype> [<options>]] $LEGAL_ACTIONS"
+ exit 1
}
# Check the arguments passed to this script
-case $# in
- 3) fstype=""; operation=$3; options="";;
- 4) fstype=$3; operation=$4; options="";;
- 5) fstype=$3; operation=$5; options="$4";;
- *) usage; exit 1;;
-esac
-
-# Look for the 'start', 'stop' or 'status' argument
-case "$operation" in
- start|stop|status);;
- *) usage
- exit 1
- ;;
-esac
-ra_execocf "rsc_id=Filesystem_$1" "rsc_type=Filesystem" "provider=heartbeat"
$operation "device=$1" "directory=$2" "fstype=$fstype" "options=$options"
+if [ $# -lt 3 ]; then
+ usage
+fi
+
+if [ "x$2" != "x" ]; then
+ OCF_RESKEY_device="$1"; shift
+ export OCF_RESKEY_device
+fi
+
+if [ "x$2" != "x" ]; then
+ OCF_RESKEY_directory="$1"; shift
+ export OCF_RESKEY_directory
+fi
+
+if [ "x$2" != "x" ]; then
+ OCF_RESKEY_fstype=$1; shift
+ export OCF_RESKEY_fstype;;
+fi
+
+if [ "x$2" != "x" ]; then
+ OCF_RESKEY_options="$1"; shift
+ export OCF_RESKEY_options;;
+fi
+
+OCF_TYPE=IPaddr
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$OCF_RESKEY_device
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $1
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/ICP.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ICP.in 3 Nov 2005 07:45:51 -0000 1.4
+++ ICP.in 14 Aug 2006 09:37:21 -0000 1.5
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: ICP.in,v 1.4 2005/11/03 07:45:51 xunsun Exp $
+# $Id: ICP.in,v 1.5 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA ICP, based on original heartbeat RA.
# See OCF RA ICP for more information.
@@ -21,63 +21,22 @@
. @HB_RA_DIR@/hto-mapfuncs
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
usage() {
- methods=`ICP_methods`
- methods=`echo $methods | tr ' ' '|'`
- cat <<-! >&1
- usage: $0 <ICP cluster drive ID> <device> {$methods}
- usage: $0 methods
-
- $0 manages an ICP Vortex clustered host drive.
-
- The 'start' operation reserves the given host drive.
- The 'stop' operation releses the given host drive.
- The 'status' operation reports whether the host drive is reserved.
- The 'monitor' operation reports whether the host drive is reserved.
- The 'methods' operation reports on the methods $0 supports
-
- $Id: ICP.in,v 1.4 2005/11/03 07:45:51 xunsun Exp $
- !
- exit 1
+ echo "usage: $0 <ICP cluster drive ID> <device> $LEGAL_ACTIONS"
+ exit 1
}
-#
-# methods: What methods/operations do we support?
-#
-ICP_methods() {
- cat <<-!
- start
- stop
- status
- monitor
- methods
- !
-}
-
-#
-# 'main' starts here...
-#
-case $# in
- 1) if [ "methods" = "$1" ]; then
- ICP_methods
- exit $?
- fi;;
- 3) ;;
- *) usage;;
-esac
-
-# What kind of method was invoked?
-case "$3" in
- start|stop|status|monitor)
- ;;
- methods)
- ICP_methods
- exit $?;;
- *)
- usage;;
-esac
+if [ $# != 3 ]; then
+ usage
+ exit 1
+fi
+
+OCF_TYPE=ICP
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+OCF_RESKEY_driveid=$1
+OCF_RESKEY_device=$2
+export OCF_RESKEY_device OCF_RESKEY_driveid
-ra_execocf "rsc_id=ICP_$1" "rsc_type=ICP" "provider=heartbeat" $3
"driveid=$1" "device=$2"
+ra_execocf $3
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/IPaddr.in,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- IPaddr.in 10 Jun 2006 17:33:30 -0000 1.19
+++ IPaddr.in 14 Aug 2006 09:37:21 -0000 1.20
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: IPaddr.in,v 1.19 2006/06/10 17:33:30 alan Exp $
+# $Id: IPaddr.in,v 1.20 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA IPaddr, based on original heartbeat RA.
# See OCF RA IPaddr for more information.
@@ -21,71 +21,45 @@
# Surprisingly, the "stop" arg removes one. :-)
#
-unset LC_ALL; export LC_ALL # Make ifconfig work in France for David Jules :-)
-unset LANGUAGE; export LANGUAGE # Make ifconfig work in France for Fabrice :-)
-# make ifconfig work in Austria for Gregor Göstl
-# I have no idea why the previous fix didn't fix it for him.
-LC_MESSAGES=C
-export LC_MESSAGES
-
. @HB_RA_DIR@/hto-mapfuncs
-USAGE="usage: $0 <ip-address> {start|stop|status|monitor}";
usage() {
- echo $USAGE >&2
- echo "$Id: IPaddr.in,v 1.19 2006/06/10 17:33:30 alan Exp $"
+ echo "usage: $0 <ip-address> $LEGAL_ACTIONS"
+ exit 1
}
-#
-# Add or remove IP alias for the given IP address...
-#
-
-case $# in
- 1)
- case $1 in
- info) cat <<-!INFO
- Abstract=IP address takeover
- Argument=IP address OR IP address/broadcast address OR IP
address/broadcast address/netmaskbits
- Description:
- An IPaddr resource is an IP address which is to be taken over by \\
- the owning node. An argument is required, and is of this form:
- nnn.nnn.nnn.nnn/bbb.bbb.bbb.bbb
- Where nnn.nnn.nnn.nnn is the IP address to be taken over, and\\
- bbb.bbb.bbb.bbb is the broadcast address to be used with this address.
-
- Since IPaddr is the "default" resource type, it is not necessary\\
- to prefix the IP address by "IPaddr::".
- This allows IPaddr::192.2.4.63 to be abbreviated as 192.2.4.63.
- !INFO
- exit 0;;
- esac;;
- 2) ;;
- *) usage
- exit 1;;
-esac
+if [ $# != 2 ]; then
+ usage
+fi
# We need to split the argument into pieces that IPaddr OCF RA can
# recognize, sed is prefered over Bash specific builtin functions
# for portability.
BASEIP=`echo $1 | sed 's%/.*%%'`
-str=`echo $1 | sed 's%^'$BASEIP'/*%%'`
+OCF_RESKEY_ip=$BASEIP; export OCF_RESKEY_ip
+str=`echo $1 | sed 's%^'$BASEIP'/*%%'`
if [ ! -z "$str" ]; then
- NETMASK=`echo $str | sed 's%/.*%%'`
- str=`echo $str | sed 's%^'$NETMASK'/*%%'`
+ NETMASK=`echo $str | sed 's%/.*%%'`
+ OCF_RESKEY_cidr_netmask=$NETMASK; export OCF_RESKEY_cidr_netmask
- NIC=`echo $str | sed 's%/.*%%'`
- case $NIC in
+ str=`echo $str | sed 's%^'$NETMASK'/*%%'`
+ NIC=`echo $str | sed 's%/.*%%'`
+ case $NIC in
[0-9]*) BROADCAST=$NIC
- NIC=
- ;;
+ OCF_RESKEY_broadcast=$BROADCAST; export OCF_RESKEY_broadcast
+ NIC=
+ ;;
"") ;;
*) BROADCAST=`echo $str | sed -e 's%^'$NIC'/*%%' -e 's%/.*%%'`
- ;;
- esac
+ OCF_RESKEY_nic=$NIC; export OCF_RESKEY_nic
+ OCF_RESKEY_broadcast=$BROADCAST; export OCF_RESKEY_broadcast
+ ;;
+ esac
fi
+
#
# Determine if this IP address is really being served, or not.
# Note that we don't distinguish if *we're* serving it locally...
@@ -122,14 +96,15 @@
}
case $2 in
- start|stop|status)
- ;;
monitor)
ip_monitor
;;
- *) usage
- exit 1
+ *)
;;
esac
-ra_execocf "rsc_id=IPaddr_$BASEIP" "rsc_type=IPaddr" "provider=heartbeat" $2
"ip=$BASEIP" "broadcast=$BROADCAST" "nic=$NIC" "cidr_netmask=$NETMASK"
+OCF_TYPE=IPaddr
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$BASEIP
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/IPaddr2.in,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- IPaddr2.in 10 Jun 2006 17:33:30 -0000 1.12
+++ IPaddr2.in 14 Aug 2006 09:37:21 -0000 1.13
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: IPaddr2.in,v 1.12 2006/06/10 17:33:30 alan Exp $
+# $Id: IPaddr2.in,v 1.13 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA IPaddr2, based on original heartbeat RA.
# See OCF RA IPaddr2 for more information.
@@ -27,50 +27,44 @@
. @HB_RA_DIR@/hto-mapfuncs
-USAGE="usage: $0 ip-address[/netmaskbits[/interface[:label][/broadcast]]]
-{start|stop|status|monitor}\n\nNote: $0 only works on Linux";
+# We need to split the argument into pieces that IPaddr OCF RA can
+# recognize, sed is prefered over Bash specific builtin functions
+# for portability.
usage() {
- echo -e $USAGE >&2
+ echo "usage: $0 <ip-address> $LEGAL_ACTIONS"
}
-#
-# Add or remove IP alias for the given IP address...
-#
-if
- [ $# -ne 2 ]
-then
+if [ $# != 2 ]; then
usage
exit 1
fi
-# We need to split the argument into pieces that IPaddr2 OCF RA can
-# recognize, sed is prefered over Bash specific builtin functions
-# for portability.
-
BASEIP=`echo $1 | sed 's%/.*%%'`
-str=`echo $1 | sed 's%^'$BASEIP'/*%%'`
+OCF_RESKEY_ip=$BASEIP; export OCF_RESKEY_ip
+str=`echo $1 | sed 's%^'$BASEIP'/*%%'`
if [ ! -z "$str" ]; then
- NETMASK=`echo $str | sed 's%/.*%%'`
- str=`echo $str | sed 's%^'$NETMASK'/*%%'`
-
- NIC=`echo $str | sed 's%/.*%%'`
- case $NIC in
- [0-9]*) BROADCAST=$NIC
- NIC=
- ;;
- "") ;;
- *) BROADCAST=`echo $str | sed -e 's%^'$NIC'/*%%' -e 's%/.*%%'`
- ;;
- esac
+ NETMASK=`echo $str | sed 's%/.*%%'`
+ OCF_RESKEY_cidr_netmask=$NETMASK; export OCF_RESKEY_cidr_netmask
+
+ str=`echo $str | sed 's%^'$NETMASK'/*%%'`
+ NIC=`echo $str | sed 's%/.*%%'`
+ case $NIC in
+ [0-9]*) BROADCAST=$NIC
+ OCF_RESKEY_broadcast=$BROADCAST; export OCF_RESKEY_broadcast
+ NIC=
+ ;;
+ "") ;;
+ *) BROADCAST=`echo $str | sed -e 's%^'$NIC'/*%%' -e 's%/.*%%'`
+ OCF_RESKEY_nic=$NIC; export OCF_RESKEY_nic
+ OCF_RESKEY_broadcast=$BROADCAST; export OCF_RESKEY_broadcast
+ ;;
+ esac
fi
-case $2 in
- start|stop|status|monitor) ;;
- *) usage
- exit 1
- ;;
-esac
+OCF_TYPE=IPaddr2
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$BASEIP
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=IPaddr2_$BASEIP" "rsc_type=IPaddr2" "provider=heartbeat"
$2 "ip=$BASEIP" "broadcast=$BROADCAST" "nic=$NIC" "cidr_netmask=$NETMASK"
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/IPsrcaddr.in,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- IPsrcaddr.in 3 Nov 2005 07:45:51 -0000 1.2
+++ IPsrcaddr.in 14 Aug 2006 09:37:21 -0000 1.3
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: IPsrcaddr.in,v 1.2 2005/11/03 07:45:51 xunsun Exp $
+# $Id: IPsrcaddr.in,v 1.3 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA IPsrcaddr, based on original heartbeat RA.
# See OCF RA IPsrcaddr for more information.
@@ -36,31 +36,20 @@
. @HB_RA_DIR@/hto-mapfuncs
-USAGE="usage: $0 ip-address {start|stop|status|monitor}";
+USAGE="usage: $0 <ip-address> $LEGAL_ACTIONS";
usage() {
- echo $USAGE >&2
+ echo $USAGE >&2
+ exit 1
}
-#
-# Add or remove the preferred source IP address to be used for packets
-# originating on the localhost and leaving via the default route.
-#
-
-if
- [ $# -ne 2 ]
-then
- usage
- exit 1
+if [ $# != 2 ]; then
+ usage
fi
-case $2 in
- start|stop|status|monitor)
- ;;
- *)
- usage
- exit 1
- ;;
-esac
+OCF_TYPE=IPsrcaddr
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=IPsrcaddr" "rsc_type=IPsrcaddr" "provider=heartbeat" $2
"ipaddress=$1"
+OCF_RESKEY_ipaddress=$1; export OCF_RESKEY_ipaddres
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/IPv6addr.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- IPv6addr.in 3 Nov 2005 07:42:49 -0000 1.1
+++ IPv6addr.in 14 Aug 2006 09:37:21 -0000 1.2
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: IPv6addr.in,v 1.1 2005/11/03 07:42:49 xunsun Exp $
+# $Id: IPv6addr.in,v 1.2 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA IPv6addr. See OCF RA IPv6addr for more
information.
#
@@ -13,23 +13,18 @@
# Source function library.
. @HB_RA_DIR@/hto-mapfuncs
-usage () {
- echo "Usage: $0 <ipv6addr> {start|stop|status|monitor}"
+usage() {
+ echo "usage: $0 <ip-address> $LEGAL_ACTIONS"
+ exit 1
}
-if [ $# -ne 2 ]; then
- usage
- exit 1
+if [ $# != 2 ]; then
+ usage
fi
-# See how we were called.
-case "$2" in
- start|stop|monitor|status)
- ;;
- *)
- usage
- exit 1
- ;;
-esac
+OCF_TYPE=IPv6addr
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=IPv6addr_$1" "rsc_type=IPv6addr" "provider=heartbeat" $2
"ipv6addr=$1"
+OCF_RESKEY_ipv6addr=$1; export OCF_RESKEY_ipv6addr
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/LVM.in,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- LVM.in 29 Mar 2006 13:56:30 -0000 1.7
+++ LVM.in 14 Aug 2006 09:37:21 -0000 1.8
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: LVM.in,v 1.7 2006/03/29 13:56:30 xunsun Exp $
+# $Id: LVM.in,v 1.8 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA LVM, based on original heartbeat RA.
# See OCF RA LVM for more information.
@@ -19,60 +19,18 @@
. @HB_RA_DIR@/hto-mapfuncs
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
usage() {
- methods=`LVM_methods | grep -v methods`
- methods=`echo $methods | tr ' ' '|'`
- cat <<-! >&1
- usage: $0 <LVM-configuration file> {$methods}
- usage: $0 methods
-
- $0 manages an Linux Volume Manager (LVM) volume as an HA resource
-
- The 'start' operation brings the given volume online
- The 'stop' operation takes the given volume offline
- The 'status' operation reports whether the volume is available
- The 'monitor' operation reports whether the volume seems present
- The 'methods' operation reports on the methods $0 supports
-
- $Id: LVM.in,v 1.7 2006/03/29 13:56:30 xunsun Exp $
- !
- exit 1
+ echo "usage: $0 <LVM-configuration file> $LEGAL_ACTIONS"
+ exit 1
}
-#
-# methods: What methods/operations do we support?
-#
-LVM_methods() {
- cat <<-!
- start
- stop
- status
- monitor
- methods
- !
-}
-
-#
-# 'main' starts here...
-#
-
-case $# in
- 1) if [ "methods" = "$1" ]; then
- LVM_methods
- exit $?
- fi;;
- 2) ;;
- *) usage;;
-esac
-# What kind of method was invoked?
-case "$2" in
- start|stop|status|monitor) ;;
- methods) LVM_methods
- exit $?;;
- *) usage
-esac
+if [ $# != 2 ]; then
+ usage
+fi
+
+OCF_TYPE=LVM
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=LVM_$1" "rsc_type=LVM" "provider=heartbeat" $2
"volgrpname=$1"
+OCF_RESKEY_volgrpname=$1; export OCF_RESKEY_volgrpname
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/LinuxSCSI.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- LinuxSCSI.in 3 Nov 2005 07:45:51 -0000 1.3
+++ LinuxSCSI.in 14 Aug 2006 09:37:21 -0000 1.4
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: LinuxSCSI.in,v 1.3 2005/11/03 07:45:51 xunsun Exp $
+# $Id: LinuxSCSI.in,v 1.4 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA LinuxSCSI, based on original heartbeat RA.
# See OCF RA LinuxSCSI for more information.
@@ -26,104 +26,18 @@
#
. @HB_RA_DIR@/hto-mapfuncs
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
usage() {
- cat <<-! >&1
- usage: $0 <host>:<channel>:<target>[:<lun>] {start|stop|status}
-
- $0 manages the availability of a SCSI device from the point
- of view of the Linux kernel. It makes Linux believe the
- device has gone away, and it can make it come back again.
-
- The purpose of this resource script is to keep admins from
- accidentally messing with a shared disk that is managed by the
- HA subsystem and is currently owned by the other side.
-
- To get maximum benefit from this feature, you should (manually)
- disable the resources on boot, and let your HA software enable
- them when it wants to acquire the disk.
-
- The kernel code says this is potentially dangerous. DO NOT USE
- IT ON AN ACTIVE DEVICE. If the device is inactive, this script
- will make it stay inactive, when given "off". If you inactivate
- the wrong device, you may have to reboot your machine, and your
- data may take a hit.
-
- On the other hand, at least one RAID controller requires the
- use of this technique for it to work correctly in a failover
- environment - so it is believed that it is more stable in this
- usage than the comments in the code imply.
-
- Here are the warnings from the kernel source about the "stop"
- operation as of 2.4.10:
-
- ------------------------------
- Consider this feature pre-BETA.
- CAUTION: This is not for hotplugging your peripherals. As
- SCSI was not designed for this, you could damage your
- hardware and thoroughly confuse the SCSI subsystem.
-
- Similar warnings apply to the "start" operation...
-
- Consider this feature BETA.
- CAUTION: This is not for hotplugging your peripherals.
- As SCSI was not designed for this you could damage your
- hardware !
- However perhaps it is legal to switch on an already connected
- device. It is perhaps not guaranteed this device doesn't corrupt
- an ongoing data transfer.
- -------------------------
-
- So, Caveat Emptor, and test this feature thoroughly on
- your kernel and your configuration with real load on the SCSI
- bus before using it in production!
-
- Another potential trouble spot...
- The order in which you bring up LinuxSCSI resources determines which
- SCSI device they show up as on Linux. If you have two SCSI devices
- in different resource groups they will be brought up asyncronously
- resulting in indeterminate device name assignments. This usually
- happens in an active-active configuration.
-
- To solve this you probably should use LVM or EVMS to manage these
- volumes. LVM and EVMS solve this problem for you by labels they
- keep in the volumes. If you don't use a reasonable volume manager,
- then you'll have to mount by UUID.
-
- $Id: LinuxSCSI.in,v 1.3 2005/11/03 07:45:51 xunsun Exp $
- !
- exit 1
+ echo "usage: $0 <host>:<channel>:<target>[:<lun>] $LEGAL_ACTIONS"
+ exit 1
}
-scsi_methods() {
- cat <<-!
- start
- stop
- status
- methods
- !
-}
-
-case $# in
- 1) if [ $1 = "methods" ]; then
- scsi_methods
- exit $?
- fi;;
- 2) ;;
- *) usage;;
-esac
-
-# Look for the start, stop, status, or methods calls...
-case "$2" in
- methods)
- scsi_methods
- exit $?;;
- start|stop|status)
- ;;
- *)
- usage;;
-esac
+if [ $# != 2 ]; then
+ usage
+fi
+
+OCF_TYPE=LinuxSCSI
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=LinuxSCSI_$1" "rsc_type=LinuxSCSI" "provider=heartbeat" $2
"scsi=$1"
+OCF_RESKEY_scsi=$1; export OCF_RESKEY_scsi
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/MailTo.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- MailTo.in 3 Nov 2005 07:45:51 -0000 1.3
+++ MailTo.in 14 Aug 2006 09:37:21 -0000 1.4
@@ -18,35 +18,31 @@
. @HB_RA_DIR@/hto-mapfuncs
usage() {
- echo "Usage: $0 <email> [<subject>] {start|stop|status}"
- echo "$Id: MailTo.in,v 1.3 2005/11/03 07:45:51 xunsun Exp $"
+ echo "Usage: $0 <email> [<subject>] $LEGAL_ACTIONS"
exit 1
}
-#
-# See how we were called.
-#
case "$#" in
0|1) echo "At least 1 Email address has to be given!"
usage
;;
- 2) email=$1
+ 2)
cmd=$2
- subject=""
+ OCF_RESKEY_email=$1
+ export OCF_RESKEY_email
;;
- 3) email=$1
+ 3)
cmd=$3
- subject=$2
+ OCF_RESKEY_email=$1
+ OCF_RESKEY_subject=$2
+ export OCF_RESKEY_email OCF_RESKEY_subject
;;
*) echo "Additional parameters found: $# but max. 3 are allowed!"
usage;;
esac
-case "$cmd" in
- start|stop|status)
- ;;
- *) usage
- ;;
-esac
+OCF_TYPE=MailTo
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=MailTo" "rsc_type=MailTo" "provider=heartbeat" $cmd
"email=$email" "subject=$subject"
+ra_execocf $cmd
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/Raid1.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- Raid1.in 3 Nov 2005 07:45:51 -0000 1.3
+++ Raid1.in 14 Aug 2006 09:37:21 -0000 1.4
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: Raid1.in,v 1.3 2005/11/03 07:45:51 xunsun Exp $
+# $Id: Raid1.in,v 1.4 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA Raid1, based on original heartbeat RA.
# See OCF RA Raid1 for more information.
@@ -21,41 +21,23 @@
# The "status" arg just prints out whether the device is running or not
#
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
# Source function library.
. @HB_RA_DIR@/hto-mapfuncs
usage() {
-cat <<-EOT
- usage: $0 <raidtab_config_file> <md_dev_name> {start|stop|status}
-
- <raidtab_config_file> : name of MD configuration file. e.g. /etc/raidtab
- <md_dev_name> : of the form /dev/md?? (the block device to use)
-
- $Id: Raid1.in,v 1.3 2005/11/03 07:45:51 xunsun Exp $
-EOT
+ echo "usage: $0 <raidtab_config_file> <md_dev_name> $LEGAL_ACTIONS"
}
-if [ ! -f "$1" ] ; then
- echo "ERROR: Couldn't open file $1"
- usage
- exit 1
+if [ $# != 3 ]; then
+ usage
+ exit 1
fi
-if [ ! -b "$2" ] ; then
- echo "ERROR: Couldn't find MD device $MDDEV. Expected /dev/md* to exist"
- usage
- exit 1
-fi
-
-case "$3" in
- start|stop|status)
- ;;
- *) usage
- exit 1
- ;;
-esac
-
-ra_execocf "rsc_id=Raid1_$2" "rsc_type=Raid1" "provider=heartbeat" $3
"raidconf=$1" "raiddev=$2"
+OCF_TYPE=Raid1
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+OCF_RESKEY_raidconf=$1
+OCF_RESKEY_raiddev=$2
+export OCF_RESKEY_raiddev OCF_RESKEY_raidconf
+ra_execocf $3
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/ServeRAID.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ServeRAID.in 3 Nov 2005 07:45:51 -0000 1.5
+++ ServeRAID.in 14 Aug 2006 09:37:21 -0000 1.6
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: ServeRAID.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
+# $Id: ServeRAID.in,v 1.6 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA ServeRAID, based on original heartbeat RA.
# See OCF RA ServeRAID for more information.
@@ -21,66 +21,21 @@
# Source function library.
. @HB_RA_DIR@/hto-mapfuncs
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
usage() {
- cat <<-! >&1
- usage: $0 <serveraid#> <sharedmergegroup#> {start|stop|status}
-
- The serveraid# is the number of the ServeRAID adapter
- ServeRAID adapters are numbered starting from 1.
-
- The shared merge group number is a number between 1 and 8 inclusive.
- It indicates to the controller which logical disk to fail over.
-
- node1 10.0.0.170 ServeRAID::1::1
-
- PREREQUISITES:
- You must configure your ServeRAID adapters for clustering for this
- to work.
-
- To do this, you must use the bootable "ServeRAID Support CD" and right
- click your controller and pick "configure for clustering". The Linux
- version of the ServeRAID manager does not have the "configure for
- clustering" option.
-
- You will need at least version 6.10 (~July 2003 release) of the ipssend
- command for this script to work. The official releases are available
from
- IBM website.
-
- $Id: ServeRAID.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
- !
- exit 1
-}
-
-ServeRAID_methods() {
- cat <<-!
- start
- stop
- status
- methods
- !
+ echo "usage: $0 <serveraid#> <sharedmergegroup#> $LEGAL_ACTIONS"
+ exit 1
}
-case $# in
- 1) if [ "$1" = "methods" ]; then
- ServeRAID_methods
- exit $?
- fi;;
- 3) ;;
- *) usage;;
-esac
-
-# Look for the start, stop, status, or methods calls...
-case "$3" in
- stop|start|status)
- ;;
- methods)
- ServeRAID_methods
- exit $?;;
- *)
- usage;;
-esac
+if [ $# != 3 ]; then
+ usage
+fi
+
+OCF_TYPE=ServeRAID
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+OCF_RESKEY_serveraid=$1
+OCF_RESKEY_mergegroup=$2
+export OCF_RESKEY_mergegroup OCF_RESKEY_serveraid
-ra_execocf "rsc_id=ServeRAID_$1" "rsc_type=ServeRAID" "provider=heartbeat" $3
"serveraid=$1" "mergegroup=$2"
+ra_execocf $3
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/WAS.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- WAS.in 3 Nov 2005 07:45:51 -0000 1.5
+++ WAS.in 14 Aug 2006 09:37:21 -0000 1.6
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: WAS.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
+# $Id: WAS.in,v 1.6 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA WAS, based on original heartbeat RA.
# See OCF RA WAS for more information.
@@ -19,93 +19,34 @@
# Source function library.
. @HB_RA_DIR@/hto-mapfuncs
-WGET=/usr/bin/wget
-#
-#
unset LC_ALL; export LC_ALL
unset LANGUAGE; export LANGUAGE
usage() {
- methods=`WAS_methods | grep -v methods`
- methods=`echo $methods | tr ' ' '|'`
cat <<-! >&1
For the single server edition of WAS:
- usage: $0 [<WAS-configuration file>] {$methods}
- usage: $0 methods
+ usage: $0 [<WAS-configuration file>] $LEGAL_ACTIONS
For the advanced edition of WAS:
- usage: $0 [<WAS-(snoop)-port-number>] {$methods}
- usage: $0 methods
-
- $0 manages a Websphere Application Server (WAS) as an HA resource
-
- The 'start' operation starts WAS.
- The 'stop' operation stops WAS.
- The 'status' operation reports whether WAS is running
- The 'monitor' operation reports whether the WAS seems to be working
- (httpd also needs to be working for this case)
- The 'methods' operation reports on the methods $0 supports
-
- This is known to work with the Single Server edition of Websphere,
- and is believed to work with the Advanced edition too.
- Since the Advanced Edition has no configuration file (it's in a the
- database) you need to give a port number instead of a
- configuration file for this config parameter.
-
- The start and stop operations must be run as root.
-
- The status operation will report a pid of "-" for the
- WAS root process using unless it is run as root.
-
- If you don't have xmllint on your system, parsing of WAS
- configuration files is very primitive.
- In this case, the port specification we need from the XML
- config file has to be on the same line as the
- first part of the <transports/> tag.
-
- We run servlet/snoop on the first transport port listed in
- the config file for the "monitor" operation.
-
- $Id: WAS.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
+ usage: $0 [<WAS-(snoop)-port-number>] $LEGAL_ACTIONS
!
exit 1
}
-#
-# methods: What methods/operations do we support?
-#
-WAS_methods() {
- cat <<-!
- start
- stop
- status
- methods
- !
- if
- [ -f $WGET -a -x $WGET ]
- then
- echo monitor
- fi
-}
-
-#
-# 'main' starts here...
-#
-config=
-port=
case $# in
1)
op=$1;;
2)
op=$2
if [ -f $1 ]; then
- config=$1
+ OCF_RESKEY_config=$1; export OCF_RESKEY_config
else
case $1 in
*[^0-9]*)
echo "ERROR: $1 is neither a WAS configuration file nor a valid
port number!"
usage;;
*)
+ OCF_RESKEY_port=$1; export OCF_RESKEY_port
port=$1;;
esac
fi;;
@@ -113,13 +54,8 @@
usage;;
esac
-# What kind of method was invoked?
-case "$op" in
- start|stop|status|monitor)
- ;;
- methods) WAS_methods
- exit $?;;
- *) usage;;
-esac
+OCF_TYPE=WAS
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=WAS" "rsc_type=WAS" "provider=heartbeat" $op
"config=$config" "port=$port"
+ra_execocf $op
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/WinPopup.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- WinPopup.in 29 Mar 2006 15:48:55 -0000 1.3
+++ WinPopup.in 14 Aug 2006 09:37:21 -0000 1.4
@@ -25,8 +25,7 @@
. @HB_RA_DIR@/hto-mapfuncs
usage() {
- echo "Usage: $0 [workstationfile] {start|stop|status}"
- echo "$Id: WinPopup.in,v 1.3 2006/03/29 15:48:55 xunsun Exp $"
+ echo "Usage: $0 [workstationfile] $LEGAL_ACTIONS"
exit 1
}
@@ -46,16 +45,11 @@
hostfile="hosts"
fi
-case "$cmd" in
- start|stop)
- ;;
- # Not quite sure what to do with this one...
- status)
- echo "status not implemented yet"
- exit 0
- ;;
- *)
- usage
-esac
+OCF_RESKEY_hostfile=$hostfile
+export OCF_RESKEY_hostfile
-ra_execocf "rsc_id=WinPopup" "rsc_type=WinPopup" "provider=heartbeat" $cmd
"hostfile=$hostfile"
+OCF_TYPE=WinPopup
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $cmd
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/Xinetd.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Xinetd.in 13 Nov 2005 17:16:43 -0000 1.5
+++ Xinetd.in 14 Aug 2006 09:37:21 -0000 1.6
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: Xinetd.in,v 1.5 2005/11/13 17:16:43 davidlee Exp $
+# $Id: Xinetd.in,v 1.6 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA Xinetd, based on original heartbeat RA.
# See OCF RA Xinetd for more information.
@@ -14,32 +14,18 @@
# Source function library.
. @HB_RA_DIR@/hto-mapfuncs
[EMAIL PROTECTED]@
-RCFILE=$ETC/xinetd.d/$1
-
xup_usage () {
- echo "Usage: $0 <xinetd-service-name> {start|stop|restart|status}"
+ echo "Usage: $0 <xinetd-service-name> $LEGAL_ACTIONS"
+ exit 1
}
if [ $# -ne 2 ]; then
xup_usage
- exit 1
fi
-# Make sure the first parameter is a valid xinetd service name
-if [ ! -f $RCFILE ]; then
- echo "ERROR: Service descriptor $RCFILE not found!"
- xup_usage
- exit 1
-fi
-
-# See how we were called.
-case "$2" in
- start|stop|restart|status)
- ;;
- *)
- xup_usage
- exit 1
-esac
+OCF_TYPE=Xinetd
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-ra_execocf "rsc_id=Xinetd" "rsc_type=Xinetd" "provider=heartbeat" $2
"service=$1"
+OCF_RESKEY_service=$1; export OCF_RESKEY_service
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/apache.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- apache.in 3 Nov 2005 07:45:51 -0000 1.6
+++ apache.in 14 Aug 2006 09:37:21 -0000 1.7
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: apache.in,v 1.6 2005/11/03 07:45:51 xunsun Exp $
+# $Id: apache.in,v 1.7 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA apache, based on original heartbeat RA. See
# OCF RA apache for more information.
@@ -14,72 +14,26 @@
# node1 10.0.0.170 apache::/opt/IBMHTTPServer/conf/httpd.conf
# node1 10.0.0.170 IBMhttpd
#
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
. @HB_RA_DIR@/hto-mapfuncs
-WGETNAME=wget
-
usage() {
- mstr=`methods_apache | tr '\012' '|' | sed 's%|$%%' `
- cat <<-!
- usage: $0 [config-file-pathname] {$mstr}
-
- The optional [config-file-pathname] is the pathname to the configuration
- file for this web server. Various appropriate defaults are assumed by
- the apache OCF RA if no config file is specified, depending on how this
- command is invoked. See apache OCF RA for more information.
-
- start start the web server
-
- stop stop the web server
-
- status return the status of the web server
-
- methods return the set of commands we support
-
- monitor return TRUE if the web server appears to be working
- For this to be supported, you must configure mod_status
- and give it a server-status URL. You have to have
- installed $WGETNAME for this to work. The monitor operation
- won't work if the web server is not configured properly;-)
-
- $Id: apache.in,v 1.6 2005/11/03 07:45:51 xunsun Exp $
- !
- exit 1
-}
-
-methods_apache() {
- cat <<-!
- start
- stop
- status
- methods
- !
- if which $WGETNAME > /dev/null 2>&1; then
- echo "monitor"
- fi
+ echo "usage: $0 [config-file-pathname] $LEGAL_ACTIONS"
+ exit 1
}
case $# in
1) op=$1
- configfile=
;;
- 2) configfile=$1
+ 2) OCF_RESKEY_configfile=$1; export OCF_RESKEY_configfile
op=$2
;;
*) usage
;;
esac
-case $op in
- start|stop|status|monitor)
- ;;
- methods)
- methods_apache
- exit 0;;
- *)
- usage;;
-esac
-ra_execocf "rsc_id=apache" "rsc_type=apache" "provider=heartbeat" $op
"configfile=$configfile"
+OCF_TYPE=apache
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$OCF_RESKEY_configfile
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $op
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/db2.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- db2.in 3 Nov 2005 07:45:51 -0000 1.5
+++ db2.in 14 Aug 2006 09:37:21 -0000 1.6
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: db2.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
+# $Id: db2.in,v 1.6 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA db2, based on original heartbeat RA.
# See OCF RA db2 for more information.
@@ -18,70 +18,18 @@
. @HB_RA_DIR@/hto-mapfuncs
-unset LC_ALL; export LC_ALL
-unset LANGUAGE; export LANGUAGE
-
usage() {
- methods=`db2_methods`
- methods=`echo $methods | tr ' ' '|'`
- cat <<-! >&1
- usage: $0 db2-database-owner-id {$methods}
- usage: $0 methods
-
- $0 manages a DB2 Universal Database instance as an HA resource.
-
- The 'start' operation starts the database.
- The 'stop' operation stops the database.
- The 'status' operation reports whether the database is running
- The 'monitor' operation reports whether the database seems to be working
- The 'methods' operation reports on the methods $0 supports
-
- $Id: db2.in,v 1.5 2005/11/03 07:45:51 xunsun Exp $
- !
- exit 1
+ echo "usage: $0 db2-database-owner-id $LEGAL_ACTIONS"
+ exit 1
}
-#
-# methods: What methods/operations do we support?
-#
-db2_methods() {
- cat <<-!
- start
- stop
- status
- monitor
- methods
- !
-}
-
-#
-# 'main' starts here...
-#
-
-case $# in
- 1) if [ "methods" = "$1" ]; then
- db2_methods
- exit $?
- fi;;
- 2) ;;
- *) usage;;
-esac
-
-if [ "$2" = "methods" ]; then
- db2_methods
- exit $?
+if [ $# != 2 ]; then
+ usage
fi
-US=`id -u -n`
-US=`echo $US`
-if [ $US != root -a $US != $1 ]; then
- echo "ERROR: $0 must be run as root or $1"
- exit 1
-fi
+OCF_TYPE=db2
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1
+export OCF_TYPE OCF_RESOURCE_INSTANCE
-# What kind of method was invoked?
-case "$2" in
- start|stop|status|monitor);;
- *) usage;;
-esac
-ra_execocf "rsc_id=db2_$1" "rsc_type=db2" "provider=heartbeat" $2
"instance=$1"
+OCF_RESKEY_instance=$1; export OCF_RESKEY_instance
+ra_execocf $2
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/hto-mapfuncs.in,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- hto-mapfuncs.in 11 Feb 2006 13:03:40 -0000 1.17
+++ hto-mapfuncs.in 14 Aug 2006 09:37:21 -0000 1.18
@@ -7,11 +7,14 @@
#
#set -x
-PARAMETER_SPLIT_SIGN="="
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
+OCF_RA_VERSION_MAJOR=1 ; export OCF_RA_VERSION_MAJOR
+OCF_RA_VERSION_MINOR=0 ; export OCF_RA_VERSION_MINOR
+OCF_ROOT=$OCF_ROOT_DIR ; export OCF_ROOT
+
+LEGAL_ACTIONS="(start|stop|status|usage|meta-data)"
log_and_print(){
ha_log "$*"
@@ -22,162 +25,74 @@
# rsc_id=rsc1 rsc_type=IPaddr2 provide=heartbeat start ip=192.168.0.1 .....
#
ra_execocf(){
- ra_ocfinit $*
- shift 4
- ra_setenv $*
-
- ra_getpathname
+ if [ "x${1}" = "x" ]; then
+ log_and_print "ERROR: No action specfied."
+ usage
+ exit 1
+ fi
+
+ . @hb_libdir@/ocf-shellfuncs
+
+ __ACTION=$1
+ __SCRIPT_NAME="${OCF_RA_DIR}/heartbeat/${OCF_TYPE}"
+
+ if [ "x${OCF_TYPE}" = "x" ]; then
+ log_and_print "ERROR: Internal error. No value for OCF_TYPE specified"
+ exit 1
+ fi
+
+ if [ ! -x $__SCRIPT_NAME ]
+ then
+ log_and_print "ERROR: $__SCRIPT_NAME is not an executable file "
+ exit 1
+ fi
+
+ # execute ocf ra and get return value
+ case $__ACTION in
+ start) $__SCRIPT_NAME start;;
+ stop) $__SCRIPT_NAME stop ;;
+ monitor) $__SCRIPT_NAME monitor;;
+ status) $__SCRIPT_NAME monitor;;
- if [ ! -x $RAOCFPATH ]
- then
- log_and_print "ERR $RAOCFPATH is not an executable file "
- exit 1
-
- fi
-
- # execute ocf ra and get return value
- case $OPERATION in
- start) $RAOCFPATH start;;
- stop) $RAOCFPATH stop ;;
- monitor) $RAOCFPATH monitor;;
- status) $RAOCFPATH status;;
-
usage|help) usage;;
- *) log_and_print "ERROR: Unknown operation: $OPERATION"
+ *) log_and_print "ERROR: Unknown operation: $__ACTION"
usage
exit 1;;
- esac
-
- ocf_return_status=$?
- case $ocf_return_status in
+ esac
+
+ ocf_return_status=$?
+ case $ocf_return_status in
$OCF_SUCCESS)
- case $OPERATION in
- monitor|status) log_and_print "INFO: $rsc_type Running
OK";;
- *) log_and_print "INFO: $rsc_type
Success";;
- esac
- ;;
+ case $__ACTION in
+ monitor|status) log_and_print "INFO: $rsc_type Running
OK";;
+ *) log_and_print "INFO: $rsc_type
Success";;
+ esac;;
$OCF_ERR_GENERIC)
- log_and_print "ERROR: $rsc_type Generic error"
- ;;
+ log_and_print "ERROR: $rsc_type Generic error";;
$OCF_ERR_ARGS)
- log_and_print "ERROR: $rsc_type Incompliant argument"
- ;;
+ log_and_print "ERROR: $rsc_type Incompliant argument";;
+
$OCF_ERR_UNIMPLEMENTED)
- log_and_print "ERROR: $rsc_type Function unimplemented"
- ;;
+ log_and_print "ERROR: $rsc_type Function unimplemented";;
+
$OCF_ERR_PERM)
- log_and_print "ERROR: $rsc_type User had insufficient privilege"
- ;;
+ log_and_print "ERROR: $rsc_type User had insufficient
privilege";;
+
$OCF_ERR_INSTALLED)
- log_and_print "ERROR: $rsc_type Program is not installed"
- ;;
+ log_and_print "ERROR: $rsc_type Program is not installed";;
+
$OCF_ERR_CONFIGURED)
- log_and_print "ERROR: $rsc_type Program is not configured"
- ;;
+ log_and_print "ERROR: $rsc_type Program is not configured";;
+
$OCF_NOT_RUNNING)
- log_and_print "INFO: $rsc_type Resource is stopped"
- ;;
+ log_and_print "INFO: $rsc_type Resource is stopped";;
*)
- echo $?
- log_and_print "ERROR: $rsc_type Unknown error"
+ log_and_print "ERROR: $rsc_type Unknown error:
$ocf_return_status"
exit 1
;;
esac
return $ocf_return_status
}
-
-ra_ocfinit(){
-
- RSCIDPAIR=$1
- RSCTYPEPAIR=$2
-
- RSCTYPE=`echo "$RSCTYPEPAIR" | cut -d${PARAMETER_SPLIT_SIGN} -f2`
- PROVIDERPAIR=$3
- PROVIDER=`echo "$PROVIDERPAIR" | cut -d${PARAMETER_SPLIT_SIGN} -f2`
- OPERATION=$4
-
-
- setup_OCF_env_vars $RSCIDPAIR
- setup_OCF_env_vars $RSCTYPEPAIR
- setup_OCF_env_vars $PROVIDERPAIR
-
- OCF_RA_VERSION_MAJOR=1 ; export OCF_RA_VERSION_MAJOR
- OCF_RA_VERSION_MINOR=0 ; export OCF_RA_VERSION_MINOR
- OCF_ROOT=$OCF_ROOT_DIR ; export OCF_ROOT
-
- . @hb_libdir@/ocf-shellfuncs
-}
-
-ra_getpathname(){
- BASENAME=`basename $RSCTYPE`
- if [ $BASENAME = $RSCTYPE ]
- then
- RAOCFPATH="${OCF_RA_DIR}${PROVIDER}/${BASENAME}"
- else
- RAOCFPATH="${RSCTYPE}"
- fi
-}
-
-ra_setenv(){
-
- lastenvar=
- for envar in $*
- do
- ifvarname=`echo $envar | cut -s -d${PARAMETER_SPLIT_SIGN} -f1`
- if [ -z $ifvarname ]; then
- envar="$lastenvar $envar"
- setup_OCF_prefix $envar
- else
- setup_OCF_prefix $envar
- fi
- lastenvar=$envar
- done
-}
-
-setup_OCF_prefix(){
-
- hbvarname=`echo "$envar" | cut -d${PARAMETER_SPLIT_SIGN} -f1`
- hbvarvalue=`echo "$envar" | cut -d${PARAMETER_SPLIT_SIGN} -f2-`
- ocfvarname="OCF_RESKEY_${hbvarname}"
-
- eval $ocfvarname='$hbvarvalue'
- export $ocfvarname
-}
-
-setup_OCF_env_vars(){
- hbvarname=`echo "$1" | cut -d${PARAMETER_SPLIT_SIGN} -f1`
- hbvarvalue=`echo "$1" | cut -d${PARAMETER_SPLIT_SIGN} -f2`
-
- case $hbvarname in
- rsc_id)
- if [ ! -z "$hbvarvalue" ]
- then
- ocfvarname="OCF_RESOURCE_INSTANCE"
- eval $ocfvarname=$hbvarvalue
- export $ocfvarname
- fi
- ;;
- rsc_type)
- if [ ! -z "hbvarvalue" ]
- then
- rsc_type=$hbvarvalue
- ocfvarname="OCF_RESOURCE_TYPE"
- eval $ocfvarname=$hbvarvalue
- export $ocfvarname
- fi
- ;;
- provider)
- if [ ! -z "hbvarvalue" ]
- then
- ocfvarname="OCF_RESOURCE_PROVIDER"
- eval $ocfvarname=$hbvarvalue
- export $ocfvarname
- fi
- ;;
- *)
- ;;
- esac
-}
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/resources/heartbeat/portblock.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- portblock.in 3 Nov 2005 07:45:51 -0000 1.4
+++ portblock.in 14 Aug 2006 09:37:21 -0000 1.5
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: portblock.in,v 1.4 2005/11/03 07:45:51 xunsun Exp $
+# $Id: portblock.in,v 1.5 2006/08/14 09:37:21 andrew Exp $
#
# Description: wrapper of OCF RA portblock, based on original heartbeat RA.
# See OCF RA portblock for more information.
@@ -12,47 +12,23 @@
#
. @HB_RA_DIR@/hto-mapfuncs
-CMD=`basename $0`
usage()
{
- cat <<-!USAGE >&2
- usage: $CMD {udp|tcp} portno,portno {block|unblock} {start|stop|status}
-
- $CMD is used to temporarily block ports using iptables.
-
- It can be used to turn off a port before bringing
- up an IP address, and enable it after a service is started.
- To do that for samba, the following resource line can be used:
-
- $CMD::tcp::137,138::block \\
- 10.10.10.20 \\
- nmbd smbd \\
- $CMD::tcp::137,138::unblock
-
- This will do the follwing things:
-
- - DROP all incoming packets for TCP ports 137 and 138
- - Bring up the IP alias 10.10.10.20
- - start the nmbd and smbd services
- - Re-enable TCP ports 137 and 138
- (enable normal firewall rules on those ports)
-
- This prevents clients from getting ICMP port unreachable
- if they try to reconnect to the service after the alias is
- enabled but before nmbd and smbd are running. These packets
- will cause some clients to give up attempting to reconnect to
- the server.
-
- NOTE: iptables is linux-specific...
-
- !USAGE
- exit 1
+ echo "usage: $0 {udp|tcp} portno,portno {block|unblock} $LEGAL_ACTIONS"
+ exit 1
}
-case $4 in
- start|stop|status)
- ;;
- *)
- usage;;
-esac
-ra_execocf "rsc_id=portblock_${1}_$2" "rsc_type=portblock"
"provider=heartbeat" $4 "protocol=$1" "portno=$2" "action=$3"
+if [ $# != 3 ]; then
+ usage
+fi
+
+OCF_RESKEY_protocol=$1
+OCF_RESKEY_portno=$2
+OCF_RESKEY_action=$3
+export OCF_RESKEY_action OCF_RESKEY_portno OCF_RESKEY_action
+
+OCF_TYPE=portblock
+OCF_RESOURCE_INSTANCE=${OCF_TYPE}_$1_$2
+export OCF_TYPE OCF_RESOURCE_INSTANCE
+
+ra_execocf $4
------------------------------
_______________________________________________
Linux-ha-cvs mailing list
[email protected]
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
End of Linux-ha-cvs Digest, Vol 33, Issue 25
********************************************