[PATCH] Implement config file testing mode.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Vladislav Bogdanov <bubble@xxxxxxxxxxxxx>
---
 exec/main.c    |   17 ++++++++++++++---
 man/corosync.8 |    3 +++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/exec/main.c b/exec/main.c
index be765de..864fe33 100644
--- a/exec/main.c
+++ b/exec/main.c
@@ -1190,7 +1190,7 @@ int main (int argc, char **argv, char **envp)
 	const char *error_string;
 	struct totem_config totem_config;
 	int res, ch;
-	int background, setprio;
+	int background, setprio, testonly;
 	struct stat stat_out;
 	enum e_corosync_done flock_err;
 	uint64_t totem_config_warnings;
@@ -1200,6 +1200,7 @@ int main (int argc, char **argv, char **envp)
 	 */
 	background = 1;
 	setprio = 0;
+	testonly = 0;
 
 	while ((ch = getopt (argc, argv, "fprv")) != EOF) {
 
@@ -1212,6 +1213,9 @@ int main (int argc, char **argv, char **envp)
 			case 'r':
 				setprio = 1;
 				break;
+			case 't':
+				testonly = 1;
+				break;
 			case 'v':
 				printf ("Corosync Cluster Engine, version '%s'\n", VERSION);
 				printf ("Copyright (c) 2006-2009 Red Hat, Inc.\n");
@@ -1224,6 +1228,7 @@ int main (int argc, char **argv, char **envp)
 					"usage:\n"\
 					"        -f     : Start application in foreground.\n"\
 					"        -p     : Does nothing.    \n"\
+					"        -t     : Test configuration and exit.\n"\
 					"        -r     : Set round robin realtime scheduling \n"\
 					"        -v     : Display version and SVN revision of Corosync and exit.\n");
 				logsys_system_fini();
@@ -1283,8 +1288,10 @@ int main (int argc, char **argv, char **envp)
 		corosync_exit_error (COROSYNC_DONE_LOGCONFIGREAD);
 	}
 
-	log_printf (LOGSYS_LEVEL_NOTICE, "Corosync Cluster Engine ('%s'): started and ready to provide service.", VERSION);
-	log_printf (LOGSYS_LEVEL_INFO, "Corosync built-in features:" PACKAGE_FEATURES "");
+	if (!testonly) {
+		log_printf (LOGSYS_LEVEL_NOTICE, "Corosync Cluster Engine ('%s'): started and ready to provide service.", VERSION);
+		log_printf (LOGSYS_LEVEL_INFO, "Corosync built-in features:" PACKAGE_FEATURES "");
+	}
 
 	/*
 	 * Make sure required directory is present
@@ -1336,6 +1343,10 @@ int main (int argc, char **argv, char **envp)
 		corosync_exit_error (COROSYNC_DONE_MAINCONFIGREAD);
 	}
 
+	if (testonly) {
+		corosync_exit_error (COROSYNC_DONE_EXIT);
+	}
+
 	ip_version = totem_config.ip_version;
 
 	totem_config.totem_memb_ring_id_create_or_load = corosync_ring_id_create_or_load;
diff --git a/man/corosync.8 b/man/corosync.8
index 59b2dda..559b392 100644
--- a/man/corosync.8
+++ b/man/corosync.8
@@ -50,6 +50,9 @@ Does nothing (was: "Do not set process priority" - this is now the default).
 .B -r
 Set round robin realtime scheduling.
 .TP
+.B -t
+Test configuration and then exit.
+.TP
 .B -v
 Display version and SVN revision of Corosync and exit.
 .SH SEE ALSO
-- 
1.7.1

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss




[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux