ctdb-tools-ctdb: Drop disconnected nodes when filtering by capability
authorMartin Schwenke <martin@meltin.net>
Wed, 9 Apr 2014 04:26:23 +0000 (14:26 +1000)
committerMartin Schwenke <martins@samba.org>
Mon, 14 Apr 2014 01:52:40 +0000 (03:52 +0200)
commitce8ac88b969bb8bb7a94e62bb6e86aec389be6ac
treeba9ff91aaa6790fc7f8d6d7413e2725683eedced
parentc048011cd6a9ff976a88ac05ad15e0ffc73a73ae
ctdb-tools-ctdb: Drop disconnected nodes when filtering by capability

Commit ba69742ccd822562ca2135d2466e09bf1216644b missed the point of
filtering disconnected nodes while limiting the nodemap to those in
the NAT gateway group.  It was really to avoid trying to fetch
capabilities from disconnected nodes.  This should be explicitly done
in filter_nodemap_by_capabilities(), otherwise "ctdb natgwlist" simply
fails when there is a disconnected node.

Note that the alternate solution where filter_nodemap_by_flags() is
called before filter_nodemap_by_capabilities() would not be not
correct.  Filtering on flags first can produce a "healthier" set of
nodes where none of them have the NAT gateway capability.

Also extend stub for ctdb_ctrl_getcapabilities() to fail when trying
to get capabilities from a disconnected node and add a corresponding
test to confirm that "ctdb natgwlist" is no longer broken.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/tests/src/ctdb_test_stubs.c
ctdb/tests/tool/stubby.natgwlist.008.sh [new file with mode: 0755]
ctdb/tools/ctdb.c