4 Copyright (C) Amitay Isaacs 2015
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, see <http://www.gnu.org/licenses/>.
21 #include "system/network.h"
22 #include "system/filesys.h"
28 #include "common/logging.h"
30 #include "lib/util/debug.h"
32 #include "protocol/protocol.h"
33 #include "protocol/protocol_api.h"
34 #include "client/client_private.h"
35 #include "client/client.h"
37 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
38 struct ctdb_client_context *client,
39 int destnode, struct ctdb_public_ip *pubip)
41 struct ctdb_req_message message;
44 message.srvid = CTDB_SRVID_RECD_UPDATE_IP;
45 message.data.pubip = pubip;
47 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
50 ("Message RECD_UPDATE_IP failed to node %u\n",
57 int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
58 struct ctdb_client_context *client,
59 int destnode, struct ctdb_srvid_message *msg)
61 struct ctdb_req_message message;
64 message.srvid = CTDB_SRVID_MEM_DUMP;
65 message.data.msg = msg;
67 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
70 ("Message MEM_DUMP failed to node %u\n", destnode));
76 int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
77 struct ctdb_client_context *client,
80 struct ctdb_req_message message;
83 message.srvid = CTDB_SRVID_RELOAD_NODES;
85 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
88 ("Message RELOAD_NODES failed to node %u\n", destnode));
94 int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
95 struct ctdb_client_context *client,
96 int destnode, struct ctdb_srvid_message *msg)
98 struct ctdb_req_message message;
101 message.srvid = CTDB_SRVID_TAKEOVER_RUN;
102 message.data.msg = msg;
104 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
107 ("Message TAKEOVER_RUN failed to node %u\n", destnode));
113 int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
114 struct ctdb_client_context *client,
115 int destnode, uint32_t pnn)
117 struct ctdb_req_message message;
120 message.srvid = CTDB_SRVID_REBALANCE_NODE;
121 message.data.pnn = pnn;
123 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
126 ("Message REBALANCE_NODE failed to node %u\n",
133 int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
134 struct tevent_context *ev,
135 struct ctdb_client_context *client,
137 struct ctdb_disable_message *disable)
139 struct ctdb_req_message message;
142 message.srvid = CTDB_SRVID_DISABLE_TAKEOVER_RUNS;
143 message.data.disable = disable;
145 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
148 ("Message DISABLE_TAKEOVER_RUNS failed to node %u\n",
155 int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
156 struct tevent_context *ev,
157 struct ctdb_client_context *client,
159 struct ctdb_disable_message *disable)
161 struct ctdb_req_message message;
164 message.srvid = CTDB_SRVID_DISABLE_RECOVERIES;
165 message.data.disable = disable;
167 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
170 ("Message DISABLE_RECOVERIES failed to node %u\n",
177 int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
178 struct tevent_context *ev,
179 struct ctdb_client_context *client,
180 int destnode, uint32_t timeout)
182 struct ctdb_req_message message;
185 message.srvid = CTDB_SRVID_DISABLE_IP_CHECK;
186 message.data.timeout = timeout;
188 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
191 ("Message DISABLE_IP_CHECK failed to node %u\n",