[Cluster-devel] cluster/rgmanager/src/resources ip.sh ocf-shel ...

lhh at sourceware.org lhh at sourceware.org
Wed May 2 18:26:27 UTC 2007


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




More information about the Cluster-devel mailing list