[Cluster-devel] cluster/fence fenced/fd.h fenced/main.c fenced ...

[email protected] <[email protected]>
Newsgroups com.redhat.cluster-devel
Message-ID <[email protected]>
CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	lhh at sourceware.org	2008-01-30 19:20:11

Modified files:
	fence/fenced   : fd.h main.c recover.c 
	fence/man      : fenced.8 

Log message:
	Make fenced's override wait time configurable.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/fd.h.diff?cvsroot=cluster&r1=1.27&r2=1.28
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/main.c.diff?cvsroot=cluster&r1=1.46&r2=1.47
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/recover.c.diff?cvsroot=cluster&r1=1.30&r2=1.31
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/man/fenced.8.diff?cvsroot=cluster&r1=1.7&r2=1.8

--- cluster/fence/fenced/fd.h	2007/10/26 20:36:49	1.27
+++ cluster/fence/fenced/fd.h	2008/01/30 19:20:11	1.28
@@ -132,12 +132,15 @@
 {
 	int post_join_delay;
 	int post_fail_delay;
+	int override_time;
+	int pad;
 	char *override_path;
 	int8_t clean_start;
 	int8_t post_join_delay_opt;
 	int8_t post_fail_delay_opt;
 	int8_t clean_start_opt;
 	int8_t override_path_opt;
+	int8_t override_time_opt;
 };
 
 #define FDFL_RUN        (0)
--- cluster/fence/fenced/main.c	2008/01/07 05:52:28	1.46
+++ cluster/fence/fenced/main.c	2008/01/30 19:20:11	1.47
@@ -15,7 +15,7 @@
 #include "ccs.h"
 #include "copyright.cf"
 
-#define OPTION_STRING			("cj:f:Dn:O:hVS")
+#define OPTION_STRING			("cj:f:Dn:O:T:hVS")
 #define LOCKFILE_NAME			"/var/run/fenced.pid"
 
 struct client {
@@ -162,6 +162,20 @@
 			free(str);
 	}
 
+	if (comline.override_time_opt == FALSE) {
+		str = NULL;
+		memset(path, 0, 256);
+		sprintf(path, "/cluster/fence_daemon/@override_time");
+
+		error = ccs_get(cd, path, &str);
+		if (!error && str)
+			comline.override_time = atoi(str);
+		if (str)
+			free(str);
+		if (comline.override_time < 3)
+			comline.override_time = 3;
+	}
+
 	log_debug("delay post_join %ds post_fail %ds",
 		  comline.post_join_delay, comline.post_fail_delay);
 
@@ -576,6 +590,8 @@
 	comline->post_join_delay_opt = FALSE;
 	comline->post_fail_delay_opt = FALSE;
 	comline->clean_start_opt = FALSE;
+	comline->override_time_opt = FALSE;
+	comline->override_time = 5;	/* default */
 
 	while (cont) {
 		optchar = getopt(argc, argv, OPTION_STRING);
@@ -602,6 +618,13 @@
 			comline->override_path_opt = TRUE;
 			break;
 
+		case 'R':
+			comline->override_time = atoi(optarg);
+			if (comline->override_time < 3)
+				comline->override_time = 3;
+			comline->override_time_opt = TRUE;
+			break;
+
 		case 'D':
 			daemon_debug_opt = TRUE;
 			break;
--- cluster/fence/fenced/recover.c	2007/10/26 20:36:49	1.30
+++ cluster/fence/fenced/recover.c	2008/01/30 19:20:11	1.31
@@ -402,7 +402,8 @@
 
 		/* Check for manual intervention */
 		override = open_override(comline.override_path);
-		if (check_override(override, node->name, 5) > 0) {
+		if (check_override(override, node->name,
+				   comline.override_time) > 0) {
 			syslog(LOG_WARNING, "fence \"%s\" overridden by "
 			       "administrator intervention", node->name);
 
--- cluster/fence/man/fenced.8	2007/08/17 18:26:16	1.7
+++ cluster/fence/man/fenced.8	2008/01/30 19:20:11	1.8
@@ -143,6 +143,12 @@
 
   <fence_daemon override_path="/var/run/cluster/fenced_override"/>
 
+Override-time is the amount of time to wait for administrator intervention
+after fencing has failed.  The default is 5 seconds.
+
+  <fence_daemon override_time="10"/>
+
+
 .SS Per-node fencing settings
 
 The per-node fencing configuration can become complex and is largely
@@ -273,7 +279,11 @@
 All nodes are in a clean state to start.
 .TP
 \fB-O\fP
-Path of the override fifo.
+Path of the override FIFO.
+.TP
+\fB-T\fP
+Amount of time to wait for administrator intervention after 
+fencing has failed, in seconds.
 .TP
 \fB-D\fP
 Enable debugging code and don't fork into the background.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.