ctdb-protocol: Add marshalling for controls DISABLE_NODE/ENABLE_NODE
authorMartin Schwenke <martin@meltin.net>
Fri, 9 Jul 2021 02:10:12 +0000 (12:10 +1000)
committerJule Anger <janger@samba.org>
Mon, 13 Sep 2021 11:47:10 +0000 (11:47 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14784
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit 6845dca87e6ffc5e449fb78d23eb9c7a22698b80)

ctdb/protocol/protocol_api.h
ctdb/protocol/protocol_client.c
ctdb/protocol/protocol_control.c
ctdb/protocol/protocol_debug.c
ctdb/tests/UNIT/cunit/protocol_test_101.sh
ctdb/tests/src/protocol_common_ctdb.c
ctdb/tests/src/protocol_ctdb_test.c

index 7bbe33b22fe06dcd2113e5c4884208923fce875c..499d9329c5459f8066803b60eb274cd6d8d79702 100644 (file)
@@ -605,6 +605,12 @@ void ctdb_req_control_echo_data(struct ctdb_req_control *request,
                                struct ctdb_echo_data *echo_data);
 int ctdb_reply_control_echo_data(struct ctdb_reply_control *reply);
 
+void ctdb_req_control_disable_node(struct ctdb_req_control *request);
+int ctdb_reply_control_disable_node(struct ctdb_reply_control *reply);
+
+void ctdb_req_control_enable_node(struct ctdb_req_control *request);
+int ctdb_reply_control_enable_node(struct ctdb_reply_control *reply);
+
 /* From protocol/protocol_debug.c */
 
 void ctdb_packet_print(uint8_t *buf, size_t buflen, FILE *fp);
index 6d850be86df3a7888b2827aa21e9638b6e6b4af0..dcce83f02a1c6e9cb0a99aa10036e716e3967794 100644 (file)
@@ -2360,3 +2360,39 @@ int ctdb_reply_control_echo_data(struct ctdb_reply_control *reply)
 
        return reply->status;
 }
+
+/* CTDB_CONTROL_DISABLE_NODE */
+
+void ctdb_req_control_disable_node(struct ctdb_req_control *request)
+{
+       request->opcode = CTDB_CONTROL_DISABLE_NODE;
+       request->pad = 0;
+       request->srvid = 0;
+       request->client_id = 0;
+       request->flags = 0;
+
+       request->rdata.opcode = CTDB_CONTROL_DISABLE_NODE;
+}
+
+int ctdb_reply_control_disable_node(struct ctdb_reply_control *reply)
+{
+       return ctdb_reply_control_generic(reply, CTDB_CONTROL_DISABLE_NODE);
+}
+
+/* CTDB_CONTROL_ENABLE_NODE */
+
+void ctdb_req_control_enable_node(struct ctdb_req_control *request)
+{
+       request->opcode = CTDB_CONTROL_ENABLE_NODE;
+       request->pad = 0;
+       request->srvid = 0;
+       request->client_id = 0;
+       request->flags = 0;
+
+       request->rdata.opcode = CTDB_CONTROL_ENABLE_NODE;
+}
+
+int ctdb_reply_control_enable_node(struct ctdb_reply_control *reply)
+{
+       return ctdb_reply_control_generic(reply, CTDB_CONTROL_ENABLE_NODE);
+}
index fb6b0219ef74cfd7f1c08872a415824e115af69e..f64a1a90e105e15fdbb933cc341191376620a41f 100644 (file)
@@ -411,6 +411,12 @@ static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
        case CTDB_CONTROL_ECHO_DATA:
                len = ctdb_echo_data_len(cd->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 
        return len;
@@ -1385,6 +1391,12 @@ static size_t ctdb_reply_control_data_len(struct ctdb_reply_control_data *cd)
        case CTDB_CONTROL_ECHO_DATA:
                len = ctdb_echo_data_len(cd->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 
        return len;
index 694285515e1992a02f2c1c3fa5cc0645f29dfebe..d94cb548d68b66f17efe315526d114b87a6b8526 100644 (file)
@@ -243,6 +243,8 @@ static void ctdb_opcode_print(uint32_t opcode, FILE *fp)
                { CTDB_CONTROL_VACUUM_FETCH, "VACUUM_FETCH" },
                { CTDB_CONTROL_DB_VACUUM, "DB_VACUUM" },
                { CTDB_CONTROL_ECHO_DATA, "ECHO_DATA" },
+               { CTDB_CONTROL_DISABLE_NODE, "DISABLE_NODE" },
+               { CTDB_CONTROL_ENABLE_NODE, "ENABLE_NODE" },
                { MAP_END, "" },
        };
 
index 79dfabeb80111e122b2e42115d5b462db191f908..b84f208b1098bd72d53b8e53d19de930bb62e746 100755 (executable)
@@ -2,7 +2,7 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-last_control=156
+last_control=158
 
 generate_control_output ()
 {
index 67ec5c4d3a184734bf60776651bd3bba94062d14..6bbddbddc1e4eb7b142adf3efb0adae4acabf334 100644 (file)
@@ -594,6 +594,12 @@ void fill_ctdb_req_control_data(TALLOC_CTX *mem_ctx,
                assert(cd->data.echo_data != NULL);
                fill_ctdb_echo_data(mem_ctx, cd->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 }
 
@@ -984,6 +990,12 @@ void verify_ctdb_req_control_data(struct ctdb_req_control_data *cd,
        case CTDB_CONTROL_ECHO_DATA:
                verify_ctdb_echo_data(cd->data.echo_data, cd2->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 }
 
@@ -1380,6 +1392,12 @@ void fill_ctdb_reply_control_data(TALLOC_CTX *mem_ctx,
                assert(cd->data.echo_data != NULL);
                fill_ctdb_echo_data(mem_ctx, cd->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 }
 
@@ -1717,6 +1735,12 @@ void verify_ctdb_reply_control_data(struct ctdb_reply_control_data *cd,
        case CTDB_CONTROL_ECHO_DATA:
                verify_ctdb_echo_data(cd->data.echo_data, cd2->data.echo_data);
                break;
+
+       case CTDB_CONTROL_DISABLE_NODE:
+               break;
+
+       case CTDB_CONTROL_ENABLE_NODE:
+               break;
        }
 }
 
index 6a9a8a4aef6e5cd534d633bffbed77f1a9f640b0..b359e7a1280a35f5a5030d94096e34c1af69d188 100644 (file)
@@ -284,7 +284,7 @@ PROTOCOL_CTDB4_TEST(struct ctdb_req_dmaster, ctdb_req_dmaster,
 PROTOCOL_CTDB4_TEST(struct ctdb_reply_dmaster, ctdb_reply_dmaster,
                        CTDB_REPLY_DMASTER);
 
-#define NUM_CONTROLS   157
+#define NUM_CONTROLS   159
 
 PROTOCOL_CTDB2_TEST(struct ctdb_req_control_data, ctdb_req_control_data);
 PROTOCOL_CTDB2_TEST(struct ctdb_reply_control_data, ctdb_reply_control_data);