[PATCH 1/3] quorumtool: update man page and help text

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Fabio M. Di Nitto" <fdinitto@xxxxxxxxxx>

improve error output since this is more than a debugging tool now

Signed-off-by: Fabio M. Di Nitto <fdinitto@xxxxxxxxxx>
---
 man/corosync-quorumtool.8   |    2 +-
 tools/Makefile.am           |    2 +-
 tools/corosync-quorumtool.c |   52 ++++++++++++++++++++++++------------------
 3 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/man/corosync-quorumtool.8 b/man/corosync-quorumtool.8
index cda0b25..4be6323 100644
--- a/man/corosync-quorumtool.8
+++ b/man/corosync-quorumtool.8
@@ -53,7 +53,7 @@ list nodes
 change the number of votes for a node *
 .TP
 .B  -n <nodeid>
-optional nodeid of node for -v
+optional nodeid of node for -s or -v
 .TP
 .B  -e <expected>
 change expected votes for the cluster *
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 10b80c4..ed24725 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -66,7 +66,7 @@ corosync_cpgtool_LDFLAGS= $(COMMON_OPTS)
 corosync_cpgtool_LDADD	= -lcfg -lcpg $(LIBQB_LIBS)
 
 corosync_quorumtool_LDFLAGS = $(COMMON_OPTS)
-corosync_quorumtool_LDADD   = -lcmap -lcfg -lquorum \
+corosync_quorumtool_LDADD   = -lcmap -lcfg -lquorum -lcorosync_common \
 			      -lvotequorum $(LIBQB_LIBS)
 
 corosync_notifyd_CPPFLAGS = $(DBUS_CFLAGS)
diff --git a/tools/corosync-quorumtool.c b/tools/corosync-quorumtool.c
index f60d7fd..60926dc 100644
--- a/tools/corosync-quorumtool.c
+++ b/tools/corosync-quorumtool.c
@@ -130,15 +130,17 @@ static void show_usage(const char *name)
 	printf("  -s             show quorum status\n");
 	printf("  -m             monitor quorum status\n");
 	printf("  -l             list nodes\n");
-	printf("  -v <votes>     change the number of votes for a node *\n");
-	printf("  -n <nodeid>    optional nodeid of node for -v\n");
-	printf("  -e <expected>  change expected votes for the cluster *\n");
+	printf("  -v <votes>     change the number of votes for a node (*)\n");
+	printf("  -n <nodeid>    optional nodeid of node for -s or -v (*)\n");
+	printf("  -e <expected>  change expected votes for the cluster (*)\n");
 	printf("  -H             show nodeids in hexadecimal rather than decimal\n");
 	printf("  -i             show node IP addresses instead of the resolved name\n");
-	printf("  -f             forcefully unregister a quorum device *DANGEROUS*\n");
+#ifdef EXPERIMENTAL_QUORUM_DEVICE_API
+	printf("  -f             forcefully unregister a quorum device *DANGEROUS* (*)\n");
+#endif
 	printf("  -h             show this help text\n");
 	printf("\n");
-	printf("  * Starred items only work if votequorum is the quorum provider for corosync\n");
+	printf("  (*) Starred items only work if votequorum is the quorum provider for corosync\n");
 	printf("\n");
 }
 
@@ -200,7 +202,8 @@ static int set_votes(uint32_t nodeid, int votes)
 	int err;
 
 	if ((err=votequorum_setvotes(v_handle, nodeid, votes)) != CS_OK) {
-		fprintf(stderr, "set votes FAILED: %d\n", err);
+		fprintf(stderr, "Unable to set votes %d for nodeid: %u: %s\n",
+			votes, nodeid, cs_strerror(err));
 	}
 
 	return err==CS_OK?0:err;
@@ -211,7 +214,7 @@ static int set_expected(int expected_votes)
 	int err;
 
 	if ((err=votequorum_setexpected(v_handle, expected_votes)) != CS_OK) {
-		fprintf(stderr, "set expected votes FAILED: %d\n", err);
+		fprintf(stderr, "Unable to set expected votes: %s\n", cs_strerror(err));
 	}
 
 	return err==CS_OK?0:err;
@@ -244,7 +247,7 @@ static const char *node_name(uint32_t nodeid, name_format_t name_format)
 
 	err = corosync_cfg_get_node_addrs(c_handle, nodeid, INTERFACE_MAX, &numaddrs, addrs);
 	if (err != CS_OK) {
-		fprintf(stderr, "Unable to get node address for nodeid %u: %d\n", nodeid, err);
+		fprintf(stderr, "Unable to get node address for nodeid %u: %s\n", nodeid, cs_strerror(err));
 		return "";
 	}
 
@@ -315,14 +318,14 @@ static void display_nodes_data(uint32_t nodeid, nodeid_format_t nodeid_format, n
 		g_view_list = NULL;
 	}
 
-#if EXPERIMENTAL_QUORUM_DEVICE_API
+#ifdef EXPERIMENTAL_QUORUM_DEVICE_API
 	if ((display_qdevice) && (v_handle)) {
 		int err;
 		struct votequorum_qdevice_info qinfo;
 
 		err = votequorum_qdevice_getinfo(v_handle, nodeid, &qinfo);
 		if (err != CS_OK) {
-			fprintf(stderr, "votequorum_qdevice_getinfo error: %d\n", err);
+			fprintf(stderr, "Unable to get quorum device info: %s\n", cs_strerror(err));
 		} else {
 			if (nodeid_format == NODEID_FORMAT_DECIMAL) {
 				printf("%10u   ", VOTEQUORUM_NODEID_QDEVICE);
@@ -380,6 +383,9 @@ static int display_quorum_data(int is_quorate, uint32_t nodeid, int loop)
 	if ((err=votequorum_getinfo(v_handle, nodeid, &info)) == CS_OK) {
 		printf("Node votes:       %d\n", info.node_votes);
 		printf("Node state:       %s\n", decode_state(info.state));
+		if (info.state != NODESTATE_MEMBER) {
+			return err;
+		}
 		printf("Expected votes:   %d\n", info.node_expected_votes);
 		printf("Highest expected: %d\n", info.highest_expected);
 		printf("Total votes:      %d\n", info.total_votes);
@@ -399,7 +405,7 @@ static int display_quorum_data(int is_quorate, uint32_t nodeid, int loop)
 		}
 		printf("\n");
 	} else {
-		fprintf(stderr, "votequorum_getinfo FAILED: %d\n", err);
+		fprintf(stderr, "Unable to get node %u info: %s\n", nodeid, cs_strerror(err));
 	}
 
 	return err;
@@ -417,13 +423,13 @@ static int show_status(uint32_t nodeid, nodeid_format_t nodeid_format, name_form
 
 	err=quorum_getquorate(q_handle, &is_quorate);
 	if (err != CS_OK) {
-		fprintf(stderr, "quorum_getquorate FAILED: %d\n", err);
+		fprintf(stderr, "Unable to get cluster quorate status: %s\n", cs_strerror(err));
 		goto quorum_err;
 	}
 
 	err=quorum_trackstart(q_handle, CS_TRACK_CURRENT);
 	if (err != CS_OK) {
-		fprintf(stderr, "quorum_trackstart FAILED: %d\n", err);
+		fprintf(stderr, "Unable to start quorum status tracking: %s\n", cs_strerror(err));
 		goto quorum_err;
 	}
 
@@ -431,12 +437,12 @@ static int show_status(uint32_t nodeid, nodeid_format_t nodeid_format, name_form
 	while (g_called == 0 && err == CS_OK) {
 		err = quorum_dispatch(q_handle, CS_DISPATCH_ONE);
 		if (err != CS_OK) {
-			fprintf(stderr, "quorum_dispatch FAILED: %d\n", err);
+			fprintf(stderr, "Unable to dispatch quorum status: %s\n", cs_strerror(err));
 		}
 	}
 
 	if (quorum_trackstop(q_handle) != CS_OK) {
-		fprintf(stderr, "quorum_trackstop FAILED: %d\n", err);
+		fprintf(stderr, "Unable to stop quorum status tracking: %s\n", cs_strerror(err));
 	}
 
 quorum_err:
@@ -464,7 +470,7 @@ static int monitor_status(nodeid_format_t nodeid_format, name_format_t name_form
 
 	err=quorum_trackstart(q_handle, CS_TRACK_CHANGES);
 	if (err != CS_OK) {
-		fprintf(stderr, "quorum_trackstart FAILED: %d\n", err);
+		fprintf(stderr, "Unable to start quorum status tracking: %s\n", cs_strerror(err));
 		goto quorum_err;
 	}
 
@@ -473,7 +479,7 @@ static int monitor_status(nodeid_format_t nodeid_format, name_format_t name_form
 
 		err = quorum_dispatch(q_handle, CS_DISPATCH_ONE);
 		if (err != CS_OK) {
-			fprintf(stderr, "quorum_dispatch FAILED: %d\n", err);
+			fprintf(stderr, "Unable to dispatch quorum status: %s\n", cs_strerror(err));
 			goto quorum_err;
 		}
 		time(&t);
@@ -483,7 +489,7 @@ static int monitor_status(nodeid_format_t nodeid_format, name_format_t name_form
 		printf("\n");
 		loop = 1;
 		if (err != CS_OK) {
-			fprintf(stderr, "display_quorum_data FAILED: %d\n", err);
+			fprintf(stderr, "Unable to display quorum data: %s\n", cs_strerror(err));
 			goto quorum_err;
 		}
 	}
@@ -499,7 +505,7 @@ static int show_nodes(nodeid_format_t nodeid_format, name_format_t name_format)
 
 	err = quorum_trackstart(q_handle, CS_TRACK_CURRENT);
 	if (err != CS_OK) {
-		fprintf(stderr, "quorum_trackstart FAILED: %d\n", err);
+		fprintf(stderr, "Unable to start quorum status tracking: %s\n", cs_strerror(err));
 		goto err_exit;
 	}
 
@@ -507,7 +513,7 @@ static int show_nodes(nodeid_format_t nodeid_format, name_format_t name_format)
 	while (g_called == 0) {
 		err = quorum_dispatch(q_handle, CS_DISPATCH_ONE);
 		if (err != CS_OK) {
-			fprintf(stderr, "quorum_dispatch FAILED: %d\n", err);
+			fprintf(stderr, "Unable to dispatch quorum status: %s\n", cs_strerror(err));
 			goto err_exit;
 		}
 	}
@@ -527,13 +533,13 @@ static int unregister_qdevice(void)
 
 	err = votequorum_qdevice_getinfo(v_handle, our_nodeid, &qinfo);
 	if (err != CS_OK) {
-		fprintf(stderr, "votequorum_qdevice_getinfo FAILED: %d\n", err);
+		fprintf(stderr, "Unable to get quorum device info: %s\n", cs_strerror(err));
 		return -1;
 	}
 
 	err = votequorum_qdevice_unregister(v_handle, qinfo.name);
 	if (err != CS_OK) {
-		fprintf(stderr, "votequorum_qdevice_unregister FAILED: %d\n", err);
+		fprintf(stderr, "Unable to unregister quorum device: %s\n", cs_strerror(err));
 		return -1;
 	}
 	return 0;
@@ -631,6 +637,7 @@ int main (int argc, char *argv[]) {
 
 	while ( (opt = getopt(argc, argv, options)) != -1 ) {
 		switch (opt) {
+#ifdef EXPERIMENTAL_QUORUM_DEVICE_API
 		case 'f':
 			if (using_votequorum() > 0) {
 				command_opt = CMD_UNREGISTER_QDEVICE;
@@ -639,6 +646,7 @@ int main (int argc, char *argv[]) {
 				exit(2);
 			}
 			break;
+#endif
 		case 's':
 			command_opt = CMD_SHOWSTATUS;
 			break;
-- 
1.7.7.6

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss


[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux