[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    [Linux-ha-dev] RE: [PATCH] Add nodename (uname) to CCM notification
From:       "Zhu, Yi" <yi.zhu () intel ! com>
Date:       2004-03-19 2:08:34
Message-ID: 3ACA40606221794F80A5670F0AF15F84015256A5 () PDSMSX403 ! ccr ! corp ! intel ! com
[Download RAW message or body]


cvs log ccmlib_memapi.c

revision 1.18
date: 2004/03/05 12:55:20;  author: andrew;  state: Exp;  lines: +24 -3
Adds support for a guarenteed unique, constant and addressable node
identifier to the CCM by exposing the uname of member nodes.
This was the simplest solution that also involved the least possible
changes to the CCM.  It also avoided changes to the CCM's on-the-wire
format. 


So the support for nodename is added by andrew 2 weeks ago :) So OCF now
support nodename.
I'm happy to merge your change for ais clm. Thanks Stanley!

> -----Original Message-----
> From: Stanley Wang [mailto:stanley.wang@linux.co.intel.com] 
> Sent: Friday, March 19, 2004 9:38 AM
> To: Linux-HA
> Cc: Cahill, Ben M; Zhu, Yi; Zou, Yixiong
> Subject: [PATCH] Add nodename (uname) to CCM notification
> 
> Hi all,
> 
> I'm trying to employ CCM as the cluster manager for OpenDLM. 
> Since OpenDLM need to know uname of the node and the current 
> CCM doesn't provide nodename information in the notification 
> message, I make a trivial patch to fill the gap. Any comments?
> 
> This patch changes AIS API only, doesn't touch OCF API.
> 
> Best Regards,
> Stan
> --
> Opinions expressed are those of the author and do not 
> represent Intel Corporation "gpg --recv-keys --keyserver 
> wwwkeys.pgp.net E1390A7F"
> {E1390A7F:3AD1 1B0C 2019 E183 0CFF  55E8 369A 8B75 E139 0A7F}
> 
> ? cscope.in.out
> ? cscope.out
> ? cscope.po.out
> Index: membership/ccm/ccmlib_clm.c
> ===================================================================
> RCS file: /home/cvs/linux-ha/linux-ha/membership/ccm/ccmlib_clm.c,v
> retrieving revision 1.2
> diff -c -r1.2 ccmlib_clm.c
> *** membership/ccm/ccmlib_clm.c	15 Mar 2004 03:44:41 
> -0000	1.2
> --- membership/ccm/ccmlib_clm.c	19 Mar 2004 01:27:49 -0000
> ***************
> *** 33,38 ****
> --- 33,39 ----
>   #  include <pthread.h>
>   #endif
>   #include <sys/time.h>
> + #include <string.h>
>   
>   #define CLM_TRACK_STOP 0
>   #define CLM_DEBUG 0
> ***************
> *** 231,238 ****
>   {
>   	cn->nodeAddress.length = 0;
>   	cn->nodeAddress.value[0] = '\0';
> ! 	cn->nodeName.length = 0;
> ! 	cn->nodeName.value[0] = '\0';
>   	cn->clusterName.length = 0;
>   	cn->clusterName.value[0] = '\0';
>   	cn->bootTimestamp = 0;
> --- 232,240 ----
>   {
>   	cn->nodeAddress.length = 0;
>   	cn->nodeAddress.value[0] = '\0';
> ! 	cn->nodeName.length = strlen(cn->nodeName.value);
> ! 	if ( cn->nodeName.length > SA_MAX_NAME_LENGTH)
> ! 		cn->nodeName.length = SA_MAX_NAME_LENGTH;
>   	cn->clusterName.length = 0;
>   	cn->clusterName.value[0] = '\0';
>   	cn->bootTimestamp = 0;
> ***************
> *** 242,253 ****
> --- 244,263 ----
>   retrieve_current_buffer(__clm_handle_t *hd)
>   {
>   	int i;
> + 	char *p;
>   	const oc_ev_membership_t *oc = __ccm_data;
>   
>   	for (i = 0; i < oc->m_n_member; i++) {
>   		MEMCHANGE(i) = SA_CLM_NODE_NO_CHANGE;
>   		MEMNODE(i).nodeId = 
> oc->m_array[oc->m_memb_idx+i].node_id;
>   		MEMNODE(i).member = 1;
> + 		p = oc->m_array[oc->m_memb_idx+i].node_uname;
> + 		if (p) {
> + 			strncpy(MEMNODE(i).nodeName.value, p, 
> + 					SA_MAX_NAME_LENGTH - 1);
> + 		} else {
> + 			MEMNODE(i).nodeName.value[0] = '\0';
> + 		}
>   		set_misc_node_info(&MEMNODE(i));
>   	}
>   }
> ***************
> *** 256,261 ****
> --- 266,272 ----
>   retrieve_changes_buffer(__clm_handle_t *hd)
>   {
>   	int i, j, n;
> + 	char *p;
>   	const oc_ev_membership_t *oc = __ccm_data;
>   
>   	retrieve_current_buffer(hd);
> ***************
> *** 265,270 ****
> --- 276,288 ----
>   			if (MEMNODE(j).nodeId
>   			==	oc->m_array[oc->m_in_idx+i].node_id) {
>   				MEMCHANGE(j) = SA_CLM_NODE_JOINED;
> + 				p = 
> oc->m_array[oc->m_in_idx+i].node_uname;
> + 				if (p) {
> + 					
> strncpy(MEMNODE(j).nodeName.value, p, 
> + 							
> SA_MAX_NAME_LENGTH-1);
> + 				} else {
> + 					
> MEMNODE(j).nodeName.value[0] = '\0';
> + 				}
>   				break;
>   			}
>   		}
> ***************
> *** 274,279 ****
> --- 292,304 ----
>   		MEMCHANGE(n) = SA_CLM_NODE_LEFT;
>   		MEMNODE(n).nodeId = 
> oc->m_array[oc->m_out_idx+j].node_id;
>   		MEMNODE(n).member = 0;
> + 		p = oc->m_array[oc->m_out_idx+j].node_uname;
> + 		if (p) {
> + 			strncpy(MEMNODE(n).nodeName.value, p,
> + 					SA_MAX_NAME_LENGTH - 1);
> + 		} else {
> + 			MEMNODE(n).nodeName.value[0] = '\0';
> + 		}
>   		set_misc_node_info(&MEMNODE(n));
>   	}
>   }
> ***************
> *** 282,299 ****
> --- 307,339 ----
>   retrieve_changes_only_buffer(__clm_handle_t *hd)
>   {
>   	int i, n;
> + 	char *p;
>   	const oc_ev_membership_t *oc = __ccm_data;
>   
>   	for (i = 0, n = 0; i < oc->m_n_in; i++, n++) {
>   		MEMCHANGE(n) = SA_CLM_NODE_JOINED;
>   		MEMNODE(n).nodeId = oc->m_array[oc->m_in_idx+i].node_id;
>   		MEMNODE(n).member = 1;
> + 		p = oc->m_array[oc->m_in_idx+i].node_uname;
> + 		if (p) {
> + 			strncpy(MEMNODE(n).nodeName.value, p,
> + 					SA_MAX_NAME_LENGTH - 1);
> + 		} else {
> + 			MEMNODE(n).nodeName.value[0] = '\0';
> + 		}
>   		set_misc_node_info(&MEMNODE(n));
>   	}
>   	for (i = 0; i < oc->m_n_out; i++, n++) {
>   		MEMCHANGE(n) = SA_CLM_NODE_LEFT;
>   		MEMNODE(n).nodeId = 
> oc->m_array[oc->m_out_idx+i].node_id;
>   		MEMNODE(n).member = 0;
> + 		p = oc->m_array[oc->m_out_idx+i].node_uname;
> + 		if (p) {
> + 			strncpy(MEMNODE(n).nodeName.value, p,
> + 					SA_MAX_NAME_LENGTH - 1);
> + 		} else {
> + 			MEMNODE(n).nodeName.value[0] = '\0';
> + 		}
>   		set_misc_node_info(&MEMNODE(n));
>   	}
>   }
> ***************
> *** 462,467 ****
> --- 502,508 ----
>   {
>   	const oc_ev_membership_t *oc;
>   	int i;
> + 	char *p;
>   
>   	oc = (const oc_ev_membership_t *)__ccm_data;
>   
> ***************
> *** 469,474 ****
> --- 510,522 ----
>   		if (oc->m_array[oc->m_memb_idx+i].node_id == nodeId) {
>   			clusterNode->nodeId = nodeId;
>   			clusterNode->member = 1;
> + 			p = oc->m_array[oc->m_memb_idx+i].node_uname;
> + 			if (p) {
> + 				strncpy(clusterNode->nodeName.value, p,
> + 						SA_MAX_NAME_LENGTH - 1);
> + 			} else {
> + 				clusterNode->nodeName.value[0] = '\0';
> + 			}
>   			goto found;
>   		}
>   	}
> ***************
> *** 476,481 ****
> --- 524,536 ----
>   		if (oc->m_array[oc->m_out_idx+i].node_id == nodeId) {
>   			clusterNode->nodeId = nodeId;
>   			clusterNode->member = 0;
> + 			p = oc->m_array[oc->m_out_idx+i].node_uname;
> + 			if (p) {
> + 				strncpy(clusterNode->nodeName.value, p,
> + 						SA_MAX_NAME_LENGTH - 1);
> + 			} else {
> + 				clusterNode->nodeName.value[0] = '\0';
> + 			}
>   			goto found;
>   		}
>   	}
> 
> 
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic