s3:smbd: rename has_ctdb_public_ip to has_cluster_movable_ip
[Samba.git] / ctdb / client / client_sync.h
blobdc8b67395e34871deff633981d0df4f3612dfa05
1 /*
2 CTDB client code - sync api
4 Copyright (C) Amitay Isaacs 2017
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/>.
20 #ifndef __CTDB_CLIENT_SYNC_H__
21 #define __CTDB_CLIENT_SYNC_H__
23 #include <talloc.h>
24 #include <tevent.h>
26 /* from client/client_control_sync.c */
28 int ctdb_ctrl_process_exists(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
29 struct ctdb_client_context *client,
30 int destnode, struct timeval timeout,
31 pid_t pid, int *status);
33 int ctdb_ctrl_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
34 struct ctdb_client_context *client,
35 int destnode, struct timeval timeout,
36 struct ctdb_statistics **stats);
38 int ctdb_ctrl_ping(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
39 struct ctdb_client_context *client,
40 int destnode, struct timeval timeout,
41 int *num_clients);
43 int ctdb_ctrl_getdbpath(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
44 struct ctdb_client_context *client,
45 int destnode, struct timeval timeout,
46 uint32_t db_id, const char **db_path);
48 int ctdb_ctrl_getvnnmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
49 struct ctdb_client_context *client,
50 int destnode, struct timeval timeout,
51 struct ctdb_vnn_map **vnnmap);
53 int ctdb_ctrl_getdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
54 struct ctdb_client_context *client,
55 int destnode, struct timeval timeout,
56 int *loglevel);
58 int ctdb_ctrl_setdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
59 struct ctdb_client_context *client,
60 int destnode, struct timeval timeout,
61 int loglevel);
63 int ctdb_ctrl_get_dbmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
64 struct ctdb_client_context *client,
65 int destnode, struct timeval timeout,
66 struct ctdb_dbid_map **dbmap);
68 int ctdb_ctrl_get_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
69 struct ctdb_client_context *client,
70 int destnode, struct timeval timeout,
71 int *recmode);
73 int ctdb_ctrl_set_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
74 struct ctdb_client_context *client,
75 int destnode, struct timeval timeout,
76 int recmode);
78 int ctdb_ctrl_statistics_reset(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
79 struct ctdb_client_context *client,
80 int destnode, struct timeval timeout);
82 int ctdb_ctrl_db_attach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
83 struct ctdb_client_context *client,
84 int destnode, struct timeval timeout,
85 const char *db_name, uint32_t *db_id);
87 int ctdb_ctrl_traverse_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
88 struct ctdb_client_context *client,
89 int destnode, struct timeval timeout,
90 struct ctdb_traverse_start *traverse);
92 int ctdb_ctrl_register_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
93 struct ctdb_client_context *client,
94 int destnode, struct timeval timeout,
95 uint64_t srvid);
97 int ctdb_ctrl_deregister_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
98 struct ctdb_client_context *client,
99 int destnode, struct timeval timeout,
100 uint64_t srvid);
102 int ctdb_ctrl_get_dbname(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
103 struct ctdb_client_context *client,
104 int destnode, struct timeval timeout,
105 uint32_t db_id, const char **db_name);
107 int ctdb_ctrl_enable_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
108 struct ctdb_client_context *client,
109 int destnode, struct timeval timeout,
110 uint32_t db_id);
112 int ctdb_ctrl_update_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
113 struct ctdb_client_context *client,
114 int destnode, struct timeval timeout,
115 uint32_t db_id);
117 int ctdb_ctrl_dump_memory(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
118 struct ctdb_client_context *client,
119 int destnode, struct timeval timeout,
120 const char **mem_str);
122 int ctdb_ctrl_get_pid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
123 struct ctdb_client_context *client,
124 int destnode, struct timeval timeout,
125 pid_t *pid);
127 int ctdb_ctrl_get_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
128 struct ctdb_client_context *client,
129 int destnode, struct timeval timeout,
130 uint32_t *recmaster);
132 int ctdb_ctrl_set_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
133 struct ctdb_client_context *client,
134 int destnode, struct timeval timeout,
135 uint32_t recmaster);
137 int ctdb_ctrl_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
138 struct ctdb_client_context *client,
139 int destnode, struct timeval timeout,
140 int priority);
142 int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
143 struct ctdb_client_context *client,
144 int destnode, struct timeval timeout,
145 uint32_t *pnn);
147 int ctdb_ctrl_shutdown(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
148 struct ctdb_client_context *client,
149 int destnode, struct timeval timeout);
151 int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
152 struct ctdb_client_context *client,
153 int destnode, struct timeval timeout,
154 struct ctdb_connection *conn);
156 int ctdb_ctrl_tcp_remove(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
157 struct ctdb_client_context *client,
158 int destnode, struct timeval timeout,
159 struct ctdb_connection *conn);
161 int ctdb_ctrl_set_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
162 struct ctdb_client_context *client,
163 int destnode, struct timeval timeout,
164 struct ctdb_tunable *tunable);
166 int ctdb_ctrl_get_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
167 struct ctdb_client_context *client,
168 int destnode, struct timeval timeout,
169 const char *var, uint32_t *value);
171 int ctdb_ctrl_list_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
172 struct ctdb_client_context *client,
173 int destnode, struct timeval timeout,
174 struct ctdb_var_list **var_list);
176 int ctdb_ctrl_modify_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
177 struct ctdb_client_context *client,
178 int destnode, struct timeval timeout,
179 uint32_t pnn, uint32_t old_flags,
180 uint32_t new_flags);
182 int ctdb_ctrl_get_all_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
183 struct ctdb_client_context *client,
184 int destnode, struct timeval timeout,
185 struct ctdb_tunable_list **tun_list);
187 int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
188 struct tevent_context *ev,
189 struct ctdb_client_context *client,
190 int destnode, struct timeval timeout,
191 ctdb_sock_addr *addr,
192 struct ctdb_tickle_list **tickles);
194 int ctdb_ctrl_set_tcp_tickle_list(TALLOC_CTX *mem_ctx,
195 struct tevent_context *ev,
196 struct ctdb_client_context *client,
197 int destnode, struct timeval timeout,
198 struct ctdb_tickle_list *tickles);
200 int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
201 struct tevent_context *ev,
202 struct ctdb_client_context *client,
203 int destnode, struct timeval timeout,
204 const char *db_name, uint32_t *db_id);
206 int ctdb_ctrl_send_gratuitous_arp(TALLOC_CTX *mem_ctx,
207 struct tevent_context *ev,
208 struct ctdb_client_context *client,
209 int destnode, struct timeval timeout,
210 struct ctdb_addr_info *addr_info);
212 int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
213 struct ctdb_client_context *client,
214 int destnode, struct timeval timeout,
215 uint32_t db_id, uint32_t tid);
217 int ctdb_ctrl_uptime(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
218 struct ctdb_client_context *client,
219 int destnode, struct timeval timeout,
220 struct ctdb_uptime **uptime);
222 int ctdb_ctrl_start_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
223 struct ctdb_client_context *client,
224 int destnode, struct timeval timeout);
226 int ctdb_ctrl_end_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
227 struct ctdb_client_context *client,
228 int destnode, struct timeval timeout);
230 int ctdb_ctrl_reload_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
231 struct ctdb_client_context *client,
232 int destnode, struct timeval timeout);
234 int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
235 struct ctdb_client_context *client,
236 int destnode, struct timeval timeout,
237 struct ctdb_addr_info *addr_info);
239 int ctdb_ctrl_del_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
240 struct ctdb_client_context *client,
241 int destnode, struct timeval timeout,
242 struct ctdb_addr_info *addr_info);
244 int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
245 struct ctdb_client_context *client,
246 int destnode, struct timeval timeout,
247 uint32_t *caps);
249 int ctdb_ctrl_release_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
250 struct ctdb_client_context *client,
251 int destnode, struct timeval timeout,
252 struct ctdb_public_ip *pubip);
254 int ctdb_ctrl_takeover_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
255 struct ctdb_client_context *client,
256 int destnode, struct timeval timeout,
257 struct ctdb_public_ip *pubip);
259 int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
260 struct ctdb_client_context *client,
261 int destnode, struct timeval timeout,
262 bool available_only,
263 struct ctdb_public_ip_list **pubip_list);
265 int ctdb_ctrl_get_nodemap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
266 struct ctdb_client_context *client,
267 int destnode, struct timeval timeout,
268 struct ctdb_node_map **nodemap);
270 int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
271 struct ctdb_client_context *client,
272 int destnode, struct timeval timeout,
273 struct ctdb_traverse_start *traverse);
275 int ctdb_ctrl_get_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
276 struct ctdb_client_context *client,
277 int destnode, struct timeval timeout,
278 const char **reclock_file);
280 int ctdb_ctrl_stop_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
281 struct ctdb_client_context *client,
282 int destnode, struct timeval timeout);
284 int ctdb_ctrl_continue_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
285 struct ctdb_client_context *client,
286 int destnode, struct timeval timeout);
288 int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
289 struct ctdb_client_context *client,
290 int destnode, struct timeval timeout,
291 uint32_t lmaster_role);
293 int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
294 struct ctdb_client_context *client,
295 int destnode, struct timeval timeout,
296 uint32_t recmaster_role);
298 int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
299 struct ctdb_client_context *client,
300 int destnode, struct timeval timeout,
301 struct ctdb_ban_state *ban_state);
303 int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
304 struct ctdb_client_context *client,
305 int destnode, struct timeval timeout,
306 struct ctdb_ban_state **ban_state);
308 int ctdb_ctrl_register_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
309 struct ctdb_client_context *client,
310 int destnode, struct timeval timeout,
311 struct ctdb_notify_data *notify);
313 int ctdb_ctrl_deregister_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
314 struct ctdb_client_context *client,
315 int destnode, struct timeval timeout,
316 uint64_t srvid);
318 int ctdb_ctrl_trans3_commit(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
319 struct ctdb_client_context *client,
320 int destnode, struct timeval timeout,
321 struct ctdb_rec_buffer *recbuf);
323 int ctdb_ctrl_get_db_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
324 struct ctdb_client_context *client,
325 int destnode, struct timeval timeout,
326 uint32_t db_id, uint64_t *seqnum);
328 int ctdb_ctrl_db_set_healthy(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
329 struct ctdb_client_context *client,
330 int destnode, struct timeval timeout,
331 uint32_t db_id);
333 int ctdb_ctrl_db_get_health(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
334 struct ctdb_client_context *client,
335 int destnode, struct timeval timeout,
336 uint32_t db_id, const char **reason);
338 int ctdb_ctrl_get_public_ip_info(TALLOC_CTX *mem_ctx,
339 struct tevent_context *ev,
340 struct ctdb_client_context *client,
341 int destnode, struct timeval timeout,
342 ctdb_sock_addr *addr,
343 struct ctdb_public_ip_info **ipinfo);
345 int ctdb_ctrl_get_ifaces(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
346 struct ctdb_client_context *client,
347 int destnode, struct timeval timeout,
348 struct ctdb_iface_list **iface_list);
350 int ctdb_ctrl_set_iface_link_state(TALLOC_CTX *mem_ctx,
351 struct tevent_context *ev,
352 struct ctdb_client_context *client,
353 int destnode, struct timeval timeout,
354 struct ctdb_iface *iface);
356 int ctdb_ctrl_tcp_add_delayed_update(TALLOC_CTX *mem_ctx,
357 struct tevent_context *ev,
358 struct ctdb_client_context *client,
359 int destnode, struct timeval timeout,
360 struct ctdb_connection *conn);
362 int ctdb_ctrl_get_stat_history(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
363 struct ctdb_client_context *client,
364 int destnode, struct timeval timeout,
365 struct ctdb_statistics_list **stats_list);
367 int ctdb_ctrl_schedule_for_deletion(TALLOC_CTX *mem_ctx,
368 struct tevent_context *ev,
369 struct ctdb_client_context *client,
370 int destnode, struct timeval timeout,
371 struct ctdb_key_data *key);
373 int ctdb_ctrl_set_db_readonly(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
374 struct ctdb_client_context *client,
375 int destnode, struct timeval timeout,
376 uint32_t db_id);
378 int ctdb_ctrl_traverse_start_ext(TALLOC_CTX *mem_ctx,
379 struct tevent_context *ev,
380 struct ctdb_client_context *client,
381 int destnode, struct timeval timeout,
382 struct ctdb_traverse_start_ext *traverse);
384 int ctdb_ctrl_get_db_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
385 struct ctdb_client_context *client,
386 int destnode, struct timeval timeout,
387 uint32_t db_id,
388 struct ctdb_db_statistics **dbstats);
390 int ctdb_ctrl_set_db_sticky(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
391 struct ctdb_client_context *client,
392 int destnode, struct timeval timeout,
393 uint32_t db_id);
395 int ctdb_ctrl_reload_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
396 struct ctdb_client_context *client,
397 int destnode, struct timeval timeout);
399 int ctdb_ctrl_ipreallocated(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
400 struct ctdb_client_context *client,
401 int destnode, struct timeval timeout);
403 int ctdb_ctrl_get_runstate(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
404 struct ctdb_client_context *client,
405 int destnode, struct timeval timeout,
406 enum ctdb_runstate *runstate);
408 int ctdb_ctrl_db_detach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
409 struct ctdb_client_context *client,
410 int destnode, struct timeval timeout,
411 uint32_t db_id);
413 int ctdb_ctrl_get_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
414 struct ctdb_client_context *client,
415 int destnode, struct timeval timeout,
416 struct ctdb_node_map **nodemap);
418 int ctdb_ctrl_db_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
419 struct ctdb_client_context *client,
420 int destnode, struct timeval timeout, uint32_t db_id);
422 int ctdb_ctrl_db_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
423 struct ctdb_client_context *client,
424 int destnode, struct timeval timeout, uint32_t db_id);
426 int ctdb_ctrl_db_transaction_start(TALLOC_CTX *mem_ctx,
427 struct tevent_context *ev,
428 struct ctdb_client_context *client,
429 int destnode, struct timeval timeout,
430 struct ctdb_transdb *transdb);
432 int ctdb_ctrl_db_transaction_commit(TALLOC_CTX *mem_ctx,
433 struct tevent_context *ev,
434 struct ctdb_client_context *client,
435 int destnode, struct timeval timeout,
436 struct ctdb_transdb *transdb);
438 int ctdb_ctrl_db_transaction_cancel(TALLOC_CTX *mem_ctx,
439 struct tevent_context *ev,
440 struct ctdb_client_context *client,
441 int destnode, struct timeval timeout,
442 uint32_t db_id);
444 int ctdb_ctrl_db_pull(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
445 struct ctdb_client_context *client,
446 int destnode, struct timeval timeout,
447 struct ctdb_pulldb_ext *pulldb, uint32_t *num_records);
449 int ctdb_ctrl_db_push_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
450 struct ctdb_client_context *client,
451 int destnode, struct timeval timeout,
452 struct ctdb_pulldb_ext *pulldb);
454 int ctdb_ctrl_db_push_confirm(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
455 struct ctdb_client_context *client,
456 int destnode, struct timeval timeout,
457 uint32_t db_id, uint32_t *num_records);
459 int ctdb_ctrl_db_open_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
460 struct ctdb_client_context *client,
461 int destnode, struct timeval timeout,
462 uint32_t db_id, int *tdb_flags);
464 int ctdb_ctrl_db_attach_replicated(TALLOC_CTX *mem_ctx,
465 struct tevent_context *ev,
466 struct ctdb_client_context *client,
467 int destnode, struct timeval timeout,
468 const char *db_name, uint32_t *db_id);
470 int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
471 struct ctdb_client_context *client,
472 int destnode, struct timeval timeout,
473 struct ctdb_pid_srvid *pid_srvid, int *status);
475 int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
476 struct ctdb_client_context *client,
477 int destnode, struct timeval timeout,
478 uint64_t tunnel_id);
480 int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
481 struct ctdb_client_context *client,
482 int destnode, struct timeval timeout,
483 uint64_t tunnel_id);
485 /* from client/client_message_sync.c */
487 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
488 struct ctdb_client_context *client,
489 int destnode, struct ctdb_public_ip *pubip);
491 int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
492 struct ctdb_client_context *client,
493 int destnode, struct ctdb_srvid_message *msg);
495 int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
496 struct ctdb_client_context *client,
497 int destnode);
499 int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
500 struct ctdb_client_context *client,
501 int destnode, struct ctdb_srvid_message *msg);
503 int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
504 struct ctdb_client_context *client,
505 int destnode, uint32_t pnn);
507 int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
508 struct tevent_context *ev,
509 struct ctdb_client_context *client,
510 int destnode,
511 struct ctdb_disable_message *disable);
513 int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
514 struct tevent_context *ev,
515 struct ctdb_client_context *client,
516 int destnode,
517 struct ctdb_disable_message *disable);
519 int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
520 struct tevent_context *ev,
521 struct ctdb_client_context *client,
522 int destnode, uint32_t timeout);
524 #endif /* __CTDB_CLIENT_SYNC_H__ */