ctdb-ipalloc: Fold force_rebalance_candidates into IP allocation state
[obnox/samba/samba-obnox.git] / ctdb / tests / src / ctdb_takeover_tests.c
index 1dace90a501118ae1a832eb60d0180f1b264fa43..49ef2e823f11097602a306c14503ae3b49c644d7 100644 (file)
@@ -336,7 +336,7 @@ static void ctdb_test_ip_distance_2_sum(const char ip[], int pnn)
        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)
 {
@@ -427,9 +427,7 @@ static enum ctdb_runstate *get_runstate(TALLOC_CTX *tmp_ctx,
  */
 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;
@@ -440,6 +438,7 @@ static void ctdb_test_init(const char nodestates[],
        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);
 
@@ -491,8 +490,8 @@ static void ctdb_test_init(const char nodestates[],
        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
@@ -506,7 +505,7 @@ static void ctdb_test_init(const char nodestates[],
 
                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);
@@ -517,32 +516,32 @@ static void ctdb_test_init(const char nodestates[],
                (*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);
 }
@@ -551,23 +550,18 @@ static void ctdb_test_lcp2_allocate_unassigned(const char nodestates[])
 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);
 }
@@ -576,23 +570,18 @@ static void ctdb_test_lcp2_failback(const char nodestates[])
 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);
 }
@@ -604,18 +593,14 @@ static void ctdb_test_ctdb_takeover_run_core(const char nodestates[],
                                             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);
 }