]> git.proxmox.com Git - mirror_corosync.git/commitdiff
quorumtool: improve display of status data
authorFabio M. Di Nitto <fdinitto@redhat.com>
Mon, 5 Mar 2012 12:12:55 +0000 (13:12 +0100)
committerFabio M. Di Nitto <fdinitto@redhat.com>
Mon, 5 Mar 2012 13:30:17 +0000 (14:30 +0100)
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>
tools/corosync-quorumtool.c

index c391d812266e314dc50ab0679ff1c19f25cb0622..c9e8de0dc593f55aa7156ed608b9c16d1da4bbaf 100644 (file)
@@ -409,13 +409,20 @@ static int display_quorum_data(int is_quorate, uint32_t nodeid,
                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("----------------------\n");
                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) {
-                       return err;
+                       goto out;
                }
                printf("Node votes:       %d\n", info.node_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));
        }
 
+out:
+
        display_nodes_data(nodeid, nodeid_format, name_format);
 
        return err;