[Cluster-devel] cluster/rgmanager/src/resources fs.sh ip.sh nf ...
lhh at sourceware.org
lhh at sourceware.org
Thu Apr 19 17:53:07 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: lhh at sourceware.org 2007-04-19 18:53:05
Modified files:
rgmanager/src/resources: fs.sh ip.sh nfsclient.sh vm.sh
Log message:
Cleanups to make the resource agents behave better (return OCF_NOT_RUNNING, for example)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/fs.sh.diff?cvsroot=cluster&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/ip.sh.diff?cvsroot=cluster&r1=1.23&r2=1.24
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/nfsclient.sh.diff?cvsroot=cluster&r1=1.15&r2=1.16
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/vm.sh.diff?cvsroot=cluster&r1=1.3&r2=1.4
--- cluster/rgmanager/src/resources/fs.sh 2007/04/05 15:08:20 1.21
+++ cluster/rgmanager/src/resources/fs.sh 2007/04/19 17:53:05 1.22
@@ -527,7 +527,7 @@
if [ -z "$dev" ]; then
ocf_log err \
"fs (isMounted): Could not match $1 with a real device"
- return $FAIL
+ return $OCF_ERR_ARGS
fi
mp=$2
@@ -939,7 +939,7 @@
;;
$NO) # not mounted, continue
;;
- $FAIL)
+ *)
return $FAIL
;;
esac
@@ -1149,9 +1149,6 @@
umount_failed=
done=$YES
;;
- $FAIL)
- return $FAIL
- ;;
$YES)
sync; sync; sync
ocf_log info "unmounting $mp"
@@ -1236,6 +1233,19 @@
;;
status|monitor)
isMounted ${OCF_RESKEY_device} ${OCF_RESKEY_mountpoint}
+ case $? in
+ $NO)
+ ocf_log info "fs:${OCF_RESKEY_name}: ${OCF_RESKEY_device} is not mounted on ${OCF_RESKEY_mountpoint}"
+ exit $OCF_NOT_RUNNING
+ ;;
+ $YES)
+ ;;
+ *)
+ ocf_log err "fs:${OCF_RESKEY_name}: ${OCF_RESKEY_device} is not mounted on ${OCF_RESKEY_mountpoint}"
+ exit $OCF_ERR_GENERIC
+ ;;
+ esac
+
if [ $? -ne $YES ]; then
ocf_log err "fs:${OCF_RESKEY_name}: ${OCF_RESKEY_device} is not mounted on ${OCF_RESKEY_mountpoint}"
exit $OCF_ERR_GENERIC
--- cluster/rgmanager/src/resources/ip.sh 2007/04/05 15:08:20 1.23
+++ cluster/rgmanager/src/resources/ip.sh 2007/04/19 17:53:05 1.24
@@ -915,7 +915,7 @@
;;
status|monitor)
ip_op ${OCF_RESKEY_family} status ${OCF_RESKEY_address}
- [ $? -ne 0 ] && exit $OCF_ERR_GENERIC
+ [ $? -ne 0 ] && exit $OCF_NOT_RUNNING
check_interface_up ${OCF_RESKEY_family} ${OCF_RESKEY_address}
exit $?
--- cluster/rgmanager/src/resources/nfsclient.sh 2007/04/05 15:08:20 1.15
+++ cluster/rgmanager/src/resources/nfsclient.sh 2007/04/19 17:53:05 1.16
@@ -83,6 +83,15 @@
<content type="string"/>
</parameter>
+ <parameter name="svcname" inherit="service%name">
+ <longdesc lang="en">
+ </longdesc>
+ <shortdesc lang="en">
+ </shortdesc>
+ <content type="string"/>
+ </parameter>
+
+
<parameter name="fsid" inherit="fsid">
<longdesc lang="en">
File system ID inherited from the parent nfsexport/
@@ -323,7 +332,8 @@
rv=$?
if [ $rv -ne 0 ]; then
- ocf_log err "nfsclient:$OCF_RESKEY_name is missing!"
+ ocf_log info "nfsclient:$OCF_RESKEY_name is not running!"
+ exit $OCF_NOT_RUNNING
fi
;;
--- cluster/rgmanager/src/resources/vm.sh 2007/04/05 15:08:20 1.3
+++ cluster/rgmanager/src/resources/vm.sh 2007/04/19 17:53:05 1.4
@@ -22,6 +22,8 @@
export PATH
+. $(dirname $0)/ocf-shellfuncs || exit 1
+
#
# Virtual Machine start/stop script (requires the xm command)
#
@@ -346,8 +348,28 @@
#
status()
{
- xm list $OCF_RESKEY_name &> /dev/null
- return $?
+ declare line
+
+ line=$(virsh domstate $OCF_RESKEY_name)
+ if [ "$line" = "" ]; then
+ return $OCF_NOT_RUNNING
+ fi
+
+ if [ "$line" = "blocked" ]; then
+ return $OCF_SUCCESS
+ elif [ "$line" = "running" ]; then
+ return $OCF_SUCCESS
+ elif [ "$line" = "in shutdown" ]; then
+ return $OCF_SUCCESS
+ elif [ "$line" = "shut off" ]; then
+ return $OCF_NOT_RUNNING
+ fi
+
+ #
+ # Crashed or paused
+ #
+
+ return $OCF_ERR_GENERIC
}
More information about the Cluster-devel
mailing list