public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
From: fabbione@sourceware.org
To: cluster-cvs@sources.redhat.com, cluster-devel@redhat.com
Subject: Cluster Project branch, master, updated. cluster-2.99.04-57-g0b8bd69
Date: Mon, 23 Jun 2008 12:01:00 -0000	[thread overview]
Message-ID: <20080623120152.28626.qmail@sourceware.org> (raw)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=0b8bd69b8f6a393958229551396057ac44ca5391

The branch, master has been updated
       via  0b8bd69b8f6a393958229551396057ac44ca5391 (commit)
       via  4d6472e59640d2594c5d9101b1ca7cc6ee1c952e (commit)
       via  8b317c5b251513a0825d8c0ccd85aa7b246a5b19 (commit)
      from  06be5b42ff670cbb9177a72c9ac43ac10caa8d7d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0b8bd69b8f6a393958229551396057ac44ca5391
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
Date:   Mon Jun 23 13:59:56 2008 +0200

    [QDISK] Port qdisk to the new logsys config interface
    
    NOTE: this commit also retain backward compatibility with
    the old logging config options but warns the users
    that they are depracated.
    
    Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>

commit 4d6472e59640d2594c5d9101b1ca7cc6ee1c952e
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
Date:   Mon Jun 23 13:34:18 2008 +0200

    [CCS] Fix debug override from command line vs config
    
    Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>

commit 8b317c5b251513a0825d8c0ccd85aa7b246a5b19
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
Date:   Mon Jun 23 11:38:32 2008 +0200

    [CCS] Always check for debug setting as first thing
    
    This allow us to enable and read debugging output as soon
    as possible.
    
    Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>

-----------------------------------------------------------------------

Summary of changes:
 ccs/daemon/misc.c |   92 ++++++++++++------------
 cman/qdisk/main.c |  199 ++++++++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 213 insertions(+), 78 deletions(-)

diff --git a/ccs/daemon/misc.c b/ccs/daemon/misc.c
index 5ba999f..acab5c8 100644
--- a/ccs/daemon/misc.c
+++ b/ccs/daemon/misc.c
@@ -166,6 +166,52 @@ int set_ccs_logging(xmlDocPtr ldoc){
 
   logmode = logsys_config_mode_get();
 
+  res = do_simple_xml_query(ctx, "/cluster/logging/@debug");
+  if(res) {
+    if(!strcmp(res, "on")) {
+      global_debug = 1;
+    } else
+    if(!strcmp(res, "off")) {
+      global_debug = 0;
+    } else
+      log_printf(LOG_ERR, "global debug: unknown value\n");
+    free(res);
+    res=NULL;
+  }
+
+  res = do_simple_xml_query(ctx, "/cluster/logging/logger_subsys[@subsys=\"CCS\"]/@debug");
+  if(res) {
+    if(!debug) {
+      if(!strcmp(res, "on")) {
+	debug = 1;
+      } else
+      if(!strcmp(res, "off")) { /* debug from cmdline/envvars override config */
+	debug = 0;
+      } else
+	log_printf(LOG_ERR, "subsys debug: unknown value\n");
+    }
+    free(res);
+    res=NULL;
+  } else
+    debug = global_debug; /* global debug overrides subsystem only if latter is not specified */
+
+  if(debug)
+    logsys_config_priority_set (LOG_LEVEL_DEBUG);
+
+  res = do_simple_xml_query(ctx, "/cluster/logging/logger_subsys[@subsys=\"CCS\"]/@syslog_level");
+  if(res) {
+    loglevel = logsys_priority_id_get (res);
+    if (loglevel < 0)
+      loglevel = LOG_LEVEL_INFO;
+
+    if (!debug)
+      logsys_config_priority_set (loglevel);
+
+    log_printf(LOG_DEBUG, "syslog_level: %s (%d).\n", res, loglevel);
+    free(res);
+    res=NULL;
+  }
+
   res = do_simple_xml_query(ctx, "/cluster/logging/@to_stderr");
   if(res) {
     if(!strcmp(res, "yes")) {
@@ -228,52 +274,6 @@ int set_ccs_logging(xmlDocPtr ldoc){
     res=NULL;
   }
 
-  res = do_simple_xml_query(ctx, "/cluster/logging/@debug");
-  if(res) {
-    if(!strcmp(res, "on")) {
-      global_debug = 1;
-    } else
-    if(!strcmp(res, "off")) {
-      global_debug = 0;
-    } else
-      log_printf(LOG_ERR, "debug: unknown value\n");
-    free(res);
-    res=NULL;
-  }
-
-  /* subsytem config */
-
-  res = do_simple_xml_query(ctx, "/cluster/logging/logger_subsys[@subsys=\"CCS\"]/@debug");
-  if(res) {
-    if(!strcmp(res, "on")) {
-      debug = 1;
-    } else
-    if(!strcmp(res, "off") && !debug) { /* debug from cmdline/envvars override config */
-      debug = 0;
-    } else
-      log_printf(LOG_ERR, "debug: unknown value\n");
-    free(res);
-    res=NULL;
-  } else
-    debug = global_debug; /* global debug overrides subsystem only if latter is not specified */
-
-  if(debug)
-    logsys_config_priority_set (LOG_LEVEL_DEBUG);
-
-  res = do_simple_xml_query(ctx, "/cluster/logging/logger_subsys[@subsys=\"CCS\"]/@syslog_level");
-  if(res) {
-    loglevel = logsys_priority_id_get (res);
-    if (loglevel < 0)
-      loglevel = LOG_LEVEL_INFO;
-
-    if (!debug)
-      logsys_config_priority_set (loglevel);
-
-    log_printf(LOG_DEBUG, "syslog_level: %s (%d).\n", res, loglevel);
-    free(res);
-    res=NULL;
-  }
-
   if(ctx){
     xmlXPathFreeContext(ctx);
   }
diff --git a/cman/qdisk/main.c b/cman/qdisk/main.c
index 1f1d082..466609a 100644
--- a/cman/qdisk/main.c
+++ b/cman/qdisk/main.c
@@ -1057,18 +1057,176 @@ quorum_logout(qd_ctx *ctx)
 
 
 /**
-  Grab all our configuration data from CCSD
+  Grab logsys configuration data from libccs
+ */
+static int
+get_logsys_config_data(int *debug)
+{
+	int ccsfd = -1, loglevel = LOG_LEVEL_INFO, facility = SYSLOGFACILITY;
+	char *val = NULL, *error = NULL;
+	unsigned int logmode;
+	int global_debug = 0;
+
+	log_printf(LOG_DEBUG, "Loading logsys configuration information\n");
+
+	ccsfd = ccs_connect();
+	if (ccsfd < 0) {
+		log_printf(LOG_CRIT, "Connection to CCSD failed; cannot start\n");
+		return -1;
+	}
+
+	logmode = logsys_config_mode_get();
+
+	if (ccs_get(ccsfd, "/cluster/logging/@debug", &val) == 0) {
+		if(!strcmp(val, "on")) {
+			global_debug = 1;
+		} else 
+		if(!strcmp(val, "off")) {
+			global_debug = 0;
+		} else
+			log_printf(LOG_ERR, "global debug: unknown value\n");
+		free(val);
+		val = NULL;
+	}
+
+	if (ccs_get(ccsfd, "/cluster/logging/logger_subsys[@subsys=\"QDISK\"]/@debug", &val) == 0) {
+		if(!*debug) {
+			if(!strcmp(val, "on")) {
+				*debug = 1;
+			} else 
+			if(!strcmp(val, "off") && !*debug) { /* debug from cmdline/envvars override config */
+				*debug = 0;
+			} else
+				log_printf(LOG_ERR, "subsys debug: unknown value: %s\n", val);
+		free(val);
+		val = NULL;
+		}
+	} else
+		*debug = global_debug; /* global debug overrides subsystem only if latter is not specified */
+
+	if (ccs_get(ccsfd, "/cluster/logging/logger_subsys[@subsys=\"QDISK\"]/@syslog_level", &val) == 0) {
+		loglevel = logsys_priority_id_get (val);
+		if (loglevel < 0)
+			loglevel = LOG_LEVEL_INFO;
+
+		if (!*debug) {
+			*debug = 1;
+			logsys_config_priority_set (loglevel);
+		}
+
+		free(val);
+	} else
+	if (ccs_get(ccsfd, "/cluster/quorumd/@log_level", &val) == 0) { /* check backward compat options */
+		loglevel = logsys_priority_id_get (val);
+		if (loglevel < 0)
+			loglevel = LOG_LEVEL_INFO;
+
+		log_printf(LOG_ERR, "<quorumd log_level=\"%s\".. option is depracated\n", val);
+
+		if (!*debug) {
+			*debug = 1;
+			logsys_config_priority_set (loglevel);
+		}
+
+		free(val);
+	}
+
+	if (ccs_get(ccsfd, "/cluster/logging/@to_stderr", &val) == 0) {
+		if(!strcmp(val, "yes")) {
+			logmode |= LOG_MODE_OUTPUT_STDERR;
+		} else 
+		if(!strcmp(val, "no")) {
+			logmode &= ~LOG_MODE_OUTPUT_STDERR;
+		} else
+			log_printf(LOG_ERR, "to_stderr: unknown value\n");
+		free(val);
+		val = NULL;
+	}
+
+	if (ccs_get(ccsfd, "/cluster/logging/@to_syslog", &val) == 0) {
+		if(!strcmp(val, "yes")) {
+			logmode |= LOG_MODE_OUTPUT_SYSLOG_THREADED;
+		} else 
+		if(!strcmp(val, "no")) {
+			logmode &= ~LOG_MODE_OUTPUT_SYSLOG_THREADED;
+		} else
+			log_printf(LOG_ERR, "to_syslog: unknown value\n");
+		free(val);
+		val = NULL;
+	}
+
+	if (ccs_get(ccsfd, "/cluster/logging/@to_file", &val) == 0) {
+		if(!strcmp(val, "yes")) {
+			logmode |= LOG_MODE_OUTPUT_FILE;
+		} else 
+		if(!strcmp(val, "no")) {
+			logmode &= ~LOG_MODE_OUTPUT_FILE;
+		} else
+			log_printf(LOG_ERR, "to_file: unknown value\n");
+		free(val);
+		val = NULL;
+	}
+
+	if (ccs_get(ccsfd, "/cluster/logging/@filename", &val) == 0) {
+		if(logsys_config_file_set(&error, val))
+			log_printf(LOG_ERR, "filename: unable to open %s for logging\n", val);
+		free(val);
+		val = NULL;
+	} else
+		log_printf(LOG_DEBUG, "filename: use default built-in log file: %s\n", LOGDIR "/qdisk.log");
+
+	if (ccs_get(ccsfd, "/cluster/logging/@syslog_facility", &val) == 0) {
+		facility = logsys_facility_id_get (val);
+		if (facility < 0) {
+			log_printf(LOG_ERR, "syslog_facility: unknown value\n");
+			facility = SYSLOGFACILITY;
+		}
+
+		logsys_config_facility_set ("QDISK", facility);
+		free(val);
+	} else
+	if (ccs_get(ccsfd, "/cluster/quorumd/@log_facility", &val) == 0) {
+		facility = logsys_facility_id_get (val);
+		if (facility < 0) {
+			log_printf(LOG_ERR, "syslog_facility: unknown value\n");
+			facility = SYSLOGFACILITY;
+		}
+
+		log_printf(LOG_ERR, "<quorumd log_facility=\"%s\".. option is depracated\n", val);
+
+		logsys_config_facility_set ("QDISK", facility);
+		free(val);
+	}
+
+	if(logmode & LOG_MODE_BUFFER_BEFORE_CONFIG) {
+		log_printf(LOG_DEBUG, "QDISK logsys config enabled from get_logsys_config_data\n");
+		logmode &= ~LOG_MODE_BUFFER_BEFORE_CONFIG;
+		logmode |= LOG_MODE_FLUSH_AFTER_CONFIG;
+		logsys_config_mode_set (logmode);
+	}
+
+	ccs_disconnect(ccsfd);
+
+	return 0;
+}
+
+/**
+  Grab all our configuration data from libccs
  */
 static int
 get_config_data(qd_ctx *ctx, struct h_data *h, int maxh,
-		int *cfh, int debug)
+		int *cfh, int debug, int trylater)
 {
-	int ccsfd = -1, loglevel = 4;
+	int ccsfd = -1;
 	char query[256];
 	char *val;
 
 	log_printf(LOG_DEBUG, "Loading configuration information\n");
 
+	if (trylater)
+		if(get_logsys_config_data(&debug))
+			return -1;
+
 	ccsfd = ccs_connect();
 	if (ccsfd < 0) {
 		log_printf(LOG_CRIT, "Connection to CCSD failed; cannot start\n");
@@ -1086,32 +1244,6 @@ get_config_data(qd_ctx *ctx, struct h_data *h, int maxh,
 	ctx->qc_sched = SCHED_RR;
 	ctx->qc_sched_prio = 1;
 
-	/* Get log log_facility */
-	snprintf(query, sizeof(query), "/cluster/quorumd/@log_facility");
-	if (ccs_get(ccsfd, query, &val) == 0) {
-		int facility;
-
-		facility = logsys_facility_id_get (val);
-		if (facility < 0)
-			facility = SYSLOGFACILITY;
-
-		logsys_config_facility_set ("QDISK", facility);
-		log_printf(LOG_DEBUG, "Log facility: %s (%d)\n", val, facility);
-		free(val);
-	}
-
-	/* Get log level */
-	snprintf(query, sizeof(query), "/cluster/quorumd/@log_level");
-	if (ccs_get(ccsfd, query, &val) == 0) {
-		loglevel = atoi(val);
-		free(val);
-		if (loglevel < 0)
-			loglevel = LOG_LEVEL_INFO;
-
-		if (!debug)
-			logsys_config_priority_set (loglevel);
-	}
-
 	/* Get interval */
 	snprintf(query, sizeof(query), "/cluster/quorumd/@interval");
 	if (ccs_get(ccsfd, query, &val) == 0) {
@@ -1356,7 +1488,7 @@ main(int argc, char **argv)
 	cman_handle_t ch = NULL;
 	node_info_t ni[MAX_NODES_DISK];
 	struct h_data h[10];
-	int debug = 0, foreground = 0;
+	int debug = 0, foreground = 0, trylater = 0;
 	char device[128];
 	pid_t pid;
 	quorum_header_t qh;
@@ -1396,7 +1528,10 @@ main(int argc, char **argv)
 	if(debug)
 		logsys_config_priority_set (LOG_LEVEL_DEBUG);
 
-	logsys_config_mode_set (LOG_MODE_OUTPUT_STDERR | LOG_MODE_OUTPUT_SYSLOG_THREADED | LOG_MODE_OUTPUT_FILE | LOG_MODE_FLUSH_AFTER_CONFIG);
+	trylater = get_logsys_config_data(&debug);
+
+	if (trylater)
+		logsys_config_mode_set (LOG_MODE_OUTPUT_STDERR | LOG_MODE_OUTPUT_SYSLOG_THREADED | LOG_MODE_OUTPUT_FILE | LOG_MODE_FLUSH_AFTER_CONFIG);	
 
 #if (defined(LIBCMAN_VERSION) && LIBCMAN_VERSION >= 2)
 	ch = cman_admin_init(NULL);
@@ -1439,7 +1574,7 @@ main(int argc, char **argv)
 	signal(SIGINT, int_handler);
 	signal(SIGTERM, int_handler);
 
-	if (get_config_data(&ctx, h, 10, &cfh, debug) < 0) {
+	if (get_config_data(&ctx, h, 10, &cfh, debug, trylater) < 0) {
 		log_printf(LOG_CRIT, "Configuration failed\n");
 		check_stop_cman(&ctx);
 		goto out;


hooks/post-receive
--
Cluster Project


                 reply	other threads:[~2008-06-23 12:01 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080623120152.28626.qmail@sourceware.org \
    --to=fabbione@sourceware.org \
    --cc=cluster-cvs@sources.redhat.com \
    --cc=cluster-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).