This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
master - fence_tool/dlm_tool/gfs_control: improve ls output format
- From: David Teigland <teigland at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Fri, 5 Sep 2008 21:10:18 +0000 (UTC)
- Subject: 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: