All of lore.kernel.org
 help / color / mirror / Atom feed
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.