From: lhh@sourceware.org <lhh@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/rgmanager/src/resources ip.sh ocf-shel ...
Date: 2 May 2007 18:26:27 -0000 [thread overview]
Message-ID: <20070502182627.15879.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: lhh at sourceware.org 2007-05-02 18:26:27
Modified files:
rgmanager/src/resources: ip.sh ocf-shellfuncs service.sh vm.sh
Log message:
Fix error in status intervals for vm.sh
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/ip.sh.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.1&r2=1.21.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/ocf-shellfuncs.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.1&r2=1.3.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/service.sh.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.7.2.2&r2=1.7.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/vm.sh.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.1&r2=1.1.2.2
--- cluster/rgmanager/src/resources/ip.sh 2007/01/26 20:45:25 1.21.2.1
+++ cluster/rgmanager/src/resources/ip.sh 2007/05/02 18:26:26 1.21.2.2
@@ -86,6 +86,21 @@
<content type="string"/>
</parameter>
+ <parameter name="ethernet_device">
+ <longdesc lang="en">
+ If set, forces the use of the specified ethernet
+ device for IP address assignment. Usually,
+ an interface is picked which has an IP in the
+ same subnet as the specified IP address.
+ </longdesc>
+
+ <shortdesc lang="en">
+ Ethernet device
+ </shortdesc>
+
+ <content type="string"/>
+ </parameter>
+
<parameter name="monitor_link">
<longdesc lang="en">
Enabling this causes the status check to fail if
@@ -397,7 +412,7 @@
{
declare idx dev ifaddr
declare ifaddr_exp
-
+
while read idx dev ifaddr; do
isSlave $dev
@@ -413,6 +428,11 @@
done < <(/sbin/ip -o -f inet6 addr | awk '{print $1,$2,$4}')
+ if [ -n "$OCF_RESKEY_ethernet_device" ]; then
+ ip_list_interfaces
+ return $?
+ fi
+
return 0
}
@@ -579,6 +599,25 @@
}
+#
+# When a user wants to use a specific device, just list all
+# devices to make sure the device exists on the system
+#
+ip_list_interfaces()
+{
+ while read idx dev; do
+ dev=${dev/:/}
+
+ isSlave $dev
+ if [ $? -ne 2 ]; then
+ continue
+ fi
+
+ echo $dev none none
+ done < <(/sbin/ip -o -f link addr | awk '{print $1,$2}')
+}
+
+
ipv4_list_interfaces()
{
declare idx dev ifaddr
@@ -590,12 +629,15 @@
continue
fi
- idx=${idx/:/}
-
echo $dev ${ifaddr/\/*/} ${ifaddr/*\//}
done < <(/sbin/ip -o -f inet addr | awk '{print $1,$2,$4}')
-
+
+ if [ -n "$OCF_RESKEY_ethernet_device" ]; then
+ ip_list_interfaces
+ return $?
+ fi
+
return 0
}
@@ -614,19 +656,30 @@
continue
fi
+ if [ -n "$OCF_RESKEY_ethernet_device" ] && \
+ [ "$dev" != "$OCF_RESKEY_ethernet_device" ]; then
+ continue
+ fi
+
if [ "$1" = "add" ]; then
- ipv6_same_subnet $ifaddr_exp/$maskbits $addr_exp
- if [ $? -ne 0 ]; then
- continue
- fi
+ if [ -z "$OCF_RESKEY_ethernet_device" ]; then
+ ipv6_same_subnet $ifaddr/$maskbits $addr
+ if [ $? -ne 0 ]; then
+ continue
+ fi
+ fi
+
interface_up $dev
if [ $? -ne 0 ]; then
continue
fi
- network_link_up $dev
- if [ $? -ne 0 ]; then
- continue
- fi
+
+ if [ "$monitor_link" = "yes" ]; then
+ network_link_up $dev
+ if [ $? -ne 0 ]; then
+ continue
+ fi
+ fi
ocf_log info "Adding IPv6 address $addr to $dev"
fi
if [ "$1" = "del" ]; then
@@ -672,30 +725,51 @@
ipv4()
{
declare dev ifaddr maskbits
+ declare op=$1
declare addr=$2
+ declare monitor_link=$3
while read dev ifaddr maskbits; do
if [ -z "$dev" ]; then
continue
fi
- if [ "$1" = "add" ]; then
- ipv4_same_subnet $ifaddr/$maskbits $addr
- if [ $? -ne 0 ]; then
- continue
+ if [ -n "$OCF_RESKEY_ethernet_device" ] && \
+ [ "$dev" != "$OCF_RESKEY_ethernet_device" ]; then
+ continue
+ fi
+
+ if [ "$op" = "add" ]; then
+ if [ -z "$OCF_RESKEY_ethernet_device" ]; then
+ ipv4_same_subnet $ifaddr/$maskbits $addr
+ if [ $? -ne 0 ]; then
+ continue
+ fi
fi
+
interface_up $dev
if [ $? -ne 0 ]; then
- continue
+ ocf_log warn "Enabling $dev"
+ /sbin/ip link $dev up
+ interface_up $dev
+ if [ $? -ne 0 ]; then
+ ocf_log warn "Failed to enable $dev"
+ continue
+ fi
fi
- network_link_up $dev
- if [ $? -ne 0 ]; then
- continue
+
+ if [ "$monitor_link" = "yes" ]; then
+ network_link_up $dev
+ if [ $? -ne 0 ]; then
+ continue
+ fi
fi
ocf_log info "Adding IPv4 address $addr to $dev"
fi
- if [ "$1" = "del" ]; then
+
+ if [ "$op" = "del" ]; then
if [ "${addr/\/*/}" != "$ifaddr" ]; then
+ echo "${addr/\/*/} != $ifaddr"
continue
fi
ocf_log info "Removing IPv4 address $addr from $dev"
@@ -841,11 +915,11 @@
case $1 in
inet)
- ipv4 $2 $3
+ ipv4 $2 $3 $monitor_link
return $?
;;
inet6)
- ipv6 $2 $3
+ ipv6 $2 $3 $monitor_link
return $?
;;
esac
@@ -867,6 +941,11 @@
;;
esac
+if [ -n "$OCF_RESKEY_ethernet_device" ]; then
+ ocf_log debug "Forcing use of $OCF_RESKEY_ethernet_device"
+else
+ ocf_log debug "Using default autoplacement of IP addresses"
+fi
if [ -z "$OCF_CHECK_LEVEL" ]; then
OCF_CHECK_LEVEL=0
--- cluster/rgmanager/src/resources/ocf-shellfuncs 2007/01/23 15:23:40 1.3.2.1
+++ cluster/rgmanager/src/resources/ocf-shellfuncs 2007/05/02 18:26:26 1.3.2.2
@@ -1,5 +1,5 @@
#
-# $Id: ocf-shellfuncs,v 1.3.2.1 2007/01/23 15:23:40 lhh Exp $
+# $Id: ocf-shellfuncs,v 1.3.2.2 2007/05/02 18:26:26 lhh Exp $
#
# Common helper functions for the OCF Resource Agents supplied by
# heartbeat.
@@ -174,6 +174,10 @@
esac
pretty_echo $__OCF_PRIO "$__OCF_MSG"
+
+ if [ -z "`which clulog 2> /dev/null`" ]; then
+ return 0
+ fi
clulog -p $__LOG_PID -n $__LOG_NAME \
-s $__OCF_PRIO_N "$__OCF_MSG"
}
--- cluster/rgmanager/src/resources/service.sh 2007/02/14 16:20:26 1.7.2.2
+++ cluster/rgmanager/src/resources/service.sh 2007/05/02 18:26:26 1.7.2.3
@@ -172,17 +172,16 @@
<special tag="rgmanager">
<attributes root="1" maxinstances="1"/>
- <child type="lvm" start="1" stop="9"/>
- <child type="fs" start="2" stop="8"/>
- <child type="clusterfs" start="3" stop="7"/>
- <child type="netfs" start="4" stop="6"/>
- <child type="nfsexport" start="5" stop="5"/>
+ <child type="fs" start="1" stop="8"/>
+ <child type="clusterfs" start="2" stop="7"/>
+ <child type="netfs" start="3" stop="6"/>
+ <child type="nfsexport" start="4" stop="5"/>
- <child type="nfsclient" start="6" stop="4"/>
+ <child type="nfsclient" start="5" stop=""/>
- <child type="ip" start="7" stop="2"/>
- <child type="smb" start="8" stop="3"/>
- <child type="script" start="9" stop="1"/>
+ <child type="ip" start="6" stop="2"/>
+ <child type="smb" start="7" stop="3"/>
+ <child type="script" start="7" stop="1"/>
</special>
</resource-agent>
EOT
--- cluster/rgmanager/src/resources/vm.sh 2007/03/20 17:09:12 1.1.2.1
+++ cluster/rgmanager/src/resources/vm.sh 2007/05/02 18:26:26 1.1.2.2
@@ -181,8 +181,8 @@
<action name="stop" timeout="120"/>
<!-- No-ops. Groups are abstract resource types. -->
- <action name="status" timeout="10" interval="30m"/>
- <action name="monitor" timeout="10" interval="30m"/>
+ <action name="status" timeout="10" interval="30"/>
+ <action name="monitor" timeout="10" interval="30"/>
<!-- reconfigure - reconfigure with new OCF parameters.
NOT OCF COMPATIBLE AT ALL -->
@@ -367,15 +367,14 @@
{
declare target=$1
- xm migrate $OCF_RESKEY_name $target
- return $?
+ # XXX TODO
+ return 1
}
#
# A Resource group is abstract, but the OCF RA API doesn't allow for abstract
# resources, so here it is.
#
-
case $1 in
start)
start
reply other threads:[~2007-05-02 18:26 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070502182627.15879.qmail@sourceware.org \
--to=lhh@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.