Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 7001f065adda29e9df3f0933fb94587f6387d6c9
Parent: e966498e955358fa16d5f523b09e84e29d6edd80
Author: Flavio Leitner <fleitner(a)redhat.com>
AuthorDate: Tue Sep 29 09:40:32 2009 -0400
Committer: Lon Hohberger <lhh(a)redhat.com>
CommitterDate: Tue Sep 29 09:40:32 2009 -0400
rgmanager: Simplify bonded link checking
The new bonding driver version 3.4.0 provides ethtool get_link
operation so, now, usual link checking works for bonding devices.
Resolves: bz518037
Signed-off-by: Flavio Leitner <fleitner(a)redhat.com>
Signed-off-by: Lon Hohberger <lhh(a)redhat.com>
---
rgmanager/src/resources/ip.sh | 75 +---------------------------------------
1 files changed, 2 insertions(+), 73 deletions(-)
diff --git a/rgmanager/src/resources/ip.sh b/rgmanager/src/resources/ip.sh
index 7a7d6c5..445e873 100644
--- a/rgmanager/src/resources/ip.sh
+++ b/rgmanager/src/resources/ip.sh
@@ -408,46 +408,6 @@ ipv6_list_interfaces()
}
-#
-# Find slaves for a bonded interface
-#
-findSlaves()
-{
- declare mastif=$1
- declare line
- declare intf
- declare interfaces
-
- if [ -z "$mastif" ]; then
- ocf_log err "usage: findSlaves <master I/F>"
- return $OCF_ERR_ARGS
- fi
-
- line=$(/sbin/ip link list dev $mastif | grep "<.*MASTER.*>")
- if [ $? -ne 0 ]; then
- ocf_log err "Error determining status of $mastif"
- return $OCF_ERR_GENERIC
- fi
-
- if [ -z "`/sbin/ip link list dev $mastif | grep
\"<.*MASTER.*>\"`" ]
- then
- ocf_log err "$mastif is not a master device"
- return $OCF_ERR_GENERIC
- fi
-
- ## Strip possible VLAN (802.1q) suffixes
- ## - Roland Gadinger <roland.gadinger(a)beko.at>
- mastif=${mastif%%.*}
-
- while read line; do
- set - $line
- interfaces="${2/:/} $interfaces"
- done < <( /sbin/ip -o link list | grep "master $mastif" )
-
- echo $interfaces
-}
-
-
isSlave()
{
declare intf=$1
@@ -527,39 +487,8 @@ network_link_up()
return 1
fi
- #
- # XXX assumes bond* interfaces are the bonding driver. (Fair
- # assumption on Linux, I think)
- #
- if [ "${intf_arg/bond/}" != "$intf_arg" ]; then
-
- #
- # With Xen we must check for slaves of pbondX, not bondX
- #
- masterif=$intf_arg
- line=$(ip link list | awk {'print $2'} | grep "p$intf_arg:")
- if [ $? -eq 0 ] ; then
- masterif="p$intf_arg"
- fi
-
- #
- # Bonded driver. Check link of all slaves for this interface.
- # If any link is up, the bonding driver is expected to route
- # traffic through that link. Thus, the entire bonded link
- # is declared up.
- #
- slaves=$(findSlaves $masterif)
- if [ $? -ne 0 ]; then
- ocf_log err "Error finding slaves of $intf_arg"
- return 1
- fi
- for intf_test in $slaves; do
- ethernet_link_up $intf_test && link_up=0
- done
- else
- ethernet_link_up $intf_arg
- link_up=$?
- fi
+ ethernet_link_up $intf_arg
+ link_up=$?
if [ $link_up -eq 0 ]; then
ocf_log debug "Link for $intf_arg: Detected"