1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

ctdb-tools: "ctdb nodestatus" should only display header for "all"

The "Number of nodes:" header should only be displayed when "all" is
specified.  This is how the command behaved in Samba <= 4.4.

Printing the number of nodes is not helpful and is rather confusing in
the default case where only the status of the current node is printed.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12802

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
Martin Schwenke 2017-05-24 20:27:58 +10:00 committed by Martin Schwenke
parent a600d467e2
commit 1d10c8e9e6

View File

@ -802,7 +802,8 @@ static void print_nodemap_machine(TALLOC_CTX *mem_ctx,
}
static void print_nodemap(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap, uint32_t mypnn)
struct ctdb_node_map *nodemap, uint32_t mypnn,
bool print_header)
{
struct ctdb_node_and_flags *node;
int num_deleted_nodes = 0;
@ -814,11 +815,14 @@ static void print_nodemap(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
}
}
if (num_deleted_nodes == 0) {
printf("Number of nodes:%d\n", nodemap->num);
} else {
printf("Number of nodes:%d (including %d deleted nodes)\n",
nodemap->num, num_deleted_nodes);
if (print_header) {
if (num_deleted_nodes == 0) {
printf("Number of nodes:%d\n", nodemap->num);
} else {
printf("Number of nodes:%d "
"(including %d deleted nodes)\n",
nodemap->num, num_deleted_nodes);
}
}
for (i=0; i<nodemap->num; i++) {
@ -844,7 +848,7 @@ static void print_status(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
{
int i;
print_nodemap(mem_ctx, ctdb, nodemap, mypnn);
print_nodemap(mem_ctx, ctdb, nodemap, mypnn, true);
if (vnnmap->generation == INVALID_GENERATION) {
printf("Generation:INVALID\n");
@ -5651,6 +5655,7 @@ static int control_nodestatus(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
const char *nodestring = NULL;
struct ctdb_node_map *nodemap;
int ret, i;
bool print_hdr = false;
if (argc > 1) {
usage("nodestatus");
@ -5658,6 +5663,9 @@ static int control_nodestatus(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (argc == 1) {
nodestring = argv[0];
if (strcmp(nodestring, "all") == 0) {
print_hdr = true;
}
}
if (! parse_nodestring(mem_ctx, ctdb, nodestring, &nodemap)) {
@ -5667,7 +5675,7 @@ static int control_nodestatus(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (options.machinereadable) {
print_nodemap_machine(mem_ctx, ctdb, nodemap, ctdb->cmd_pnn);
} else {
print_nodemap(mem_ctx, ctdb, nodemap, ctdb->cmd_pnn);
print_nodemap(mem_ctx, ctdb, nodemap, ctdb->cmd_pnn, print_hdr);
}
ret = 0;