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