This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

master - rgmanager: make status poll interval configurable


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=4d574b86d24f4e11d490f0c8103af0e1de7cf390
Commit:        4d574b86d24f4e11d490f0c8103af0e1de7cf390
Parent:        54f8ddf3eeef81f704c191c272706e69301f5134
Author:        Lon Hohberger <lhh@redhat.com>
AuthorDate:    Mon Sep 8 11:16:25 2008 -0400
Committer:     Lon Hohberger <lhh@redhat.com>
CommitterDate: Wed Sep 24 13:40:51 2008 -0400

rgmanager: make status poll interval configurable

This allows administrators to define an alternate poll
interval; the default is 10 seconds.  This has no functional
change unless an administrator sets:

   <rm ... status_poll_interval="X"/>
---
 rgmanager/src/daemons/main.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c
index 0c168f5..bb69e07 100644
--- a/rgmanager/src/daemons/main.c
+++ b/rgmanager/src/daemons/main.c
@@ -50,6 +50,7 @@ char debug = 0; /* XXX* */
 static int signalled = 0;
 static uint8_t ALIGNED port = RG_PORT;
 static char *rgmanager_lsname = "rgmanager"; /* XXX default */
+static int status_poll_interval = DEFAULT_CHECK_INTERVAL;
 
 int next_node_id(cluster_member_list_t *membership, int me);
 void malloc_dump_table(FILE *, size_t, size_t);
@@ -701,7 +702,7 @@ event_loop(msgctx_t *localctx, msgctx_t *clusterctx)
 	struct timeval tv;
 	int nodeid;
 
-	tv.tv_sec = 10;
+	tv.tv_sec = status_poll_interval;
 	tv.tv_usec = 0;
 
 	if (signalled) {
@@ -861,6 +862,21 @@ configure_rgmanager(int ccsfd, int dbg)
 		free(v);
 	}
 
+	if (ccs_get(ccsfd, "/cluster/rm/@status_poll_interval", &v) == 0) {
+		status_poll_interval = atoi(v);
+		if (status_poll_interval >= 1) {
+			clulog(LOG_NOTICE,
+			       "Status Polling Interval set to %d\n", v);
+		} else {
+			clulog(LOG_WARNING, "Ignoring illegal "
+			       "status_poll_interval of %s\n", v);
+			status_poll_interval = 10;
+		}
+		
+		free(v);
+	}
+
+
 	if (internal)
 		ccs_disconnect(ccsfd);
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]