This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

master - fence_tool/dlm_tool/gfs_control: improve ls output format


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=9229fda79c0b699ee8f60eab44b51ef9807a9fe9
Commit:        9229fda79c0b699ee8f60eab44b51ef9807a9fe9
Parent:        ed4d82afe19090c688c214b96bd81c64067200d6
Author:        David Teigland <teigland@redhat.com>
AuthorDate:    Fri Sep 5 15:57:53 2008 -0500
Committer:     David Teigland <teigland@redhat.com>
CommitterDate: Fri Sep 5 15:57:53 2008 -0500

fence_tool/dlm_tool/gfs_control: improve ls output format

Improve the output formatting of 'ls' list operations to make
the info easier to view.

Signed-off-by: David Teigland <teigland@redhat.com>
---
 dlm/tool/main.c               |  145 +++++++++++++++++++++-------------------
 fence/fence_tool/fence_tool.c |   16 +++--
 group/gfs_control/main.c      |  150 ++++++++++++++++++++++-------------------
 3 files changed, 166 insertions(+), 145 deletions(-)

diff --git a/dlm/tool/main.c b/dlm/tool/main.c
index a426041..f916fce 100644
--- a/dlm/tool/main.c
+++ b/dlm/tool/main.c
@@ -40,6 +40,13 @@ static int opt_fs = 0;
 static int dump_mstcpy = 0;
 static mode_t create_mode = 0600;
 
+#define MAX_LS 128
+#define MAX_NODES 128
+
+struct dlmc_lockspace lss[MAX_LS];
+struct dlmc_node nodes[MAX_NODES];
+
+
 static void print_usage(void)
 {
 	printf("Usage:\n");
@@ -523,28 +530,77 @@ char *condition_str(int cond)
 	}
 }
 
+static int node_compare(const void *va, const void *vb)
+{
+	const struct dlmc_node *a = va;
+	const struct dlmc_node *b = vb;
+
+	return a->nodeid - b->nodeid;
+}
+
+static void show_nodeids(int count, struct dlmc_node *nodes)
+{
+	struct dlmc_node *n = nodes;
+	int i;
+
+	for (i = 0; i < count; i++) {
+		printf("%d ", n->nodeid);
+		n++;
+	}
+	printf("\n");
+}
+
 static void show_ls(struct dlmc_lockspace *ls)
 {
-	printf("dlm lockspace \"%s\"\n", ls->name);
-	printf("id 0x%x flags 0x%x %s\n", ls->global_id, ls->flags,
-		dlmc_lf_str(ls->flags));
+	int rv, node_count;
 
-	printf("seq %u-%u counts member %d joined %d remove %d failed %d\n",
-	        ls->cg_prev.combined_seq, ls->cg_prev.seq,
+	printf("name          %s\n", ls->name);
+	printf("id            0x%08x\n", ls->global_id);
+	printf("flags         0x%08x %s\n",
+		ls->flags, dlmc_lf_str(ls->flags));
+	printf("change        member %d joined %d remove %d failed %d seq %d,%d\n",
 		ls->cg_prev.member_count, ls->cg_prev.joined_count,
-		ls->cg_prev.remove_count, ls->cg_prev.failed_count);
+		ls->cg_prev.remove_count, ls->cg_prev.failed_count,
+		ls->cg_prev.combined_seq, ls->cg_prev.seq);
+
+	node_count = 0;
+	memset(&nodes, 0, sizeof(nodes));
+	rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_MEMBERS,
+				  MAX_NODES, &node_count, nodes);
+	if (rv < 0) {
+		printf("members       error\n");
+		goto next;
+	}
+	qsort(nodes, node_count, sizeof(struct dlmc_node), node_compare);
+
+	printf("members       ");
+	show_nodeids(node_count, nodes);
 
+ next:
 	if (!ls->cg_next.seq)
 		return;
 
-	printf("new seq %u-%u counts member %d joined %d remove %d failed %d\n",
-	        ls->cg_next.combined_seq, ls->cg_next.seq,
+	printf("new change    member %d joined %d remove %d failed %d seq %d,%d\n",
 		ls->cg_next.member_count, ls->cg_next.joined_count,
-		ls->cg_next.remove_count, ls->cg_next.failed_count);
+		ls->cg_next.remove_count, ls->cg_next.failed_count,
+	        ls->cg_next.combined_seq, ls->cg_next.seq);
 
-	printf("new wait_messages %d wait_condition %d %s\n",
+	printf("new status    wait_messages %d wait_condition %d %s\n",
 		ls->cg_next.wait_messages, ls->cg_next.wait_condition,
 		condition_str(ls->cg_next.wait_condition));
+
+	node_count = 0;
+	memset(&nodes, 0, sizeof(nodes));
+	rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_NEXT,
+				  MAX_NODES, &node_count, nodes);
+	if (rv < 0) {
+		printf("new members   error\n");
+		return;
+	}
+	qsort(nodes, node_count, sizeof(struct dlmc_node), node_compare);
+
+	printf("new members   ");
+	show_nodeids(node_count, nodes);
 }
 
 static void show_all_nodes(int count, struct dlmc_node *nodes)
@@ -560,32 +616,6 @@ static void show_all_nodes(int count, struct dlmc_node *nodes)
 	}
 }
 
-static void show_nodeids(int count, struct dlmc_node *nodes)
-{
-	struct dlmc_node *n = nodes;
-	int i;
-
-	for (i = 0; i < count; i++) {
-		printf("%d ", n->nodeid);
-		n++;
-	}
-	printf("\n");
-}
-
-static int node_compare(const void *va, const void *vb)
-{
-	const struct dlmc_node *a = va;
-	const struct dlmc_node *b = vb;
-
-	return a->nodeid - b->nodeid;
-}
-
-#define MAX_LS 128
-#define MAX_NODES 128
-
-struct dlmc_lockspace lss[MAX_LS];
-struct dlmc_node nodes[MAX_NODES];
-
 static void do_list(char *name)
 {
 	struct dlmc_lockspace *ls;
@@ -607,56 +637,33 @@ static void do_list(char *name)
 			goto out;
 	}
 
+	if (ls_count)
+		printf("dlm lockspaces\n");
+
 	for (i = 0; i < ls_count; i++) {
 		ls = &lss[i];
 
 		show_ls(ls);
 
-		node_count = 0;
-		memset(&nodes, 0, sizeof(nodes));
-
-		rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_MEMBERS,
-					  MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
-
-		qsort(nodes, node_count, sizeof(struct dlmc_node),node_compare);
-
-		printf("members ");
-		show_nodeids(node_count, nodes);
-
-		if (!ls->cg_next.seq)
-			goto show_all;
-
-		node_count = 0;
-		memset(&nodes, 0, sizeof(nodes));
-
-		rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_NEXT,
-			 		  MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
-
-		qsort(nodes, node_count, sizeof(struct dlmc_node),node_compare);
-
-		printf("new members ");
-		show_nodeids(node_count, nodes);
-
- show_all:
 		if (!verbose)
-			continue;
+			goto next;
 
 		node_count = 0;
 		memset(&nodes, 0, sizeof(nodes));
 
 		rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_ALL,
 					  MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
+		if (rv < 0) {
+			printf("all nodes error %d %d\n", rv, errno);
+			goto next;
+		}
 
 		qsort(nodes, node_count, sizeof(struct dlmc_node),node_compare);
 
 		printf("all nodes\n");
 		show_all_nodes(node_count, nodes);
+ next:
+		printf("\n");
 	}
 	return;
  out:
diff --git a/fence/fence_tool/fence_tool.c b/fence/fence_tool/fence_tool.c
index 8e4040b..4c5875a 100644
--- a/fence/fence_tool/fence_tool.c
+++ b/fence/fence_tool/fence_tool.c
@@ -382,22 +382,25 @@ static int do_list(void)
 	if (rv < 0)
 		goto fail;
 
-	printf("fence domain \"default\"\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);
+	printf("fence domain\n");
+	printf("member count  %d\n", d.member_count);
+	printf("victim count  %d\n", d.victim_count);
+	printf("victim now    %d\n", d.current_victim);
+	printf("master nodeid %d\n", d.master_nodeid);
+	printf("members       ");
 
 	node_count = 0;
 	memset(&nodes, 0, sizeof(nodes));
 
 	rv = fenced_domain_nodes(FENCED_NODES_MEMBERS, MAX_NODES,
 				 &node_count, nodes);
-	if (rv < 0)
+	if (rv < 0) {
+		printf("error\n");
 		goto fail;
+	}
 
 	qsort(&nodes, node_count, sizeof(struct fenced_node), node_compare);
 
-	printf("members ");
-
 	np = nodes;
 	for (i = 0; i < node_count; i++) {
 		printf("%d ", np->nodeid);
@@ -430,6 +433,7 @@ static int do_list(void)
 				np->last_fenced_how);
 		np++;
 	}
+	printf("\n");
 	exit(EXIT_SUCCESS);
  fail:
 	fprintf(stderr, "fenced query error %d\n", rv);
diff --git a/group/gfs_control/main.c b/group/gfs_control/main.c
index 265713a..d0c1d8b 100644
--- a/group/gfs_control/main.c
+++ b/group/gfs_control/main.c
@@ -29,6 +29,13 @@ static int operation;
 static int opt_ind;
 static int verbose;
 
+#define MAX_MG 128
+#define MAX_NODES 128
+
+struct gfsc_mountgroup mgs[MAX_MG];
+struct gfsc_node nodes[MAX_NODES];
+
+
 static void print_usage(void)
 {
 	printf("Usage:\n");
@@ -52,6 +59,10 @@ static void decode_arguments(int argc, char **argv)
 		optchar = getopt(argc, argv, OPTION_STRING);
 
 		switch (optchar) {
+		case 'v':
+			verbose = 1;
+			break;
+
 		case 'h':
 			print_usage();
 			exit(EXIT_SUCCESS);
@@ -228,29 +239,77 @@ char *condition_str(int cond)
 	}
 }
 
+static void show_nodeids(int count, struct gfsc_node *nodes)
+{
+	struct gfsc_node *n = nodes;
+	int i;
+
+	for (i = 0; i < count; i++) {
+		printf("%d ", n->nodeid);
+		n++;
+	}
+	printf("\n");
+}
+
+static int node_compare(const void *va, const void *vb)
+{
+	const struct gfsc_node *a = va;
+	const struct gfsc_node *b = vb;
+
+	return a->nodeid - b->nodeid;
+}
+
 static void show_mg(struct gfsc_mountgroup *mg)
 {
-	printf("gfs mountgroup \"%s\"\n", mg->name);
-	printf("id 0x%x flags 0x%x %s\n", mg->global_id, mg->flags,
-		gfsc_mf_str(mg->flags));
-	printf("journals needing recovery %d\n", mg->journals_need_recovery);
+	int rv, node_count;
 
-	printf("seq %u-%u counts member %d joined %d remove %d failed %d\n",
-	        mg->cg_prev.combined_seq, mg->cg_prev.seq,
+	printf("name          %s\n", mg->name);
+	printf("id            0x%08x\n", mg->global_id);
+	printf("flags         0x%08x %s\n",
+		mg->flags, gfsc_mf_str(mg->flags));
+	printf("change        member %d joined %d remove %d failed %d seq %d,%d\n",
 		mg->cg_prev.member_count, mg->cg_prev.joined_count,
-		mg->cg_prev.remove_count, mg->cg_prev.failed_count);
+		mg->cg_prev.remove_count, mg->cg_prev.failed_count,
+	        mg->cg_prev.combined_seq, mg->cg_prev.seq);
+
+	node_count = 0;
+	memset(&nodes, 0, sizeof(nodes));
+	rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_MEMBERS,
+				   MAX_NODES, &node_count, nodes);
+	if (rv < 0) {
+		printf("members       error\n");
+		goto next;
+	}
+	qsort(nodes, node_count, sizeof(struct gfsc_node), node_compare);
+
+	printf("members       ");
+	show_nodeids(node_count, nodes);
 
+ next:
 	if (!mg->cg_next.seq)
 		return;
 
-	printf("new seq %u-%u counts member %d joined %d remove %d failed %d\n",
-	        mg->cg_next.combined_seq, mg->cg_next.seq,
+	printf("new change    member %d joined %d remove %d failed %d seq %d,%d\n",
 		mg->cg_next.member_count, mg->cg_next.joined_count,
-		mg->cg_next.remove_count, mg->cg_next.failed_count);
+		mg->cg_next.remove_count, mg->cg_next.failed_count,
+		mg->cg_next.combined_seq, mg->cg_next.seq);
 
-	printf("new wait_messages %d wait_condition %d %s\n",
+	printf("new status    wait_messages %d wait_condition %d %s\n",
 		mg->cg_next.wait_messages, mg->cg_next.wait_condition,
 		condition_str(mg->cg_next.wait_condition));
+
+	node_count = 0;
+	memset(&nodes, 0, sizeof(nodes));
+	rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_NEXT,
+				   MAX_NODES, &node_count, nodes);
+	if (rv < 0) {
+		printf("new members   error\n");
+		return;
+	}
+	qsort(nodes, node_count, sizeof(struct gfsc_node), node_compare);
+
+	printf("new members ");
+	show_nodeids(node_count, nodes);
 }
 
 static void show_all_nodes(int count, struct gfsc_node *nodes)
@@ -266,32 +325,6 @@ static void show_all_nodes(int count, struct gfsc_node *nodes)
 	}
 }
 
-static void show_nodeids(int count, struct gfsc_node *nodes)
-{
-	struct gfsc_node *n = nodes;
-	int i;
-
-	for (i = 0; i < count; i++) {
-		printf("%d ", n->nodeid);
-		n++;
-	}
-	printf("\n");
-}
-
-static int node_compare(const void *va, const void *vb)
-{
-	const struct gfsc_node *a = va;
-	const struct gfsc_node *b = vb;
-
-	return a->nodeid - b->nodeid;
-}
-
-#define MAX_MG 128
-#define MAX_NODES 128
-
-struct gfsc_mountgroup mgs[MAX_MG];
-struct gfsc_node nodes[MAX_NODES];
-
 static void do_list(char *name)
 {
 	struct gfsc_mountgroup *mg;
@@ -313,56 +346,33 @@ static void do_list(char *name)
 			goto out;
 	}
 
+	if (mg_count)
+		printf("gfs mountgroups\n");
+
 	for (i = 0; i < mg_count; i++) {
 		mg = &mgs[i];
 
 		show_mg(mg);
 
-		node_count = 0;
-		memset(&nodes, 0, sizeof(nodes));
-
-		rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_MEMBERS,
-					   MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
-
-		qsort(nodes, node_count, sizeof(struct gfsc_node),node_compare);
-
-		printf("members ");
-		show_nodeids(node_count, nodes);
-
-		if (!mg->cg_next.seq)
-			goto show_all;
-
-		node_count = 0;
-		memset(&nodes, 0, sizeof(nodes));
-
-		rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_NEXT,
-					   MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
-
-		qsort(nodes, node_count, sizeof(struct gfsc_node),node_compare);
-
-		printf("new members ");
-		show_nodeids(node_count, nodes);
-
- show_all:
 		if (!verbose)
-			continue;
+			goto next;
 
 		node_count = 0;
 		memset(&nodes, 0, sizeof(nodes));
 
 		rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_ALL,
 					   MAX_NODES, &node_count, nodes);
-		if (rv < 0)
-			goto out;
+		if (rv < 0) {
+			printf("all nodes error %d %d\n", rv, errno);
+			goto next;
+		}
 
 		qsort(nodes, node_count, sizeof(struct gfsc_node),node_compare);
 
 		printf("all nodes\n");
 		show_all_nodes(node_count, nodes);
+ next:
+		printf("\n");
 	}
 	return;
  out:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]