s3-rpc_client: Advertise Windows 7 client info
[Samba.git] / ctdb / client / client_sync.h
blobb29e669fba4e9450be32a1cd25b41f31cfdc7002
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_pull_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
69 struct ctdb_client_context *client, int destnode,
70 struct timeval timeout, struct ctdb_pulldb *pulldb,
71 struct ctdb_rec_buffer **recbuf);
73 int ctdb_ctrl_push_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
74 struct ctdb_client_context *client, int destnode,
75 struct timeval timeout, struct ctdb_rec_buffer *recbuf);
77 int ctdb_ctrl_get_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
78 struct ctdb_client_context *client,
79 int destnode, struct timeval timeout,
80 int *recmode);
82 int ctdb_ctrl_set_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
83 struct ctdb_client_context *client,
84 int destnode, struct timeval timeout,
85 int recmode);
87 int ctdb_ctrl_statistics_reset(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
88 struct ctdb_client_context *client,
89 int destnode, struct timeval timeout);
91 int ctdb_ctrl_db_attach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
92 struct ctdb_client_context *client,
93 int destnode, struct timeval timeout,
94 const char *db_name, uint32_t *db_id);
96 int ctdb_ctrl_traverse_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
97 struct ctdb_client_context *client,
98 int destnode, struct timeval timeout,
99 struct ctdb_traverse_start *traverse);
101 int ctdb_ctrl_register_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
102 struct ctdb_client_context *client,
103 int destnode, struct timeval timeout,
104 uint64_t srvid);
106 int ctdb_ctrl_deregister_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
107 struct ctdb_client_context *client,
108 int destnode, struct timeval timeout,
109 uint64_t srvid);
111 int ctdb_ctrl_get_dbname(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
112 struct ctdb_client_context *client,
113 int destnode, struct timeval timeout,
114 uint32_t db_id, const char **db_name);
116 int ctdb_ctrl_enable_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
117 struct ctdb_client_context *client,
118 int destnode, struct timeval timeout,
119 uint32_t db_id);
121 int ctdb_ctrl_update_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
122 struct ctdb_client_context *client,
123 int destnode, struct timeval timeout,
124 uint32_t db_id);
126 int ctdb_ctrl_dump_memory(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
127 struct ctdb_client_context *client,
128 int destnode, struct timeval timeout,
129 const char **mem_str);
131 int ctdb_ctrl_get_pid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
132 struct ctdb_client_context *client,
133 int destnode, struct timeval timeout,
134 pid_t *pid);
136 int ctdb_ctrl_get_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
137 struct ctdb_client_context *client,
138 int destnode, struct timeval timeout,
139 uint32_t *recmaster);
141 int ctdb_ctrl_set_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
142 struct ctdb_client_context *client,
143 int destnode, struct timeval timeout,
144 uint32_t recmaster);
146 int ctdb_ctrl_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
147 struct ctdb_client_context *client,
148 int destnode, struct timeval timeout,
149 int priority);
151 int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
152 struct ctdb_client_context *client,
153 int destnode, struct timeval timeout,
154 uint32_t *pnn);
156 int ctdb_ctrl_shutdown(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
157 struct ctdb_client_context *client,
158 int destnode, struct timeval timeout);
160 int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
161 struct ctdb_client_context *client,
162 int destnode, struct timeval timeout,
163 struct ctdb_connection *conn);
165 int ctdb_ctrl_tcp_remove(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
166 struct ctdb_client_context *client,
167 int destnode, struct timeval timeout,
168 struct ctdb_connection *conn);
170 int ctdb_ctrl_set_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
171 struct ctdb_client_context *client,
172 int destnode, struct timeval timeout,
173 struct ctdb_tunable *tunable);
175 int ctdb_ctrl_get_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
176 struct ctdb_client_context *client,
177 int destnode, struct timeval timeout,
178 const char *var, uint32_t *value);
180 int ctdb_ctrl_list_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
181 struct ctdb_client_context *client,
182 int destnode, struct timeval timeout,
183 struct ctdb_var_list **var_list);
185 int ctdb_ctrl_modify_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
186 struct ctdb_client_context *client,
187 int destnode, struct timeval timeout,
188 uint32_t pnn, uint32_t old_flags,
189 uint32_t new_flags);
191 int ctdb_ctrl_get_all_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
192 struct ctdb_client_context *client,
193 int destnode, struct timeval timeout,
194 struct ctdb_tunable_list **tun_list);
196 int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
197 struct tevent_context *ev,
198 struct ctdb_client_context *client,
199 int destnode, struct timeval timeout,
200 ctdb_sock_addr *addr,
201 struct ctdb_tickle_list **tickles);
203 int ctdb_ctrl_set_tcp_tickle_list(TALLOC_CTX *mem_ctx,
204 struct tevent_context *ev,
205 struct ctdb_client_context *client,
206 int destnode, struct timeval timeout,
207 struct ctdb_tickle_list *tickles);
209 int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
210 struct tevent_context *ev,
211 struct ctdb_client_context *client,
212 int destnode, struct timeval timeout,
213 const char *db_name, uint32_t *db_id);
215 int ctdb_ctrl_send_gratuitous_arp(TALLOC_CTX *mem_ctx,
216 struct tevent_context *ev,
217 struct ctdb_client_context *client,
218 int destnode, struct timeval timeout,
219 struct ctdb_addr_info *addr_info);
221 int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
222 struct ctdb_client_context *client,
223 int destnode, struct timeval timeout,
224 uint32_t db_id, uint32_t tid);
226 int ctdb_ctrl_uptime(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
227 struct ctdb_client_context *client,
228 int destnode, struct timeval timeout,
229 struct ctdb_uptime **uptime);
231 int ctdb_ctrl_start_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
232 struct ctdb_client_context *client,
233 int destnode, struct timeval timeout);
235 int ctdb_ctrl_end_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
236 struct ctdb_client_context *client,
237 int destnode, struct timeval timeout);
239 int ctdb_ctrl_reload_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
240 struct ctdb_client_context *client,
241 int destnode, struct timeval timeout);
243 int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
244 struct ctdb_client_context *client,
245 int destnode, struct timeval timeout,
246 struct ctdb_addr_info *addr_info);
248 int ctdb_ctrl_del_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
249 struct ctdb_client_context *client,
250 int destnode, struct timeval timeout,
251 struct ctdb_addr_info *addr_info);
253 int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
254 struct ctdb_client_context *client,
255 int destnode, struct timeval timeout,
256 uint32_t *caps);
258 int ctdb_ctrl_release_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
259 struct ctdb_client_context *client,
260 int destnode, struct timeval timeout,
261 struct ctdb_public_ip *pubip);
263 int ctdb_ctrl_takeover_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
264 struct ctdb_client_context *client,
265 int destnode, struct timeval timeout,
266 struct ctdb_public_ip *pubip);
268 int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
269 struct ctdb_client_context *client,
270 int destnode, struct timeval timeout,
271 bool available_only,
272 struct ctdb_public_ip_list **pubip_list);
274 int ctdb_ctrl_get_nodemap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
275 struct ctdb_client_context *client,
276 int destnode, struct timeval timeout,
277 struct ctdb_node_map **nodemap);
279 int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
280 struct ctdb_client_context *client,
281 int destnode, struct timeval timeout,
282 struct ctdb_traverse_start *traverse);
284 int ctdb_ctrl_get_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
285 struct ctdb_client_context *client,
286 int destnode, struct timeval timeout,
287 const char **reclock_file);
289 int ctdb_ctrl_stop_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
290 struct ctdb_client_context *client,
291 int destnode, struct timeval timeout);
293 int ctdb_ctrl_continue_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
294 struct ctdb_client_context *client,
295 int destnode, struct timeval timeout);
297 int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
298 struct ctdb_client_context *client,
299 int destnode, struct timeval timeout,
300 uint32_t lmaster_role);
302 int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
303 struct ctdb_client_context *client,
304 int destnode, struct timeval timeout,
305 uint32_t recmaster_role);
307 int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
308 struct ctdb_client_context *client,
309 int destnode, struct timeval timeout,
310 struct ctdb_ban_state *ban_state);
312 int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
313 struct ctdb_client_context *client,
314 int destnode, struct timeval timeout,
315 struct ctdb_ban_state **ban_state);
317 int ctdb_ctrl_register_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
318 struct ctdb_client_context *client,
319 int destnode, struct timeval timeout,
320 struct ctdb_notify_data *notify);
322 int ctdb_ctrl_deregister_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
323 struct ctdb_client_context *client,
324 int destnode, struct timeval timeout,
325 uint64_t srvid);
327 int ctdb_ctrl_trans3_commit(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
328 struct ctdb_client_context *client,
329 int destnode, struct timeval timeout,
330 struct ctdb_rec_buffer *recbuf);
332 int ctdb_ctrl_get_db_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
333 struct ctdb_client_context *client,
334 int destnode, struct timeval timeout,
335 uint32_t db_id, uint64_t *seqnum);
337 int ctdb_ctrl_db_set_healthy(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
338 struct ctdb_client_context *client,
339 int destnode, struct timeval timeout,
340 uint32_t db_id);
342 int ctdb_ctrl_db_get_health(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
343 struct ctdb_client_context *client,
344 int destnode, struct timeval timeout,
345 uint32_t db_id, const char **reason);
347 int ctdb_ctrl_get_public_ip_info(TALLOC_CTX *mem_ctx,
348 struct tevent_context *ev,
349 struct ctdb_client_context *client,
350 int destnode, struct timeval timeout,
351 ctdb_sock_addr *addr,
352 struct ctdb_public_ip_info **ipinfo);
354 int ctdb_ctrl_get_ifaces(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
355 struct ctdb_client_context *client,
356 int destnode, struct timeval timeout,
357 struct ctdb_iface_list **iface_list);
359 int ctdb_ctrl_set_iface_link_state(TALLOC_CTX *mem_ctx,
360 struct tevent_context *ev,
361 struct ctdb_client_context *client,
362 int destnode, struct timeval timeout,
363 struct ctdb_iface *iface);
365 int ctdb_ctrl_tcp_add_delayed_update(TALLOC_CTX *mem_ctx,
366 struct tevent_context *ev,
367 struct ctdb_client_context *client,
368 int destnode, struct timeval timeout,
369 struct ctdb_connection *conn);
371 int ctdb_ctrl_get_stat_history(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
372 struct ctdb_client_context *client,
373 int destnode, struct timeval timeout,
374 struct ctdb_statistics_list **stats_list);
376 int ctdb_ctrl_schedule_for_deletion(TALLOC_CTX *mem_ctx,
377 struct tevent_context *ev,
378 struct ctdb_client_context *client,
379 int destnode, struct timeval timeout,
380 struct ctdb_key_data *key);
382 int ctdb_ctrl_set_db_readonly(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
383 struct ctdb_client_context *client,
384 int destnode, struct timeval timeout,
385 uint32_t db_id);
387 int ctdb_ctrl_traverse_start_ext(TALLOC_CTX *mem_ctx,
388 struct tevent_context *ev,
389 struct ctdb_client_context *client,
390 int destnode, struct timeval timeout,
391 struct ctdb_traverse_start_ext *traverse);
393 int ctdb_ctrl_get_db_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
394 struct ctdb_client_context *client,
395 int destnode, struct timeval timeout,
396 uint32_t db_id,
397 struct ctdb_db_statistics **dbstats);
399 int ctdb_ctrl_set_db_sticky(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
400 struct ctdb_client_context *client,
401 int destnode, struct timeval timeout,
402 uint32_t db_id);
404 int ctdb_ctrl_reload_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
405 struct ctdb_client_context *client,
406 int destnode, struct timeval timeout);
408 int ctdb_ctrl_ipreallocated(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
409 struct ctdb_client_context *client,
410 int destnode, struct timeval timeout);
412 int ctdb_ctrl_get_runstate(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
413 struct ctdb_client_context *client,
414 int destnode, struct timeval timeout,
415 enum ctdb_runstate *runstate);
417 int ctdb_ctrl_db_detach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
418 struct ctdb_client_context *client,
419 int destnode, struct timeval timeout,
420 uint32_t db_id);
422 int ctdb_ctrl_get_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
423 struct ctdb_client_context *client,
424 int destnode, struct timeval timeout,
425 struct ctdb_node_map **nodemap);
427 int ctdb_ctrl_db_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
428 struct ctdb_client_context *client,
429 int destnode, struct timeval timeout, uint32_t db_id);
431 int ctdb_ctrl_db_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
432 struct ctdb_client_context *client,
433 int destnode, struct timeval timeout, uint32_t db_id);
435 int ctdb_ctrl_db_transaction_start(TALLOC_CTX *mem_ctx,
436 struct tevent_context *ev,
437 struct ctdb_client_context *client,
438 int destnode, struct timeval timeout,
439 struct ctdb_transdb *transdb);
441 int ctdb_ctrl_db_transaction_commit(TALLOC_CTX *mem_ctx,
442 struct tevent_context *ev,
443 struct ctdb_client_context *client,
444 int destnode, struct timeval timeout,
445 struct ctdb_transdb *transdb);
447 int ctdb_ctrl_db_transaction_cancel(TALLOC_CTX *mem_ctx,
448 struct tevent_context *ev,
449 struct ctdb_client_context *client,
450 int destnode, struct timeval timeout,
451 uint32_t db_id);
453 int ctdb_ctrl_db_pull(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
454 struct ctdb_client_context *client,
455 int destnode, struct timeval timeout,
456 struct ctdb_pulldb_ext *pulldb, uint32_t *num_records);
458 int ctdb_ctrl_db_push_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
459 struct ctdb_client_context *client,
460 int destnode, struct timeval timeout,
461 struct ctdb_pulldb_ext *pulldb);
463 int ctdb_ctrl_db_push_confirm(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
464 struct ctdb_client_context *client,
465 int destnode, struct timeval timeout,
466 uint32_t db_id, uint32_t *num_records);
468 int ctdb_ctrl_db_open_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
469 struct ctdb_client_context *client,
470 int destnode, struct timeval timeout,
471 uint32_t db_id, int *tdb_flags);
473 int ctdb_ctrl_db_attach_replicated(TALLOC_CTX *mem_ctx,
474 struct tevent_context *ev,
475 struct ctdb_client_context *client,
476 int destnode, struct timeval timeout,
477 const char *db_name, uint32_t *db_id);
479 int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
480 struct ctdb_client_context *client,
481 int destnode, struct timeval timeout,
482 struct ctdb_pid_srvid *pid_srvid, int *status);
484 int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
485 struct ctdb_client_context *client,
486 int destnode, struct timeval timeout,
487 uint64_t tunnel_id);
489 int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
490 struct ctdb_client_context *client,
491 int destnode, struct timeval timeout,
492 uint64_t tunnel_id);
494 /* from client/client_message_sync.c */
496 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
497 struct ctdb_client_context *client,
498 int destnode, struct ctdb_public_ip *pubip);
500 int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
501 struct ctdb_client_context *client,
502 int destnode, struct ctdb_srvid_message *msg);
504 int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
505 struct ctdb_client_context *client,
506 int destnode);
508 int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
509 struct ctdb_client_context *client,
510 int destnode, struct ctdb_srvid_message *msg);
512 int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
513 struct ctdb_client_context *client,
514 int destnode, uint32_t pnn);
516 int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
517 struct tevent_context *ev,
518 struct ctdb_client_context *client,
519 int destnode,
520 struct ctdb_disable_message *disable);
522 int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
523 struct tevent_context *ev,
524 struct ctdb_client_context *client,
525 int destnode,
526 struct ctdb_disable_message *disable);
528 int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
529 struct tevent_context *ev,
530 struct ctdb_client_context *client,
531 int destnode, uint32_t timeout);
533 #endif /* __CTDB_CLIENT_SYNC_H__ */