1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

ctdb-tools: Drop "ctdb rebalanceip"

This is undocumented and is not needed.  It was a workaround for
trying to ensure public IP addresses are properly rebalanced after
running "ctdb addip" on multiple nodes.  "ctdb reloadips" is a better
solution.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
Martin Schwenke 2016-03-08 16:20:03 +11:00 committed by Amitay Isaacs
parent 21ec67e2e9
commit aaa57fbcb3
3 changed files with 2 additions and 79 deletions

View File

@ -1741,7 +1741,7 @@ Server id 0:14765 exists
<!-- UNDOCUMENTED: showban stats disablemonitor enablemonitor
isnotrecmaster addtickle deltickle regsrvid unregsrvid chksrvid
getsrvids rebalanceip setdbprio getdbprio msglisten msgsend
getsrvids setdbprio getdbprio msglisten msgsend
tfetch tstore readkey writekey
checktcpport getdbseqnum ipiface
-->

View File

@ -908,7 +908,7 @@ int32_t ctdb_control_release_ip(struct ctdb_context *ctdb,
talloc_free(vnn->takeover_ctx);
vnn->takeover_ctx = NULL;
/* Some ctdb tool commands (e.g. moveip, rebalanceip) send
/* Some ctdb tool commands (e.g. moveip) send
* lazy multicast to drop an IP from any node that isn't the
* intended new node. The following causes makes ctdbd ignore
* a release for any address it doesn't host.

View File

@ -1848,82 +1848,6 @@ done:
return ret;
}
static int rebalance_ip(struct ctdb_context *ctdb, ctdb_sock_addr *addr)
{
struct ctdb_public_ip ip;
int ret;
uint32_t *nodes;
uint32_t disable_time;
TDB_DATA data;
struct ctdb_node_map_old *nodemap=NULL;
TALLOC_CTX *tmp_ctx = talloc_new(ctdb);
disable_time = 30;
data.dptr = (uint8_t*)&disable_time;
data.dsize = sizeof(disable_time);
ret = ctdb_client_send_message(ctdb, CTDB_BROADCAST_CONNECTED, CTDB_SRVID_DISABLE_IP_CHECK, data);
if (ret != 0) {
DEBUG(DEBUG_ERR,("Failed to send message to disable ipcheck\n"));
return -1;
}
ip.pnn = -1;
ip.addr = *addr;
data.dptr = (uint8_t *)&ip;
data.dsize = sizeof(ip);
ret = ctdb_ctrl_getnodemap(ctdb, TIMELIMIT(), options.pnn, tmp_ctx, &nodemap);
if (ret != 0) {
DEBUG(DEBUG_ERR, ("Unable to get nodemap from node %u\n", options.pnn));
talloc_free(tmp_ctx);
return ret;
}
nodes = list_of_active_nodes(ctdb, nodemap, tmp_ctx, true);
ret = ctdb_client_async_control(ctdb, CTDB_CONTROL_RELEASE_IP,
nodes, 0,
LONGTIMELIMIT(),
false, data,
NULL, NULL,
NULL);
if (ret != 0) {
DEBUG(DEBUG_ERR,("Failed to release IP on nodes\n"));
talloc_free(tmp_ctx);
return -1;
}
talloc_free(tmp_ctx);
return 0;
}
/*
release an ip form all nodes and have it re-assigned by recd
*/
static int control_rebalanceip(struct ctdb_context *ctdb, int argc, const char **argv)
{
ctdb_sock_addr addr;
assert_single_node_only();
if (argc < 1) {
usage();
return -1;
}
if (parse_ip(argv[0], NULL, 0, &addr) == 0) {
DEBUG(DEBUG_ERR,("Wrongly formed ip address '%s'\n", argv[0]));
return -1;
}
if (rebalance_ip(ctdb, &addr) != 0) {
DEBUG(DEBUG_ERR,("Error when trying to reassign ip\n"));
return -1;
}
return 0;
}
static int getips_store_callback(void *param, void *data)
{
struct ctdb_public_ip *node_ip = (struct ctdb_public_ip *)data;
@ -6365,7 +6289,6 @@ static const struct {
{ "listnodes", control_listnodes, false, true, "list all nodes in the cluster"},
{ "reloadnodes", control_reload_nodes_file, false, false, "reload the nodes file and restart the transport on all nodes"},
{ "moveip", control_moveip, false, false, "move/failover an ip address to another node", "<ip> <node>"},
{ "rebalanceip", control_rebalanceip, false, false, "release an ip from the node and let recd rebalance it", "<ip>"},
{ "addip", control_addip, true, false, "add a ip address to a node", "<ip/mask> <iface>"},
{ "delip", control_delip, false, false, "delete an ip address from a node", "<ip>"},
{ "eventscript", control_eventscript, true, false, "run the eventscript with the given parameters on a node", "<arguments>"},