All of lore.kernel.org
 help / color / mirror / Atom feed
From: teigland@sourceware.org <teigland@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] Cluster Project branch, master, updated. cluster-2.99.00-3-g10e2bab
Date: 29 Apr 2008 17:24:30 -0000	[thread overview]
Message-ID: <20080429172430.6595.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=10e2bab755c36ffa73988e6e731b667dafa9c169

The branch, master has been updated
       via  10e2bab755c36ffa73988e6e731b667dafa9c169 (commit)
      from  1fece51155f0df4e1524dc073a14e641392b0b7b (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 10e2bab755c36ffa73988e6e731b667dafa9c169
Author: David Teigland <teigland@redhat.com>
Date:   Tue Apr 29 12:18:27 2008 -0500

    fence_tool: fix list command
    
    Signed-off-by: David Teigland <teigland@redhat.com>

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

Summary of changes:
 fence/fence_tool/fence_tool.c |   31 ++++++++++++++++---------------
 fence/fenced/main.c           |   14 ++++++++------
 fence/libfenced/main.c        |   22 ++++++++++++++--------
 3 files changed, 38 insertions(+), 29 deletions(-)

diff --git a/fence/fence_tool/fence_tool.c b/fence/fence_tool/fence_tool.c
index 0152948..5be3680 100644
--- a/fence/fence_tool/fence_tool.c
+++ b/fence/fence_tool/fence_tool.c
@@ -288,16 +288,25 @@ static int do_list(void)
 {
 	struct fenced_domain d;
 	struct fenced_node *nodes, *np;
-	int node_count = 0;
+	int node_count;
 	int rv, i;
 
+
 	rv = fenced_domain_info(&d);
-	if (rv < 0)
-		die("can't communicate with fenced");
+	if (rv < 0) {
+		fprintf(stderr, "fenced_domain_info error %d\n", rv);
+		return rv;
+	}
+
+	printf("fence domain info\n");
+	printf("member_count %d master_nodeid %d victim_count %d current_victim %d state %d\n",
+		d.member_count, d.master_nodeid, d.victim_count, d.current_victim, d.state);
 
 	nodes = malloc(MAX_NODES * sizeof(struct fenced_node));
 	if (!nodes)
 		return -ENOMEM;
+	memset(nodes, 0, sizeof(*nodes));
+	node_count = 0;
 
 	rv = fenced_domain_nodes(FENCED_NODES_MEMBERS, MAX_NODES,
 				 &node_count, nodes);
@@ -305,20 +314,11 @@ static int do_list(void)
 		fprintf(stderr, "fenced_domain_nodes error %d\n", rv);
 		return rv;
 	}
-
-	printf("default fence domain\n");
-
-	if (verbose > 0)
-		printf("member_count %d victim_count %d master_nodeid %d current_victim %d state %d\n",
-			d.member_count, d.victim_count, d.master_nodeid, d.current_victim, d.state);
-
-	/*
 	qsort(&nodes, node_count, sizeof(struct fenced_node), node_compare);
-	*/
 
-	printf("domain_nodes node_count %d\n", node_count);
-	np = nodes;
+	printf("fence domain members\n");
 
+	np = nodes;
 	printf("[");
 	for (i = 0; i < node_count; i++) {
 		if (i != 0)
@@ -328,8 +328,9 @@ static int do_list(void)
 	}
 	printf("]\n");
 
-	free(nodes);
+	/* if verbose, query all nodes and print all info for each */
 
+	free(nodes);
 	return 0;
 }
 
diff --git a/fence/fenced/main.c b/fence/fenced/main.c
index bdd0f8b..439b9d3 100644
--- a/fence/fenced/main.c
+++ b/fence/fenced/main.c
@@ -363,20 +363,22 @@ static void query_domain_nodes(int f, int option, int max)
 	struct fd *fd;
 	int node_count = 0;
 	struct fenced_node *nodes = NULL;
-	int rv;
+	int rv, result;
 
 	fd = find_fd("default");
 	if (!fd) {
-		rv = -ENOENT;
+		result = -ENOENT;
+		node_count = 0;
 		goto out;
 	}
 
 	if (group_mode == GROUP_LIBGROUP)
-		rv = set_domain_nodes(fd, option, &node_count, &nodes);
+		rv = set_domain_nodes_group(fd, option, &node_count, &nodes);
 	else
 		rv = set_domain_nodes(fd, option, &node_count, &nodes);
 
 	if (rv < 0) {
+		result = rv;
 		node_count = 0;
 		goto out;
 	}
@@ -386,13 +388,13 @@ static void query_domain_nodes(int f, int option, int max)
 	   asked for and return -E2BIG */
 
 	if (node_count > max) {
-		rv = -E2BIG;
+		result = -E2BIG;
 		node_count = max;
 	} else {
-		rv = node_count;
+		result = node_count;
 	}
  out:
-	do_reply(f, FENCED_CMD_DOMAIN_NODES, rv,
+	do_reply(f, FENCED_CMD_DOMAIN_NODES, result,
 	         (char *)nodes, node_count * sizeof(struct fenced_node));
 
 	if (nodes)
diff --git a/fence/libfenced/main.c b/fence/libfenced/main.c
index 17dd37e..4f2a310 100644
--- a/fence/libfenced/main.c
+++ b/fence/libfenced/main.c
@@ -281,7 +281,7 @@ int fenced_domain_nodes(int type, int max, int *count, struct fenced_node *nodes
 	struct fenced_header h, *rh;
 	char *reply;
 	int reply_len;
-	int fd, rv;
+	int fd, rv, result, node_count;
 
 	init_header(&h, FENCED_CMD_DOMAIN_NODES, sizeof(h));
 	h.option = type;
@@ -309,17 +309,23 @@ int fenced_domain_nodes(int type, int max, int *count, struct fenced_node *nodes
 	do_read(fd, reply, reply_len);
 
 	rh = (struct fenced_header *)reply;
-	rv = rh->data;
-	if (rv < 0 && rv != -E2BIG)
+	result = rh->data;
+	if (result < 0 && result != -E2BIG) {
+		rv = result;
 		goto out_close;
+	}
 
-	if (rv == -E2BIG)
-		*count = max;
-	else
-		*count = rv;
+	if (result == -E2BIG) {
+		*count = -E2BIG;
+		node_count = max;
+	} else {
+		*count = result;
+		node_count = result;
+	}
+	rv = 0;
 
 	memcpy(nodes, (char *)reply + sizeof(struct fenced_header),
-	       *count * sizeof(struct fenced_node));
+	       node_count * sizeof(struct fenced_node));
  out_close:
 	close(fd);
  out:


hooks/post-receive
--
Cluster Project



                 reply	other threads:[~2008-04-29 17:24 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=20080429172430.6595.qmail@sourceware.org \
    --to=teigland@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.