All of lore.kernel.org
 help / color / mirror / Atom feed
From: pcaulfield@sourceware.org <pcaulfield@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/cman cman_tool/main.c daemon/cnxman-so ...
Date: 28 Aug 2007 13:14:12 -0000	[thread overview]
Message-ID: <20070828131412.3169.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	pcaulfield at sourceware.org	2007-08-28 13:14:11

Modified files:
	cman/cman_tool : main.c 
	cman/daemon    : cnxman-socket.h commands.c logging.c logging.h 
	cman/lib       : libcman.c libcman.h 
	cman/man       : cman_tool.8 

Log message:
	Add a 'cman_tool debug' command that allows cman debugging levels to be
	changed on-the-fly

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/cman_tool/main.c.diff?cvsroot=cluster&r1=1.55&r2=1.56
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/cnxman-socket.h.diff?cvsroot=cluster&r1=1.18&r2=1.19
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/commands.c.diff?cvsroot=cluster&r1=1.67&r2=1.68
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/logging.c.diff?cvsroot=cluster&r1=1.13&r2=1.14
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/logging.h.diff?cvsroot=cluster&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/lib/libcman.c.diff?cvsroot=cluster&r1=1.35&r2=1.36
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/lib/libcman.h.diff?cvsroot=cluster&r1=1.32&r2=1.33
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/man/cman_tool.8.diff?cvsroot=cluster&r1=1.11&r2=1.12

--- cluster/cman/cman_tool/main.c	2007/08/22 08:58:36	1.55
+++ cluster/cman/cman_tool/main.c	2007/08/28 13:14:06	1.56
@@ -31,13 +31,14 @@
 #define OP_STATUS		8
 #define OP_NODES		9
 #define OP_SERVICES		10
+#define OP_DEBUG		11
 
 
 static void print_usage(int subcmd)
 {
 	printf("Usage:\n");
 	printf("\n");
-	printf("%s <join|leave|kill|expected|votes|version|wait|status|nodes|services> [options]\n",
+	printf("%s <join|leave|kill|expected|votes|version|wait|status|nodes|services|debug> [options]\n",
 	       prog_name);
 	printf("\n");
 	printf("Options:\n");
@@ -591,6 +592,18 @@
 	cman_finish(h);
 }
 
+static void set_debuglog(commandline_t *comline)
+{
+	cman_handle_t h;
+
+	h = open_cman_handle(1);
+
+	if (cman_set_debuglog(h, comline->verbose))
+		perror("setting debuglog failed");
+
+	cman_finish(h);
+}
+
 
 static int get_int_arg(char argopt, char *arg)
 {
@@ -774,7 +787,10 @@
 		} else if (strcmp(argv[optind], "services") == 0) {
 			if (comline->operation)
 				die("can't specify two operations");
-			comline->operation = OP_SERVICES;
+		} else if (strcmp(argv[optind], "debug") == 0) {
+			if (comline->operation)
+				die("can't specify two operations");
+			comline->operation = OP_DEBUG;
 		} else if (strcmp(argv[optind], "remove") == 0) {
 			comline->remove = TRUE;
 		} else if (strcmp(argv[optind], "force") == 0) {
@@ -889,6 +905,10 @@
 	case OP_SERVICES:
 		show_services();
 		break;
+
+	case OP_DEBUG:
+		set_debuglog(&comline);
+		break;
 	}
 
 	exit(EXIT_SUCCESS);
--- cluster/cman/daemon/cnxman-socket.h	2007/08/20 14:37:26	1.18
+++ cluster/cman/daemon/cnxman-socket.h	2007/08/28 13:14:10	1.19
@@ -53,6 +53,7 @@
 #define CMAN_CMD_START_CONFCHG      0x000000c0
 #define CMAN_CMD_STOP_CONFCHG       0x000000c1
 #define CMAN_CMD_SET_DIRTY          0x800000c2
+#define CMAN_CMD_SET_DEBUGLOG       0x800000c3
 
 #define CMAN_CMD_DATA               0x00000100
 #define CMAN_CMD_BIND               0x00000101
--- cluster/cman/daemon/commands.c	2007/08/22 07:05:58	1.67
+++ cluster/cman/daemon/commands.c	2007/08/28 13:14:10	1.68
@@ -1189,6 +1189,7 @@
 	int err = -EINVAL;
 	struct cl_version cnxman_version;
 	char *outbuf = *retbuf;
+	int value;
 
 	P_MEMB("command to process is %x\n", cmd);
 
@@ -1214,6 +1215,12 @@
 		err = 0;
 		break;
 
+	case CMAN_CMD_SET_DEBUGLOG:
+		memcpy(&value, cmdbuf, sizeof(int));
+		set_debuglog(value);
+		err = 0;
+		break;
+
 	case CMAN_CMD_START_CONFCHG:
 		con->confchg = 1;
 		err = 0;
--- cluster/cman/daemon/logging.c	2006/11/08 15:49:39	1.13
+++ cluster/cman/daemon/logging.c	2007/08/28 13:14:10	1.14
@@ -1,7 +1,7 @@
 /******************************************************************************
 *******************************************************************************
 **
-**  Copyright (C) 2005-2006 Red Hat, Inc.  All rights reserved.
+**  Copyright (C) 2005-2007 Red Hat, Inc.  All rights reserved.
 **
 **  This copyrighted material is made available to anyone wishing to use,
 **  modify, copy, or redistribute it subject to the terms and conditions
@@ -50,6 +50,11 @@
 	subsys_mask = subsystems;
 }
 
+void set_debuglog(int subsystems)
+{
+	subsys_mask = subsystems;
+}
+
 void log_debug(int subsys, int stamp, const char *fmt, ...)
 {
 	va_list va;
--- cluster/cman/daemon/logging.h	2006/11/08 15:49:39	1.6
+++ cluster/cman/daemon/logging.h	2007/08/28 13:14:10	1.7
@@ -1,7 +1,7 @@
 /******************************************************************************
 *******************************************************************************
 **
-**  Copyright (C) 2005 Red Hat, Inc.  All rights reserved.
+**  Copyright (C) 2005-2007 Red Hat, Inc.  All rights reserved.
 **
 **  This copyrighted material is made available to anyone wishing to use,
 **  modify, copy, or redistribute it subject to the terms and conditions
@@ -12,6 +12,7 @@
 
 extern void log_msg(int priority, char *fmt, ...);
 extern void init_debug(int subsystems);
+extern void set_debuglog(int subsystems);
 
 /* Debug macros */
 #define CMAN_DEBUG_NONE    1
--- cluster/cman/lib/libcman.c	2007/08/20 14:37:26	1.35
+++ cluster/cman/lib/libcman.c	2007/08/28 13:14:10	1.36
@@ -986,6 +986,14 @@
 	return info_call(h, CMAN_CMD_SET_DIRTY, NULL, 0, NULL, 0);
 }
 
+int cman_set_debuglog(cman_handle_t handle, int subsystems)
+{
+	struct cman_handle *h = (struct cman_handle *)handle;
+	VALIDATE_HANDLE(h);
+
+	return info_call(h, CMAN_CMD_SET_DEBUGLOG, &subsystems, sizeof(int), NULL, 0);
+}
+
 int cman_replyto_shutdown(cman_handle_t handle, int yesno)
 {
 	struct cman_handle *h = (struct cman_handle *)handle;
--- cluster/cman/lib/libcman.h	2007/08/22 07:09:44	1.32
+++ cluster/cman/lib/libcman.h	2007/08/28 13:14:10	1.33
@@ -397,4 +397,17 @@
  */
 int cman_set_dirty(cman_handle_t handle);
 
+
+/*
+ * Changes the debug logging level inside cman.
+ * subsystems is a bitmask of:
+ */
+#define CMAN_DEBUGLOG_NONE       0
+#define CMAN_DEBUGLOG_BARRIER    2
+#define CMAN_DEBUGLOG_MEMBERSHIP 4
+#define CMAN_DEBUGLOG_DEAMON     8
+#define CMAN_DEBUGLOG_AIS       16
+
+int cman_set_debuglog(cman_handle_t handle, int subsystems);
+
 #endif
--- cluster/cman/man/cman_tool.8	2007/08/22 13:39:57	1.11
+++ cluster/cman/man/cman_tool.8	2007/08/28 13:14:10	1.12
@@ -3,7 +3,7 @@
 .SH NAME
 cman_tool \- Cluster Management Tool
 .SH SYNOPSIS
-.B cman_tool join | leave | kill | expected | votes | version | wait | status | nodes | services [options]
+.B cman_tool join | leave | kill | expected | votes | version | wait | status | nodes | services | debug [options]
 .br
 .SH DESCRIPTION
 .PP
@@ -84,6 +84,14 @@
 Displays the local view of subsystems using cman (deprecated, group_tool
 should be used instead).
 
+.TP
+.I debug
+Sets the debug level of the running cman daemon. Debug output will be
+sent to syslog level LOG_DEBUG. the
+.B -d
+switch specifies the new logging level. This is the same bitmask used
+for cman_tool join -d
+.br
 .SH "LEAVE" OPTIONS
 .TP
 .I -w
@@ -235,3 +243,16 @@
 .I -a
 Shows the IP address(es) the nodes are communicating on.
 
+.SH "DEBUG" OPTIONS
+.TP
+.I -d <value>
+The value is a bitmask of
+.br 
+2 Barriers
+.br
+4 Membership messages
+.br
+8 Daemon operation, including command-line interaction
+.br
+16 Interaction with OpenAIS
+.br



             reply	other threads:[~2007-08-28 13:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-28 13:14 pcaulfield [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-09-17 13:48 [Cluster-devel] cluster/cman cman_tool/main.c daemon/cnxman-so pcaulfield
2007-12-05 14:28 pcaulfield
2008-02-08 14:09 pcaulfield

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=20070828131412.3169.qmail@sourceware.org \
    --to=pcaulfield@sourceware.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.