s3: smbd: Move check_fsp_open() and check_fsp() to smb1_reply.c
[Samba.git] / ctdb / client / client_sync.h
blob5b0ff42e95d9135cce32bdbe9c5476be3a708b0b
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_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
128 struct ctdb_client_context *client,
129 int destnode, struct timeval timeout,
130 int priority);
132 int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
133 struct ctdb_client_context *client,
134 int destnode, struct timeval timeout,
135 uint32_t *pnn);
137 int ctdb_ctrl_shutdown(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
138 struct ctdb_client_context *client,
139 int destnode, struct timeval timeout);
141 int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
142 struct ctdb_client_context *client,
143 int destnode, struct timeval timeout,
144 struct ctdb_connection *conn);
146 int ctdb_ctrl_tcp_remove(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
147 struct ctdb_client_context *client,
148 int destnode, struct timeval timeout,
149 struct ctdb_connection *conn);
151 int ctdb_ctrl_set_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
152 struct ctdb_client_context *client,
153 int destnode, struct timeval timeout,
154 struct ctdb_tunable *tunable);
156 int ctdb_ctrl_get_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
157 struct ctdb_client_context *client,
158 int destnode, struct timeval timeout,
159 const char *var, uint32_t *value);
161 int ctdb_ctrl_list_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
162 struct ctdb_client_context *client,
163 int destnode, struct timeval timeout,
164 struct ctdb_var_list **var_list);
166 int ctdb_ctrl_modify_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
167 struct ctdb_client_context *client,
168 int destnode, struct timeval timeout,
169 uint32_t pnn, uint32_t old_flags,
170 uint32_t new_flags);
172 int ctdb_ctrl_get_all_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
173 struct ctdb_client_context *client,
174 int destnode, struct timeval timeout,
175 struct ctdb_tunable_list **tun_list);
177 int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
178 struct tevent_context *ev,
179 struct ctdb_client_context *client,
180 int destnode, struct timeval timeout,
181 ctdb_sock_addr *addr,
182 struct ctdb_tickle_list **tickles);
184 int ctdb_ctrl_set_tcp_tickle_list(TALLOC_CTX *mem_ctx,
185 struct tevent_context *ev,
186 struct ctdb_client_context *client,
187 int destnode, struct timeval timeout,
188 struct ctdb_tickle_list *tickles);
190 int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
191 struct tevent_context *ev,
192 struct ctdb_client_context *client,
193 int destnode, struct timeval timeout,
194 const char *db_name, uint32_t *db_id);
196 int ctdb_ctrl_send_gratuitous_arp(TALLOC_CTX *mem_ctx,
197 struct tevent_context *ev,
198 struct ctdb_client_context *client,
199 int destnode, struct timeval timeout,
200 struct ctdb_addr_info *addr_info);
202 int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
203 struct ctdb_client_context *client,
204 int destnode, struct timeval timeout,
205 uint32_t db_id, uint32_t tid);
207 int ctdb_ctrl_uptime(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
208 struct ctdb_client_context *client,
209 int destnode, struct timeval timeout,
210 struct ctdb_uptime **uptime);
212 int ctdb_ctrl_start_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
213 struct ctdb_client_context *client,
214 int destnode, struct timeval timeout);
216 int ctdb_ctrl_end_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
217 struct ctdb_client_context *client,
218 int destnode, struct timeval timeout);
220 int ctdb_ctrl_reload_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
221 struct ctdb_client_context *client,
222 int destnode, struct timeval timeout);
224 int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
225 struct ctdb_client_context *client,
226 int destnode, struct timeval timeout,
227 struct ctdb_addr_info *addr_info);
229 int ctdb_ctrl_del_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
230 struct ctdb_client_context *client,
231 int destnode, struct timeval timeout,
232 struct ctdb_addr_info *addr_info);
234 int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
235 struct ctdb_client_context *client,
236 int destnode, struct timeval timeout,
237 uint32_t *caps);
239 int ctdb_ctrl_release_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
240 struct ctdb_client_context *client,
241 int destnode, struct timeval timeout,
242 struct ctdb_public_ip *pubip);
244 int ctdb_ctrl_takeover_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
245 struct ctdb_client_context *client,
246 int destnode, struct timeval timeout,
247 struct ctdb_public_ip *pubip);
249 int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
250 struct ctdb_client_context *client,
251 int destnode, struct timeval timeout,
252 bool available_only,
253 struct ctdb_public_ip_list **pubip_list);
255 int ctdb_ctrl_get_nodemap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
256 struct ctdb_client_context *client,
257 int destnode, struct timeval timeout,
258 struct ctdb_node_map **nodemap);
260 int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
261 struct ctdb_client_context *client,
262 int destnode, struct timeval timeout,
263 struct ctdb_traverse_start *traverse);
265 int ctdb_ctrl_get_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
266 struct ctdb_client_context *client,
267 int destnode, struct timeval timeout,
268 const char **reclock_file);
270 int ctdb_ctrl_stop_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
271 struct ctdb_client_context *client,
272 int destnode, struct timeval timeout);
274 int ctdb_ctrl_continue_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
275 struct ctdb_client_context *client,
276 int destnode, struct timeval timeout);
278 int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
279 struct ctdb_client_context *client,
280 int destnode, struct timeval timeout,
281 uint32_t lmaster_role);
283 int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
284 struct ctdb_client_context *client,
285 int destnode, struct timeval timeout,
286 uint32_t recmaster_role);
288 int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
289 struct ctdb_client_context *client,
290 int destnode, struct timeval timeout,
291 struct ctdb_ban_state *ban_state);
293 int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
294 struct ctdb_client_context *client,
295 int destnode, struct timeval timeout,
296 struct ctdb_ban_state **ban_state);
298 int ctdb_ctrl_register_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
299 struct ctdb_client_context *client,
300 int destnode, struct timeval timeout,
301 struct ctdb_notify_data *notify);
303 int ctdb_ctrl_deregister_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
304 struct ctdb_client_context *client,
305 int destnode, struct timeval timeout,
306 uint64_t srvid);
308 int ctdb_ctrl_trans3_commit(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
309 struct ctdb_client_context *client,
310 int destnode, struct timeval timeout,
311 struct ctdb_rec_buffer *recbuf);
313 int ctdb_ctrl_get_db_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
314 struct ctdb_client_context *client,
315 int destnode, struct timeval timeout,
316 uint32_t db_id, uint64_t *seqnum);
318 int ctdb_ctrl_db_set_healthy(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
319 struct ctdb_client_context *client,
320 int destnode, struct timeval timeout,
321 uint32_t db_id);
323 int ctdb_ctrl_db_get_health(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, const char **reason);
328 int ctdb_ctrl_get_public_ip_info(TALLOC_CTX *mem_ctx,
329 struct tevent_context *ev,
330 struct ctdb_client_context *client,
331 int destnode, struct timeval timeout,
332 ctdb_sock_addr *addr,
333 struct ctdb_public_ip_info **ipinfo);
335 int ctdb_ctrl_get_ifaces(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
336 struct ctdb_client_context *client,
337 int destnode, struct timeval timeout,
338 struct ctdb_iface_list **iface_list);
340 int ctdb_ctrl_set_iface_link_state(TALLOC_CTX *mem_ctx,
341 struct tevent_context *ev,
342 struct ctdb_client_context *client,
343 int destnode, struct timeval timeout,
344 struct ctdb_iface *iface);
346 int ctdb_ctrl_tcp_add_delayed_update(TALLOC_CTX *mem_ctx,
347 struct tevent_context *ev,
348 struct ctdb_client_context *client,
349 int destnode, struct timeval timeout,
350 struct ctdb_connection *conn);
352 int ctdb_ctrl_get_stat_history(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
353 struct ctdb_client_context *client,
354 int destnode, struct timeval timeout,
355 struct ctdb_statistics_list **stats_list);
357 int ctdb_ctrl_schedule_for_deletion(TALLOC_CTX *mem_ctx,
358 struct tevent_context *ev,
359 struct ctdb_client_context *client,
360 int destnode, struct timeval timeout,
361 struct ctdb_key_data *key);
363 int ctdb_ctrl_set_db_readonly(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
364 struct ctdb_client_context *client,
365 int destnode, struct timeval timeout,
366 uint32_t db_id);
368 int ctdb_ctrl_traverse_start_ext(TALLOC_CTX *mem_ctx,
369 struct tevent_context *ev,
370 struct ctdb_client_context *client,
371 int destnode, struct timeval timeout,
372 struct ctdb_traverse_start_ext *traverse);
374 int ctdb_ctrl_get_db_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
375 struct ctdb_client_context *client,
376 int destnode, struct timeval timeout,
377 uint32_t db_id,
378 struct ctdb_db_statistics **dbstats);
380 int ctdb_ctrl_set_db_sticky(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
381 struct ctdb_client_context *client,
382 int destnode, struct timeval timeout,
383 uint32_t db_id);
385 int ctdb_ctrl_reload_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
386 struct ctdb_client_context *client,
387 int destnode, struct timeval timeout);
389 int ctdb_ctrl_ipreallocated(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
390 struct ctdb_client_context *client,
391 int destnode, struct timeval timeout);
393 int ctdb_ctrl_get_runstate(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
394 struct ctdb_client_context *client,
395 int destnode, struct timeval timeout,
396 enum ctdb_runstate *runstate);
398 int ctdb_ctrl_db_detach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
399 struct ctdb_client_context *client,
400 int destnode, struct timeval timeout,
401 uint32_t db_id);
403 int ctdb_ctrl_get_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
404 struct ctdb_client_context *client,
405 int destnode, struct timeval timeout,
406 struct ctdb_node_map **nodemap);
408 int ctdb_ctrl_db_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
409 struct ctdb_client_context *client,
410 int destnode, struct timeval timeout, uint32_t db_id);
412 int ctdb_ctrl_db_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
413 struct ctdb_client_context *client,
414 int destnode, struct timeval timeout, uint32_t db_id);
416 int ctdb_ctrl_db_transaction_start(TALLOC_CTX *mem_ctx,
417 struct tevent_context *ev,
418 struct ctdb_client_context *client,
419 int destnode, struct timeval timeout,
420 struct ctdb_transdb *transdb);
422 int ctdb_ctrl_db_transaction_commit(TALLOC_CTX *mem_ctx,
423 struct tevent_context *ev,
424 struct ctdb_client_context *client,
425 int destnode, struct timeval timeout,
426 struct ctdb_transdb *transdb);
428 int ctdb_ctrl_db_transaction_cancel(TALLOC_CTX *mem_ctx,
429 struct tevent_context *ev,
430 struct ctdb_client_context *client,
431 int destnode, struct timeval timeout,
432 uint32_t db_id);
434 int ctdb_ctrl_db_pull(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
435 struct ctdb_client_context *client,
436 int destnode, struct timeval timeout,
437 struct ctdb_pulldb_ext *pulldb, uint32_t *num_records);
439 int ctdb_ctrl_db_push_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
440 struct ctdb_client_context *client,
441 int destnode, struct timeval timeout,
442 struct ctdb_pulldb_ext *pulldb);
444 int ctdb_ctrl_db_push_confirm(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
445 struct ctdb_client_context *client,
446 int destnode, struct timeval timeout,
447 uint32_t db_id, uint32_t *num_records);
449 int ctdb_ctrl_db_open_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
450 struct ctdb_client_context *client,
451 int destnode, struct timeval timeout,
452 uint32_t db_id, int *tdb_flags);
454 int ctdb_ctrl_db_attach_replicated(TALLOC_CTX *mem_ctx,
455 struct tevent_context *ev,
456 struct ctdb_client_context *client,
457 int destnode, struct timeval timeout,
458 const char *db_name, uint32_t *db_id);
460 int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
461 struct ctdb_client_context *client,
462 int destnode, struct timeval timeout,
463 struct ctdb_pid_srvid *pid_srvid, int *status);
465 int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
466 struct ctdb_client_context *client,
467 int destnode, struct timeval timeout,
468 uint64_t tunnel_id);
470 int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
471 struct ctdb_client_context *client,
472 int destnode, struct timeval timeout,
473 uint64_t tunnel_id);
475 int ctdb_ctrl_disable_node(TALLOC_CTX *mem_ctx,
476 struct tevent_context *ev,
477 struct ctdb_client_context *client,
478 int destnode,
479 struct timeval timeout);
481 int ctdb_ctrl_enable_node(TALLOC_CTX *mem_ctx,
482 struct tevent_context *ev,
483 struct ctdb_client_context *client,
484 int destnode,
485 struct timeval timeout);
487 /* from client/client_message_sync.c */
489 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
490 struct ctdb_client_context *client,
491 int destnode, struct ctdb_public_ip *pubip);
493 int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
494 struct ctdb_client_context *client,
495 int destnode, struct ctdb_srvid_message *msg);
497 int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
498 struct ctdb_client_context *client,
499 int destnode);
501 int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
502 struct ctdb_client_context *client,
503 int destnode, struct ctdb_srvid_message *msg);
505 int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
506 struct ctdb_client_context *client,
507 int destnode, uint32_t pnn);
509 int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
510 struct tevent_context *ev,
511 struct ctdb_client_context *client,
512 int destnode,
513 struct ctdb_disable_message *disable);
515 int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
516 struct tevent_context *ev,
517 struct ctdb_client_context *client,
518 int destnode,
519 struct ctdb_disable_message *disable);
521 int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
522 struct tevent_context *ev,
523 struct ctdb_client_context *client,
524 int destnode, uint32_t timeout);
526 #endif /* __CTDB_CLIENT_SYNC_H__ */