ctdb-tests: Add public IP state to fake_ctdbd
authorMartin Schwenke <martin@meltin.net>
Sat, 3 Dec 2016 06:11:25 +0000 (17:11 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 19 Dec 2016 03:07:07 +0000 (04:07 +0100)
Read it via a PUBLICIPS section.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/tests/src/fake_ctdbd.c
ctdb/wscript

index 34114904d7d8d73357d5e03bcce6ca1381d8afc0..39bae6005895c6f0e0c0a756f1f0212b4e14bc8b 100644 (file)
@@ -40,6 +40,8 @@
 #include "common/logging.h"
 #include "common/tunable.h"
 
+#include "ipalloc_read_known_ips.h"
+
 
 #define CTDB_PORT 4379
 
@@ -114,6 +116,7 @@ struct ctdbd_context {
        struct ctdb_tunable_list tun_list;
        int monitoring_mode;
        char *reclock;
+       struct ctdb_public_ip_list *known_ips;
 };
 
 /*
@@ -704,6 +707,19 @@ static struct database *database_find(struct database_map *map,
        return NULL;
 }
 
+static bool public_ips_parse(struct ctdbd_context *ctdb,
+                            uint32_t numnodes)
+{
+       if (numnodes == 0) {
+               D_ERR("Must initialise nodemap before public IPs\n");
+               return false;
+       }
+
+       ctdb->known_ips = ipalloc_read_known_ips(ctdb, numnodes, false);
+
+       return (ctdb->known_ips != NULL);
+}
+
 /*
  * CTDB context setup
  */
@@ -769,6 +785,9 @@ static struct ctdbd_context *ctdbd_setup(TALLOC_CTX *mem_ctx)
                        status = vnnmap_parse(ctdb->vnn_map);
                } else if (strcmp(line, "DBMAP") == 0) {
                        status = dbmap_parse(ctdb->db_map);
+               } else if (strcmp(line, "PUBLICIPS") == 0) {
+                       status = public_ips_parse(ctdb,
+                                                 ctdb->node_map->num_nodes);
                } else if (strcmp(line, "RECLOCK") == 0) {
                        status = reclock_parse(ctdb);
                } else {
index e9b0d750e9febe45642f908d189f27b33f99b2ba..6bc9bfd8339da31104187da7e50cbf05780bc1e4 100644 (file)
@@ -808,7 +808,8 @@ def build(bld):
                      install_path='${CTDB_TEST_LIBEXECDIR}')
 
     bld.SAMBA_BINARY('fake_ctdbd',
-                     source='tests/src/fake_ctdbd.c',
+                     source='''tests/src/fake_ctdbd.c
+                               tests/src/ipalloc_read_known_ips.c''',
                      deps='''ctdb-util ctdb-protocol ctdb-system
                              samba-util tevent-util LIBASYNC_REQ popt''',
                      install_path='${CTDB_TEST_LIBEXECDIR}')