ctdb-tests: Add ctdb_ctrl_setrecmode() stub
authorMartin Schwenke <martin@meltin.net>
Mon, 9 Feb 2015 10:55:59 +0000 (21:55 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 16 Mar 2015 05:41:06 +0000 (06:41 +0100)
If recovery mode is set to active then it updates the generation and
immediately sets recovery mode back to normal.

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

index 5a067ab749130d1c2bfcf7c2137fe5c52654433a..eb3fdb6cdbedaf45a17c8e8af97326ac49fead6f 100644 (file)
@@ -41,6 +41,8 @@ int main_foobar(int argc, const char **argv);
        ctdb_ctrl_getpnn_stub(ctdb, timelimit, pnn)
 #define ctdb_ctrl_getrecmode(ctdb, tmp_ctx, timelimit, pnn, recmode) \
        ctdb_ctrl_getrecmode_stub(ctdb, tmp_ctx, timelimit, pnn, recmode)
+#define ctdb_ctrl_setrecmode(ctdb, timeout, destnode, recmode) \
+       ctdb_ctrl_setrecmode_stub(ctdb, timeout, destnode, recmode)
 #define ctdb_ctrl_getrecmaster(ctdb, tmp_ctx, timelimit, pnn, recmaster) \
        ctdb_ctrl_getrecmaster_stub(ctdb, tmp_ctx, timelimit, pnn, recmaster)
 #define ctdb_ctrl_getvnnmap(ctdb, timelimit, pnn, tmp_ctx, vnnmap) \
@@ -73,6 +75,7 @@ struct tevent_context *tevent_context_init(TALLOC_CTX *mem_ctx);
 #undef ctdb_ctrl_get_ifaces 
 #undef ctdb_ctrl_getpnn
 #undef ctdb_ctrl_getrecmode
+#undef ctdb_ctrl_setrecmode
 #undef ctdb_ctrl_getrecmaster
 #undef ctdb_ctrl_getvnnmap
 #undef ctdb_ctrl_getdebseqnum
@@ -91,6 +94,8 @@ int ctdb_ctrl_getpnn(struct ctdb_context *ctdb, struct timeval timeout,
 int ctdb_ctrl_getrecmode(struct ctdb_context *ctdb,
                         TALLOC_CTX *mem_ctx, struct timeval timeout,
                         uint32_t destnode, uint32_t *recmode);
+int ctdb_ctrl_setrecmode(struct ctdb_context *ctdb, struct timeval timeout,
+                        uint32_t destnode, uint32_t recmode);
 int ctdb_ctrl_getrecmaster(struct ctdb_context *ctdb,
                           TALLOC_CTX *mem_ctx, struct timeval timeout,
                           uint32_t destnode, uint32_t *recmaster);
index 82e82f3a4cc1ccafc7d49624432dfb723a3032a2..0c458cbcfb53256b438121b8206c8581cda91e93 100644 (file)
@@ -468,6 +468,20 @@ ctdb_ctrl_getrecmode_stub(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx,
        return 0;
 }
 
+int ctdb_ctrl_setrecmode_stub(struct ctdb_context *ctdb, struct timeval timeout,
+                             uint32_t destnode, uint32_t recmode)
+{
+       ctdb->recovery_mode = recmode;
+
+       if (ctdb->recovery_mode == CTDB_RECOVERY_ACTIVE) {
+               /* Recovery is complete! That was quick.... */
+               ctdb->recovery_mode = CTDB_RECOVERY_NORMAL;
+               ctdb->vnn_map->generation++;
+       }
+
+       return 0;
+}
+
 int
 ctdb_ctrl_getrecmaster_stub(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx,
                            struct timeval timeout, uint32_t destnode,