ctdb-scripts: Drop CTDB_NOTIFY_SCRIPT configuration option
[kai/samba-autobuild/.git] / ctdb / protocol / protocol_client.c
index 14f3accf5ce82a5b09025ca711c64b5922b18ecd..a18af08e21a5bf74c8fe42066e051ebf980f2541 100644 (file)
@@ -222,14 +222,14 @@ void ctdb_req_control_get_debug(struct ctdb_req_control *request)
 }
 
 int ctdb_reply_control_get_debug(struct ctdb_reply_control *reply,
-                                uint32_t *loglevel)
+                                int *loglevel)
 {
        if (reply->rdata.opcode != CTDB_CONTROL_GET_DEBUG) {
                return EPROTO;
        }
 
        if (reply->status == 0) {
-               *loglevel = reply->rdata.data.loglevel;
+               *loglevel = (int)reply->rdata.data.loglevel;
        }
        return reply->status;
 }
@@ -237,7 +237,7 @@ int ctdb_reply_control_get_debug(struct ctdb_reply_control *reply,
 /* CTDB_CONTROL_SET_DEBUG */
 
 void ctdb_req_control_set_debug(struct ctdb_req_control *request,
-                               uint32_t loglevel)
+                               int loglevel)
 {
        request->opcode = CTDB_CONTROL_SET_DEBUG;
        request->pad = 0;
@@ -246,7 +246,7 @@ void ctdb_req_control_set_debug(struct ctdb_req_control *request,
        request->flags = 0;
 
        request->rdata.opcode = CTDB_CONTROL_SET_DEBUG;
-       request->rdata.data.loglevel = loglevel;
+       request->rdata.data.loglevel = (uint32_t)loglevel;
 }
 
 int ctdb_reply_control_set_debug(struct ctdb_reply_control *reply)
@@ -399,11 +399,11 @@ int ctdb_reply_control_statistics_reset(struct ctdb_reply_control *reply)
 /* CTDB_CONTROL_DB_ATTACH */
 
 void ctdb_req_control_db_attach(struct ctdb_req_control *request,
-                               const char *db_name, uint32_t tdb_flags)
+                               const char *db_name)
 {
        request->opcode = CTDB_CONTROL_DB_ATTACH;
        request->pad = 0;
-       request->srvid = tdb_flags;
+       request->srvid = 0;
        request->client_id = 0;
        request->flags = 0;
 
@@ -720,31 +720,6 @@ int ctdb_reply_control_shutdown(struct ctdb_reply_control *reply)
 
 /* CTDB_CONTROL_GET_MONMODE */
 
-void ctdb_req_control_get_monmode(struct ctdb_req_control *request)
-{
-       request->opcode = CTDB_CONTROL_GET_MONMODE;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_GET_MONMODE;
-}
-
-int ctdb_reply_control_get_monmode(struct ctdb_reply_control *reply,
-                                  int *mon_mode)
-{
-       if (reply->rdata.opcode != CTDB_CONTROL_GET_MONMODE) {
-               return EPROTO;
-       }
-
-       if (reply->status >= 0) {
-               *mon_mode = reply->status;
-               reply->status = 0;
-       }
-       return reply->status;
-}
-
 /* CTDB_CONTROL_TCP_CLIENT */
 
 void ctdb_req_control_tcp_client(struct ctdb_req_control *request,
@@ -999,12 +974,11 @@ int ctdb_reply_control_set_tcp_tickle_list(struct ctdb_reply_control *reply)
 /* CTDB_CONTROL_DB_ATTACH_PERSISTENT */
 
 void ctdb_req_control_db_attach_persistent(struct ctdb_req_control *request,
-                                          const char *db_name,
-                                          uint32_t tdb_flags)
+                                          const char *db_name)
 {
        request->opcode = CTDB_CONTROL_DB_ATTACH_PERSISTENT;
        request->pad = 0;
-       request->srvid = tdb_flags;
+       request->srvid = 0;
        request->client_id = 0;
        request->flags = 0;
 
@@ -1197,41 +1171,8 @@ int ctdb_reply_control_try_delete_records(struct ctdb_reply_control *reply,
 }
 
 /* CTDB_CONTROL_ENABLE_MONITOR */
-
-void ctdb_req_control_enable_monitor(struct ctdb_req_control *request)
-{
-       request->opcode = CTDB_CONTROL_ENABLE_MONITOR;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_ENABLE_MONITOR;
-}
-
-int ctdb_reply_control_enable_monitor(struct ctdb_reply_control *reply)
-{
-       return ctdb_reply_control_generic(reply, CTDB_CONTROL_ENABLE_MONITOR);
-}
-
 /* CTDB_CONTROL_DISABLE_MONITOR */
 
-void ctdb_req_control_disable_monitor(struct ctdb_req_control *request)
-{
-       request->opcode = CTDB_CONTROL_DISABLE_MONITOR;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_DISABLE_MONITOR;
-}
-
-int ctdb_reply_control_disable_monitor(struct ctdb_reply_control *reply)
-{
-       return ctdb_reply_control_generic(reply, CTDB_CONTROL_DISABLE_MONITOR);
-}
-
 /* CTDB_CONTROL_ADD_PUBLIC_IP */
 
 void ctdb_req_control_add_public_ip(struct ctdb_req_control *request,
@@ -1272,27 +1213,6 @@ int ctdb_reply_control_del_public_ip(struct ctdb_reply_control *reply)
        return ctdb_reply_control_generic(reply, CTDB_CONTROL_DEL_PUBLIC_IP);
 }
 
-/* CTDB_CONTROL_RUN_EVENTSCRIPTS */
-
-void ctdb_req_control_run_eventscripts(struct ctdb_req_control *request,
-                                      const char *event_str)
-{
-       request->opcode = CTDB_CONTROL_RUN_EVENTSCRIPTS;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_RUN_EVENTSCRIPTS;
-       request->rdata.data.event_str = event_str;
-}
-
-int ctdb_reply_control_run_eventscripts(struct ctdb_reply_control *reply)
-{
-       return ctdb_reply_control_generic(reply,
-                                         CTDB_CONTROL_RUN_EVENTSCRIPTS);
-}
-
 /* CTDB_CONTROL_GET_CAPABILITIES */
 
 void ctdb_req_control_get_capabilities(struct ctdb_req_control *request)
@@ -1379,7 +1299,8 @@ int ctdb_reply_control_takeover_ip(struct ctdb_reply_control *reply)
 
 /* CTDB_CONTROL_GET_PUBLIC_IPS */
 
-void ctdb_req_control_get_public_ips(struct ctdb_req_control *request)
+void ctdb_req_control_get_public_ips(struct ctdb_req_control *request,
+                                    bool available_only)
 {
        request->opcode = CTDB_CONTROL_GET_PUBLIC_IPS;
        request->pad = 0;
@@ -1388,6 +1309,9 @@ void ctdb_req_control_get_public_ips(struct ctdb_req_control *request)
        request->flags = 0;
 
        request->rdata.opcode = CTDB_CONTROL_GET_PUBLIC_IPS;
+       if (available_only) {
+               request->flags = CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE;
+       }
 }
 
 int ctdb_reply_control_get_public_ips(struct ctdb_reply_control *reply,
@@ -1432,35 +1356,6 @@ int ctdb_reply_control_get_nodemap(struct ctdb_reply_control *reply,
        return reply->status;
 }
 
-/* CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS */
-
-void ctdb_req_control_get_event_script_status(struct ctdb_req_control *request,
-                                             uint32_t event)
-{
-       request->opcode = CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS;
-       request->rdata.data.event = event;
-}
-
-int ctdb_reply_control_get_event_script_status(struct ctdb_reply_control *reply,
-                                              TALLOC_CTX *mem_ctx,
-                                              struct ctdb_script_list **slist)
-{
-       if (reply->rdata.opcode != CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS) {
-               return EPROTO;
-       }
-
-       if (reply->status == 0) {
-               *slist = talloc_steal(mem_ctx, reply->rdata.data.script_list);
-       }
-       return reply->status;
-}
-
 /* CTDB_CONTROL_TRAVERSE_KILL */
 
 void ctdb_req_control_traverse_kill(struct ctdb_req_control *request,
@@ -1607,46 +1502,6 @@ int ctdb_reply_control_set_recmasterrole(struct ctdb_reply_control *reply)
                                          CTDB_CONTROL_SET_RECMASTERROLE);
 }
 
-/* CTDB_CONTROL_ENABLE_SCRIPT */
-
-void ctdb_req_control_enable_script(struct ctdb_req_control *request,
-                                   const char *script)
-{
-       request->opcode = CTDB_CONTROL_ENABLE_SCRIPT;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_ENABLE_SCRIPT;
-       request->rdata.data.script = script;
-}
-
-int ctdb_reply_control_enable_script(struct ctdb_reply_control *reply)
-{
-       return ctdb_reply_control_generic(reply, CTDB_CONTROL_ENABLE_SCRIPT);
-}
-
-/* CTDB_CONTROL_DISABLE_SCRIPT */
-
-void ctdb_req_control_disable_script(struct ctdb_req_control *request,
-                                    const char *script)
-{
-       request->opcode = CTDB_CONTROL_DISABLE_SCRIPT;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_DISABLE_SCRIPT;
-       request->rdata.data.script = script;
-}
-
-int ctdb_reply_control_disable_script(struct ctdb_reply_control *reply)
-{
-       return ctdb_reply_control_generic(reply, CTDB_CONTROL_DISABLE_SCRIPT);
-}
-
 /* CTDB_CONTROL_SET_BAN_STATE */
 
 void ctdb_req_control_set_ban_state(struct ctdb_req_control *request,
@@ -2002,33 +1857,6 @@ int ctdb_reply_control_set_db_readonly(struct ctdb_reply_control *reply)
 
 /* CTDB_CONTROL_CHECK_SRVIDS */
 
-void ctdb_req_control_check_srvids(struct ctdb_req_control *request,
-                                  struct ctdb_uint64_array *u64_array)
-{
-       request->opcode = CTDB_CONTROL_CHECK_SRVIDS;
-       request->pad = 0;
-       request->srvid = 0;
-       request->client_id = 0;
-       request->flags = 0;
-
-       request->rdata.opcode = CTDB_CONTROL_CHECK_SRVIDS;
-       request->rdata.data.u64_array = u64_array;
-}
-
-int ctdb_reply_control_check_srvids(struct ctdb_reply_control *reply,
-                                   TALLOC_CTX *mem_ctx,
-                                   struct ctdb_uint8_array **u8_array)
-{
-       if (reply->rdata.opcode != CTDB_CONTROL_CHECK_SRVIDS) {
-               return EPROTO;
-       }
-
-       if (reply->status == 0) {
-               *u8_array = talloc_steal(mem_ctx, reply->rdata.data.u8_array);
-       }
-       return reply->status;
-}
-
 /* CTDB_CONTROL_TRAVERSE_START_EXT */
 
 void ctdb_req_control_traverse_start_ext(struct ctdb_req_control *request,
@@ -2418,3 +2246,128 @@ int ctdb_reply_control_db_push_confirm(struct ctdb_reply_control *reply,
        }
        return reply->status;
 }
+
+/* CTDB_CONTROL_DB_OPEN_FLAGS */
+
+void ctdb_req_control_db_open_flags(struct ctdb_req_control *request,
+                                   uint32_t db_id)
+{
+       request->opcode = CTDB_CONTROL_DB_OPEN_FLAGS;
+       request->pad = 0;
+       request->srvid = 0;
+       request->client_id = 0;
+       request->flags = 0;
+
+       request->rdata.opcode = CTDB_CONTROL_DB_OPEN_FLAGS;
+       request->rdata.data.db_id = db_id;
+}
+
+int ctdb_reply_control_db_open_flags(struct ctdb_reply_control *reply,
+                                    int *tdb_flags)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_DB_OPEN_FLAGS) {
+               return EPROTO;
+       }
+
+       if (reply->status == 0) {
+               *tdb_flags = reply->rdata.data.tdb_flags;
+       }
+       return reply->status;
+}
+
+/* CTDB_CONTROL_DB_ATTACH_REPLICATED */
+
+void ctdb_req_control_db_attach_replicated(struct ctdb_req_control *request,
+                                          const char *db_name)
+{
+       request->opcode = CTDB_CONTROL_DB_ATTACH_REPLICATED;
+       request->pad = 0;
+       request->srvid = 0;
+       request->client_id = 0;
+       request->flags = 0;
+
+       request->rdata.opcode = CTDB_CONTROL_DB_ATTACH_REPLICATED;
+       request->rdata.data.db_name = db_name;
+}
+
+int ctdb_reply_control_db_attach_replicated(struct ctdb_reply_control *reply,
+                                           uint32_t *db_id)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_DB_ATTACH_REPLICATED) {
+               return EPROTO;
+       }
+       if (reply->status == 0) {
+               *db_id = reply->rdata.data.db_id;
+       }
+       return reply->status;
+}
+
+/* CTDB_CONTROL_CHECK_PID_SRVID */
+
+void ctdb_req_control_check_pid_srvid(struct ctdb_req_control *request,
+                                     struct ctdb_pid_srvid *pid_srvid)
+{
+       request->opcode = CTDB_CONTROL_CHECK_PID_SRVID;
+       request->pad = 0;
+       request->srvid = 0;
+       request->client_id = 0;
+       request->flags = 0;
+
+       request->rdata.opcode = CTDB_CONTROL_CHECK_PID_SRVID;
+       request->rdata.data.pid_srvid = pid_srvid;
+}
+
+int ctdb_reply_control_check_pid_srvid(struct ctdb_reply_control *reply,
+                                      int *status)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_CHECK_PID_SRVID) {
+               return EPROTO;
+       }
+
+       *status = reply->status;
+       reply->status = 0;
+
+       return reply->status;
+}
+
+/* CTDB_CONTROL_TUNNEL_REGISTER */
+
+void ctdb_req_control_tunnel_register(struct ctdb_req_control *request,
+                                     uint64_t tunnel_id)
+{
+       request->opcode = CTDB_CONTROL_TUNNEL_REGISTER;
+       request->pad = 0;
+       request->srvid = tunnel_id;
+       request->client_id = 0;
+       request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_register(struct ctdb_reply_control *reply)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_REGISTER) {
+               return EPROTO;
+       }
+
+       return reply->status;
+}
+
+/* CTDB_CONTROL_TUNNEL_DEREGISTER */
+
+void ctdb_req_control_tunnel_deregister(struct ctdb_req_control *request,
+                                       uint64_t tunnel_id)
+{
+       request->opcode = CTDB_CONTROL_TUNNEL_DEREGISTER;
+       request->pad = 0;
+       request->srvid = tunnel_id;
+       request->client_id = 0;
+       request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_deregister(struct ctdb_reply_control *reply)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_DEREGISTER) {
+               return EPROTO;
+       }
+
+       return reply->status;
+}