[Patch 3/3] tabled: End-to-end verbosity v3

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

 



Signed-Off-By: Pete Zaitcev <zaitcev@xxxxxxxxxx>

---
 pkg/tabled.sysconf |    2 +-
 server/cldu.c      |    9 ++++++---
 server/server.c    |   22 ++++++++++++++++------
 server/tabled.h    |    3 +--
 4 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/pkg/tabled.sysconf b/pkg/tabled.sysconf
index bbe35fc..d15c537 100644
--- a/pkg/tabled.sysconf
+++ b/pkg/tabled.sysconf
@@ -2,5 +2,5 @@
 #
 
 #example: 
-#OPTS="--debug"
+#OPTS="--debug 1"
 
diff --git a/server/cldu.c b/server/cldu.c
index 5b50a27..a10b8fe 100644
--- a/server/cldu.c
+++ b/server/cldu.c
@@ -82,7 +82,7 @@ static void add_chunk_node(struct cld_session *sp, const char *name);
 
 static struct timeval cldu_rescan_delay = { 50, 0 };
 
-struct hail_log cldu_hail_log = {
+static struct hail_log cldu_hail_log = {
 	.func		= applog,
 };
 
@@ -226,7 +226,8 @@ static int cldu_set_cldc(struct cld_session *sp, int newactive)
 		       hp->host, hp->port);
 
 	sp->nsp = ncld_sess_open(hp->host, hp->port, &error,
-				 cldu_sess_event, sp, "tabled", "tabled");
+				 cldu_sess_event, sp, "tabled", "tabled",
+				 &cldu_hail_log);
 	if (sp->nsp == NULL) {
 		if (error < 1000) {
 			applog(LOG_ERR, "ncld_sess_open(%s,%u) error: %s",
@@ -584,12 +585,14 @@ void cld_init()
 /*
  * This initiates our sole session with a CLD instance.
  */
-int cld_begin(const char *thishost, const char *thisgroup)
+int cld_begin(const char *thishost, const char *thisgroup, int verbose)
 {
 	static struct cld_session *sp = &ses;
 	struct timespec tm;
 	int retry_cnt;
 
+	cldu_hail_log.verbose = verbose;
+
 	evtimer_set(&ses.tm_rescan, cldu_tm_rescan, &ses);
 
 	if (cldu_setgroup(sp, thisgroup, thishost)) {
diff --git a/server/server.c b/server/server.c
index 18b3359..e1b0dbe 100644
--- a/server/server.c
+++ b/server/server.c
@@ -70,8 +70,8 @@ struct server_socket {
 static struct argp_option options[] = {
 	{ "config", 'C', "/etc/tabled.conf", 0,
 	  "Configuration file" },
-	{ "debug", 'D', NULL, 0,
-	  "Enable debug output" },
+	{ "debug", 'D', "LEVEL", 0,
+	  "Set debug output to LEVEL (0 = off, 2 = max)" },
 	{ "stderr", 'E', NULL, 0,
 	  "Switch the log to standard error" },
 	{ "pid", 'P', "FILE", 0,
@@ -90,6 +90,7 @@ static const struct argp argp = { options, parse_opt, NULL, doc };
 
 static bool server_running = true;
 static bool use_syslog = true;
+static int verbose = 0;
 int debugging = 0;
 
 struct server tabled_srv = {
@@ -176,12 +177,22 @@ static struct {
 
 static error_t parse_opt (int key, char *arg, struct argp_state *state)
 {
+	int v;
+
 	switch(key) {
 	case 'C':
 		tabled_srv.config = arg;
 		break;
 	case 'D':
-		debugging = 1;
+		v = atoi(arg);
+		if (v < 0 || v > 2) {
+			fprintf(stderr, "invalid debug level: '%s'\n", arg);
+			argp_usage(state);
+		}
+		if (v >= 1)
+			debugging = 1;
+		if (v >= 2)
+			verbose = 1;
 		break;
 	case 'E':
 		use_syslog = false;
@@ -1886,8 +1897,7 @@ int main (int argc, char *argv[])
 	if (use_syslog)
 		openlog(PROGRAM_NAME, LOG_PID, LOG_LOCAL3);
 	if (debugging)
-		applog(LOG_INFO, "Verbose debug output enabled");
-	cldu_hail_log.verbose = debugging;
+		applog(LOG_INFO, "Debug output enabled");
 
 	/*
 	 * now we can parse the configuration, errors to applog
@@ -1946,7 +1956,7 @@ int main (int argc, char *argv[])
 	if (rc)
 		goto err_out_net;
 
-	if (cld_begin(tabled_srv.ourhost, tabled_srv.group) != 0) {
+	if (cld_begin(tabled_srv.ourhost, tabled_srv.group, verbose) != 0) {
 		rc = 1;
 		goto err_cld_session;
 	}
diff --git a/server/tabled.h b/server/tabled.h
index 3ef4a49..eced4b6 100644
--- a/server/tabled.h
+++ b/server/tabled.h
@@ -295,10 +295,9 @@ extern void cli_in_end(struct client *cli);
 
 /* cldu.c */
 extern void cld_init(void);
-extern int cld_begin(const char *fqdn, const char *group);
+extern int cld_begin(const char *fqdn, const char *group, int verbose);
 extern void cldu_add_host(const char *host, unsigned int port);
 extern void cld_end(void);
-extern struct hail_log cldu_hail_log;
 
 /* util.c */
 extern size_t strlist_len(GList *l);
--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Fedora Clound]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux