Rev 222: saner logfile code in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Sun Apr 29 20:42:23 GMT 2007


------------------------------------------------------------
revno: 222
revision-id: tridge at samba.org-20070429204223-p3irof22u7mgolo6
parent: tridge at samba.org-20070429141940-kxbij0fq3pj33qvn
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Sun 2007-04-29 22:42:23 +0200
message:
  saner logfile code
  testing of ctdbd
modified:
  Makefile.in                    makefile.in-20061117234101-o3qt14umlg9en8z0-1
  common/cmdline.c               cmdline.c-20070416041216-w1zvz91bkdsgjckw-1
  common/ctdb.c                  ctdb.c-20061127094323-t50f58d65iaao5of-2
  direct/ctdbd.c                 ctdbd.c-20070411085044-dqmhr6mfeexnyt4m-1
  direct/ctdbd.sh                ctdbd.sh-20070411085038-phusiewluwzyqjpc-2
  include/ctdb.h                 ctdb.h-20061117234101-o3qt14umlg9en8z0-11
  include/ctdb_private.h         ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
  tests/run_tests.sh             run_tests.sh-20070428085745-ec2w6vybjf07vtvg-1
=== modified file 'Makefile.in'
--- a/Makefile.in	2007-04-28 15:13:02 +0000
+++ b/Makefile.in	2007-04-29 20:42:23 +0000
@@ -7,6 +7,7 @@
 includedir = @includedir@
 libdir = @libdir@
 bindir = @bindir@
+localstatedir = @localstatedir@
 VPATH = @srcdir@:@tdbdir@:@tallocdir@:@libreplacedir@
 srcdir = @srcdir@
 builddir = @builddir@
@@ -14,7 +15,7 @@
 
 CFLAGS=-g -I$(srcdir)/include -Iinclude -Ilib/util -I$(srcdir) \
        -I at tallocdir@ -I at tdbdir@/include -I at libreplacedir@ \
-	-DLIBDIR=\"$(libdir)\" -DSHLIBEXT=\"@SHLIBEXT@\" -DUSE_MMAP=1 @CFLAGS@
+	-DVARDIR=\"$(localstatedir)\" -DUSE_MMAP=1 @CFLAGS@
 
 LIB_FLAGS=@LDFLAGS@ -Llib @LIBS@ -lpopt @INFINIBAND_LIBS@
 

=== modified file 'common/cmdline.c'
--- a/common/cmdline.c	2007-04-27 08:43:52 +0000
+++ b/common/cmdline.c	2007-04-29 20:42:23 +0000
@@ -36,6 +36,7 @@
 	int self_connect;
 	const char *db_dir;
 	int torture;
+	const char *logfile;
 } ctdb_cmdline = {
 	.nlist = NULL,
 	.transport = "tcp",
@@ -43,7 +44,8 @@
 	.socketname = CTDB_PATH,
 	.self_connect = 0,
 	.db_dir = NULL,
-	.torture = 0
+	.torture = 0,
+	.logfile = NULL
 };
 
 
@@ -56,6 +58,7 @@
 	{ "debug", 'd', POPT_ARG_INT, &LogLevel, 0, "debug level"},
 	{ "dbdir", 0, POPT_ARG_STRING, &ctdb_cmdline.db_dir, 0, "directory for the tdb files", NULL },
 	{ "torture", 0, POPT_ARG_NONE, &ctdb_cmdline.torture, 0, "enable nastiness in library", NULL },
+	{ "logfile", 0, POPT_ARG_STRING, &ctdb_cmdline.logfile, 0, "log file location", "filename" },
 	{ NULL }
 };
 
@@ -80,6 +83,12 @@
 		exit(1);
 	}
 
+	ret = ctdb_set_logfile(ctdb, ctdb_cmdline.logfile);
+	if (ret == -1) {
+		printf("ctdb_set_logfile failed - %s\n", ctdb_errstr(ctdb));
+		exit(1);
+	}
+
 	if (ctdb_cmdline.self_connect) {
 		ctdb_set_flags(ctdb, CTDB_FLAG_SELF_CONNECT);
 	}

=== modified file 'common/ctdb.c'
--- a/common/ctdb.c	2007-04-28 16:18:33 +0000
+++ b/common/ctdb.c	2007-04-29 20:42:23 +0000
@@ -35,6 +35,27 @@
 	return 0;
 }
 
+/*
+  choose the logfile location
+*/
+int ctdb_set_logfile(struct ctdb_context *ctdb, const char *logfile)
+{
+	ctdb->logfile = talloc_strdup(ctdb, logfile);
+	if (ctdb->logfile != NULL) {
+		int fd;
+		close(1);
+		fd = open(ctdb->logfile, O_WRONLY|O_APPEND|O_CREAT, 0666);
+		if (fd == -1) {
+			abort();
+		}
+		if (fd != 1) {
+			dup2(fd, 1);
+			close(fd);
+		}
+	}
+	return 0;
+}
+
 
 /*
   set some ctdb flags

=== modified file 'direct/ctdbd.c'
--- a/direct/ctdbd.c	2007-04-29 14:19:40 +0000
+++ b/direct/ctdbd.c	2007-04-29 20:42:23 +0000
@@ -24,6 +24,7 @@
 #include "popt.h"
 #include "system/wait.h"
 #include "cmdline.h"
+#include "../include/ctdb_private.h"
 
 static void block_signal(int signum)
 {
@@ -83,6 +84,13 @@
 
 	ctdb = ctdb_cmdline_init(ev);
 
+	/* useful default logfile */
+	if (ctdb->logfile == NULL) {
+		char *name = talloc_asprintf(ctdb, "%s/log.ctdb.%u", VARDIR, ctdb->vnn);
+		ctdb_set_logfile(ctdb, name);
+		talloc_free(name);
+	}
+
 	/* attach to the list of databases */
 	s = talloc_strdup(ctdb, db_list);
 	for (tok=strtok(s, ", "); tok; tok=strtok(NULL, ", ")) {

=== modified file 'direct/ctdbd.sh'
--- a/direct/ctdbd.sh	2007-04-19 00:24:11 +0000
+++ b/direct/ctdbd.sh	2007-04-29 20:42:23 +0000
@@ -3,6 +3,28 @@
 killall -q ctdbd
 
 echo "Starting 2 ctdb daemons"
-bin/ctdbd --nlist direct/nodes.txt --listen 127.0.0.2:9001 &
-bin/ctdbd --nlist direct/nodes.txt --listen 127.0.0.1:9001 &
+bin/ctdbd --nlist direct/nodes.txt --listen 127.0.0.2:9001
+bin/ctdbd --nlist direct/nodes.txt --listen 127.0.0.1:9001
+
+echo "Testing ping"
+bin/ctdb_control ping || exit 1
+
+echo "Testing status"
+bin/ctdb_control status all || exit 1
+
+echo "Testing statusreset"
+bin/ctdb_control statusreset all || exit 1
+
+echo "Testing debug"
+bin/ctdb_control debug all 5 || exit 1
+bin/ctdb_control debuglevel || exit 1
+bin/ctdb_control debug all 0 || exit 1
+bin/ctdb_control debuglevel || exit 1
+
+echo "Testing map calls"
+bin/ctdb_control getvnnmap 0 || exit 1
+bin/ctdb_control getdbmap 0 || exit 1
+
+killall -q ctdbd
+
 

=== modified file 'include/ctdb.h'
--- a/include/ctdb.h	2007-04-29 14:19:40 +0000
+++ b/include/ctdb.h	2007-04-29 20:42:23 +0000
@@ -259,4 +259,6 @@
 
 int ctdb_status_reset(struct ctdb_context *ctdb, uint32_t destnode);
 
+int ctdb_set_logfile(struct ctdb_context *ctdb, const char *logfile);
+
 #endif

=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h	2007-04-29 14:19:40 +0000
+++ b/include/ctdb_private.h	2007-04-29 20:42:23 +0000
@@ -176,6 +176,7 @@
 	const char *name;
 	const char *db_directory;
 	const char *transport;
+	const char *logfile;
 	uint32_t vnn; /* our own vnn */
 	uint32_t num_nodes;
 	uint32_t num_connected;

=== modified file 'tests/run_tests.sh'
--- a/tests/run_tests.sh	2007-04-28 16:18:33 +0000
+++ b/tests/run_tests.sh	2007-04-29 20:42:23 +0000
@@ -3,6 +3,7 @@
 tests/fetch.sh 4 || exit 1
 tests/bench.sh 4 || exit 1
 tests/test.sh || exit 1
+direct/ctdbd.sh || exit 1
 
 echo "All OK"
 exit 0



More information about the samba-cvs mailing list