talloc_free(tmp_ctx);
}
-/* Read some IPs from stdin, calculate the sume of the squares of the
+/* Read some IPs from stdin, calculate the sum of the squares of the
* IP distances between the first and the rest, and print it. */
static void ctdb_test_lcp2_imbalance(int pnn)
{
*/
static void ctdb_test_init(const char nodestates[],
struct ctdb_context **ctdb,
- struct public_ip_list **all_ips,
struct ipalloc_state **ipalloc_state,
- struct ctdb_ipflags **ipflags,
bool read_ips_for_multiple_nodes)
{
struct ctdb_public_ip_list_old **known;
struct ctdb_node_map_old *nodemap;
uint32_t *tval_noiptakeover;
uint32_t *tval_noiptakeoverondisabled;
+ struct public_ip_list *all_ips;
*ctdb = talloc_zero(NULL, struct ctdb_context);
nodemap->num = numnodes;
if (!read_ips_for_multiple_nodes) {
- read_ctdb_public_ip_info(*ctdb, numnodes, all_ips,
- &known, &avail);
+ read_ctdb_public_ip_info(*ctdb, numnodes,
+ &all_ips, &known, &avail);
}
(*ctdb)->nodes = talloc_array(*ctdb, struct ctdb_node *, numnodes); // FIXME: bogus size, overkill
if (read_ips_for_multiple_nodes) {
read_ctdb_public_ip_info(*ctdb, numnodes,
- all_ips, &known, &avail);
+ &all_ips, &known, &avail);
}
(*ctdb)->nodes[i] = talloc(*ctdb, struct ctdb_node);
(*ipalloc_state)->known_public_ips[i] = known[i];
}
- *ipflags = set_ipflags_internal(*ctdb, nodemap,
- tval_noiptakeover,
- tval_noiptakeoverondisabled);
+ set_ipflags_internal(*ipalloc_state, nodemap,
+ tval_noiptakeover,
+ tval_noiptakeoverondisabled);
+
+ (*ipalloc_state)->all_ips = create_merged_ip_list(*ctdb,
+ *ipalloc_state);
+
+ (*ipalloc_state)->force_rebalance_nodes = NULL;
}
/* IP layout is read from stdin. */
static void ctdb_test_lcp2_allocate_unassigned(const char nodestates[])
{
struct ctdb_context *ctdb;
- struct public_ip_list *all_ips;
struct ipalloc_state *ipalloc_state;
- struct ctdb_ipflags *ipflags;
uint32_t *lcp2_imbalances;
bool *newly_healthy;
- ctdb_test_init(nodestates, &ctdb, &all_ips, &ipalloc_state, &ipflags,
- false);
+ ctdb_test_init(nodestates, &ctdb, &ipalloc_state, false);
- lcp2_init(ipalloc_state, ipflags, all_ips, NULL,
- &lcp2_imbalances, &newly_healthy);
+ lcp2_init(ipalloc_state, &lcp2_imbalances, &newly_healthy);
- lcp2_allocate_unassigned(ipalloc_state, ipflags,
- all_ips, lcp2_imbalances);
+ lcp2_allocate_unassigned(ipalloc_state, lcp2_imbalances);
- print_ctdb_public_ip_list(all_ips);
+ print_ctdb_public_ip_list(ipalloc_state->all_ips);
talloc_free(ctdb);
}
static void ctdb_test_lcp2_failback(const char nodestates[])
{
struct ctdb_context *ctdb;
- struct public_ip_list *all_ips;
struct ipalloc_state *ipalloc_state;
- struct ctdb_ipflags *ipflags;
uint32_t *lcp2_imbalances;
bool *newly_healthy;
- ctdb_test_init(nodestates, &ctdb, &all_ips, &ipalloc_state, &ipflags,
- false);
+ ctdb_test_init(nodestates, &ctdb, &ipalloc_state, false);
- lcp2_init(ipalloc_state, ipflags, all_ips, NULL,
- &lcp2_imbalances, &newly_healthy);
+ lcp2_init(ipalloc_state, &lcp2_imbalances, &newly_healthy);
- lcp2_failback(ipalloc_state, ipflags,
- all_ips, lcp2_imbalances, newly_healthy);
+ lcp2_failback(ipalloc_state, lcp2_imbalances, newly_healthy);
- print_ctdb_public_ip_list(all_ips);
+ print_ctdb_public_ip_list(ipalloc_state->all_ips);
talloc_free(ctdb);
}
static void ctdb_test_lcp2_failback_loop(const char nodestates[])
{
struct ctdb_context *ctdb;
- struct public_ip_list *all_ips;
struct ipalloc_state *ipalloc_state;
- struct ctdb_ipflags *ipflags;
uint32_t *lcp2_imbalances;
bool *newly_healthy;
- ctdb_test_init(nodestates, &ctdb, &all_ips, &ipalloc_state, &ipflags,
- false);
+ ctdb_test_init(nodestates, &ctdb, &ipalloc_state, false);
- lcp2_init(ipalloc_state, ipflags, all_ips, NULL,
- &lcp2_imbalances, &newly_healthy);
+ lcp2_init(ipalloc_state, &lcp2_imbalances, &newly_healthy);
- lcp2_failback(ipalloc_state, ipflags,
- all_ips, lcp2_imbalances, newly_healthy);
+ lcp2_failback(ipalloc_state, lcp2_imbalances, newly_healthy);
- print_ctdb_public_ip_list(all_ips);
+ print_ctdb_public_ip_list(ipalloc_state->all_ips);
talloc_free(ctdb);
}
bool read_ips_for_multiple_nodes)
{
struct ctdb_context *ctdb;
- struct public_ip_list *all_ips;
struct ipalloc_state *ipalloc_state;
- struct ctdb_ipflags *ipflags;
- ctdb_test_init(nodestates, &ctdb, &all_ips, &ipalloc_state, &ipflags,
+ ctdb_test_init(nodestates, &ctdb, &ipalloc_state,
read_ips_for_multiple_nodes);
- all_ips = create_merged_ip_list(ctdb, ipalloc_state);
-
- ctdb_takeover_run_core(ipalloc_state, ipflags, all_ips, NULL);
+ ctdb_takeover_run_core(ipalloc_state);
- print_ctdb_public_ip_list(all_ips);
+ print_ctdb_public_ip_list(ipalloc_state->all_ips);
talloc_free(ctdb);
}