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 "lib/util/debug.h"
29 #include "ctdb_logging.h"
31 #include "protocol/protocol.h"
32 #include "protocol/protocol_api.h"
33 #include "client/client_private.h"
34 #include "client/client.h"
36 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
37 struct ctdb_client_context *client,
38 int destnode, struct ctdb_public_ip *pubip)
40 struct ctdb_req_message message;
43 message.srvid = CTDB_SRVID_RECD_UPDATE_IP;
44 message.data.pubip = pubip;
46 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
49 ("Message RECD_UPDATE_IP failed to node %u\n",
56 int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
57 struct ctdb_client_context *client,
58 int destnode, struct ctdb_srvid_message *msg)
60 struct ctdb_req_message message;
63 message.srvid = CTDB_SRVID_MEM_DUMP;
64 message.data.msg = msg;
66 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
69 ("Message MEM_DUMP failed to node %u\n", destnode));
75 int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
76 struct ctdb_client_context *client,
79 struct ctdb_req_message message;
82 message.srvid = CTDB_SRVID_RELOAD_NODES;
84 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
87 ("Message RELOAD_NODES failed to node %u\n", destnode));
93 int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
94 struct ctdb_client_context *client,
95 int destnode, struct ctdb_srvid_message *msg)
97 struct ctdb_req_message message;
100 message.srvid = CTDB_SRVID_TAKEOVER_RUN;
101 message.data.msg = msg;
103 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
106 ("Message TAKEOVER_RUN failed to node %u\n", destnode));
112 int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
113 struct ctdb_client_context *client,
114 int destnode, uint32_t pnn)
116 struct ctdb_req_message message;
119 message.srvid = CTDB_SRVID_REBALANCE_NODE;
120 message.data.pnn = pnn;
122 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
125 ("Message REBALANCE_NODE failed to node %u\n",
132 int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
133 struct tevent_context *ev,
134 struct ctdb_client_context *client,
136 struct ctdb_disable_message *disable)
138 struct ctdb_req_message message;
141 message.srvid = CTDB_SRVID_DISABLE_TAKEOVER_RUNS;
142 message.data.disable = disable;
144 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
147 ("Message DISABLE_TAKEOVER_RUNS failed to node %u\n",
154 int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
155 struct tevent_context *ev,
156 struct ctdb_client_context *client,
158 struct ctdb_disable_message *disable)
160 struct ctdb_req_message message;
163 message.srvid = CTDB_SRVID_DISABLE_RECOVERIES;
164 message.data.disable = disable;
166 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
169 ("Message DISABLE_RECOVERIES failed to node %u\n",
176 int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
177 struct tevent_context *ev,
178 struct ctdb_client_context *client,
179 int destnode, uint32_t timeout)
181 struct ctdb_req_message message;
184 message.srvid = CTDB_SRVID_DISABLE_IP_CHECK;
185 message.data.timeout = timeout;
187 ret = ctdb_client_message(mem_ctx, ev, client, destnode, &message);
190 ("Message DISABLE_IP_CHECK failed to node %u\n",