From b993771ab0c18802926ebf272fdcf23126532d76 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Sat, 3 Dec 2016 17:11:25 +1100 Subject: [PATCH] ctdb-tests: Add public IP state to fake_ctdbd Read it via a PUBLICIPS section. Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/tests/src/fake_ctdbd.c | 19 +++++++++++++++++++ ctdb/wscript | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ctdb/tests/src/fake_ctdbd.c b/ctdb/tests/src/fake_ctdbd.c index 34114904d7d..39bae600589 100644 --- a/ctdb/tests/src/fake_ctdbd.c +++ b/ctdb/tests/src/fake_ctdbd.c @@ -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 { diff --git a/ctdb/wscript b/ctdb/wscript index e9b0d750e9f..6bc9bfd8339 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -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}') -- 2.34.1