Jelajahi Sumber

quorumtool: improve display of status data

always display membership data from the local node

display when a node is unknown to the local node instead of an error
from IPC.

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
Fabio M. Di Nitto 14 tahun lalu
induk
melakukan
e996e36083
1 mengubah file dengan 12 tambahan dan 3 penghapusan
  1. 12 3
      tools/corosync-quorumtool.c

+ 12 - 3
tools/corosync-quorumtool.c

@@ -409,13 +409,20 @@ static int display_quorum_data(int is_quorate, uint32_t nodeid,
 		return CS_OK;
 		return CS_OK;
 	}
 	}
 
 
-	if ((err=votequorum_getinfo(v_handle, nodeid, &info)) == CS_OK) {
+	err=votequorum_getinfo(v_handle, nodeid, &info);
+	if ((err == CS_OK) || (err == CS_ERR_NOT_EXIST)) {
 		printf("\nVotequorum information\n");
 		printf("\nVotequorum information\n");
 		printf("----------------------\n");
 		printf("----------------------\n");
 		printf("Node ID:          %u\n", nodeid);
 		printf("Node ID:          %u\n", nodeid);
-		printf("Node state:       %s\n", decode_state(info.node_state));
+		printf("Node state:       ");
+		if (err == CS_ERR_NOT_EXIST) {
+			printf("Unknown\n");
+			err = CS_OK;
+			goto out;
+		}
+		printf("%s\n", decode_state(info.node_state));
 		if (info.node_state != NODESTATE_MEMBER) {
 		if (info.node_state != NODESTATE_MEMBER) {
-			return err;
+			goto out;
 		}
 		}
 		printf("Node votes:       %d\n", info.node_votes);
 		printf("Node votes:       %d\n", info.node_votes);
 		printf("Expected votes:   %d\n", info.node_expected_votes);
 		printf("Expected votes:   %d\n", info.node_expected_votes);
@@ -440,6 +447,8 @@ static int display_quorum_data(int is_quorate, uint32_t nodeid,
 		fprintf(stderr, "Unable to get node %u info: %s\n", nodeid, cs_strerror(err));
 		fprintf(stderr, "Unable to get node %u info: %s\n", nodeid, cs_strerror(err));
 	}
 	}
 
 
+out:
+
 	display_nodes_data(nodeid, nodeid_format, name_format);
 	display_nodes_data(nodeid, nodeid_format, name_format);
 
 
 	return err;
 	return err;