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"
36 #include "client/client_sync.h"
38 int ctdb_ctrl_process_exists(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
39 struct ctdb_client_context *client,
40 int destnode, struct timeval timeout,
41 pid_t pid, int *status)
43 struct ctdb_req_control request;
44 struct ctdb_reply_control *reply;
47 ctdb_req_control_process_exists(&request, pid);
48 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
52 ("Control PROCESS_EXISTS failed to node %u, ret=%d\n",
57 ret = ctdb_reply_control_process_exists(reply, status);
60 ("Control PROCESS_EXISTS failed, ret=%d\n", ret));
67 int ctdb_ctrl_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
68 struct ctdb_client_context *client,
69 int destnode, struct timeval timeout,
70 struct ctdb_statistics **stats)
72 struct ctdb_req_control request;
73 struct ctdb_reply_control *reply;
76 ctdb_req_control_statistics(&request);
77 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
81 ("Control STATISTICS failed to node %u, ret=%d\n",
86 ret = ctdb_reply_control_statistics(reply, mem_ctx, stats);
89 ("Control STATISTICS failed, ret=%d\n", ret));
96 int ctdb_ctrl_ping(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
97 struct ctdb_client_context *client,
98 int destnode, struct timeval timeout,
101 struct ctdb_req_control request;
102 struct ctdb_reply_control *reply;
105 ctdb_req_control_ping(&request);
106 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
110 ("Control PING failed to node %u, ret=%d\n",
115 ret = ctdb_reply_control_ping(reply, num_clients);
118 ("Control PING failed, ret=%d\n", ret));
125 int ctdb_ctrl_getdbpath(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
126 struct ctdb_client_context *client,
127 int destnode, struct timeval timeout,
129 const char **db_path)
131 struct ctdb_req_control request;
132 struct ctdb_reply_control *reply;
135 ctdb_req_control_getdbpath(&request, db_id);
136 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
140 ("Control GETDBPATH failed to node %u, ret=%d\n",
145 ret = ctdb_reply_control_getdbpath(reply, mem_ctx, db_path);
148 ("Control GETDBPATH failed, ret=%d\n", ret));
155 int ctdb_ctrl_getvnnmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
156 struct ctdb_client_context *client,
157 int destnode, struct timeval timeout,
158 struct ctdb_vnn_map **vnnmap)
160 struct ctdb_req_control request;
161 struct ctdb_reply_control *reply;
164 ctdb_req_control_getvnnmap(&request);
165 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
169 ("Control GETVNNMAP failed to node %u, ret=%d\n",
174 ret = ctdb_reply_control_getvnnmap(reply, mem_ctx, vnnmap);
177 ("Control GETVNNMAP failed, ret=%d\n", ret));
184 int ctdb_ctrl_getdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
185 struct ctdb_client_context *client,
186 int destnode, struct timeval timeout,
189 struct ctdb_req_control request;
190 struct ctdb_reply_control *reply;
193 ctdb_req_control_get_debug(&request);
194 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
198 ("Control GET_DEBUG failed to node %u, ret=%d\n",
203 ret = ctdb_reply_control_get_debug(reply, loglevel);
206 ("Control GET_DEBUG failed, ret=%d\n", ret));
213 int ctdb_ctrl_setdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
214 struct ctdb_client_context *client,
215 int destnode, struct timeval timeout,
218 struct ctdb_req_control request;
219 struct ctdb_reply_control *reply;
222 ctdb_req_control_set_debug(&request, loglevel);
223 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
227 ("Control SET_DEBUG failed to node %u, ret=%d\n",
232 ret = ctdb_reply_control_set_debug(reply);
235 ("Control SET_DEBUG failed, ret=%d\n", ret));
242 int ctdb_ctrl_get_dbmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
243 struct ctdb_client_context *client,
244 int destnode, struct timeval timeout,
245 struct ctdb_dbid_map **dbmap)
247 struct ctdb_req_control request;
248 struct ctdb_reply_control *reply;
251 ctdb_req_control_get_dbmap(&request);
252 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
256 ("Control GET_DBMAP failed to node %u, ret=%d\n",
261 ret = ctdb_reply_control_get_dbmap(reply, mem_ctx, dbmap);
264 ("Control GET_DBMAP failed, ret=%d\n", ret));
271 int ctdb_ctrl_pull_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
272 struct ctdb_client_context *client, int destnode,
273 struct timeval timeout, struct ctdb_pulldb *pulldb,
274 struct ctdb_rec_buffer **recbuf)
276 struct ctdb_req_control request;
277 struct ctdb_reply_control *reply;
280 ctdb_req_control_pull_db(&request, pulldb);
281 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
285 ("Control PULL_DB failed to node %u, ret=%d\n",
290 ret = ctdb_reply_control_pull_db(reply, mem_ctx, recbuf);
293 ("Control PULL_DB failed, ret=%d\n", ret));
300 int ctdb_ctrl_push_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
301 struct ctdb_client_context *client, int destnode,
302 struct timeval timeout, struct ctdb_rec_buffer *recbuf)
304 struct ctdb_req_control request;
305 struct ctdb_reply_control *reply;
308 ctdb_req_control_push_db(&request, recbuf);
309 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
313 ("Control PUSH_DB failed to node %u, ret=%d\n",
318 ret = ctdb_reply_control_push_db(reply);
321 ("Control PUSH_DB failed, ret=%d\n", ret));
329 int ctdb_ctrl_get_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
330 struct ctdb_client_context *client,
331 int destnode, struct timeval timeout,
334 struct ctdb_req_control request;
335 struct ctdb_reply_control *reply;
338 ctdb_req_control_get_recmode(&request);
339 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
343 ("Control GET_RECMODE failed to node %u, ret=%d\n",
348 ret = ctdb_reply_control_get_recmode(reply, recmode);
351 ("Control GET_RECMODE failed, ret=%d\n", ret));
358 int ctdb_ctrl_set_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
359 struct ctdb_client_context *client,
360 int destnode, struct timeval timeout,
363 struct ctdb_req_control request;
364 struct ctdb_reply_control *reply;
367 ctdb_req_control_set_recmode(&request, recmode);
368 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
372 ("Control SET_RECMODE failed to node %u, ret=%d\n",
377 ret = ctdb_reply_control_set_recmode(reply);
380 ("Control SET_RECMODE failed, ret=%d\n", ret));
387 int ctdb_ctrl_statistics_reset(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
388 struct ctdb_client_context *client,
389 int destnode, struct timeval timeout)
391 struct ctdb_req_control request;
392 struct ctdb_reply_control *reply;
395 ctdb_req_control_statistics_reset(&request);
396 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
400 ("Control STATISTICS_RESET failed to node %u, ret=%d\n",
405 ret = ctdb_reply_control_statistics_reset(reply);
408 ("Control STATISTICS_RESET failed, ret=%d\n", ret));
415 int ctdb_ctrl_db_attach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
416 struct ctdb_client_context *client,
417 int destnode, struct timeval timeout,
418 const char *db_name, uint32_t *db_id)
420 struct ctdb_req_control request;
421 struct ctdb_reply_control *reply;
424 ctdb_req_control_db_attach(&request, db_name);
425 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
429 ("Control DB_ATTACH failed to node %u, ret=%d\n",
434 ret = ctdb_reply_control_db_attach(reply, db_id);
437 ("Control DB_ATTACH failed, ret=%d\n", ret));
444 int ctdb_ctrl_traverse_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
445 struct ctdb_client_context *client,
446 int destnode, struct timeval timeout,
447 struct ctdb_traverse_start *traverse)
449 struct ctdb_req_control request;
450 struct ctdb_reply_control *reply;
453 ctdb_req_control_traverse_start(&request, traverse);
454 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
458 ("Control TRAVERSE_START failed to node %u, ret=%d\n",
463 ret = ctdb_reply_control_traverse_start(reply);
466 ("Control TRAVERSE_START failed, ret=%d\n", ret));
473 int ctdb_ctrl_register_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
474 struct ctdb_client_context *client,
475 int destnode, struct timeval timeout,
478 struct ctdb_req_control request;
479 struct ctdb_reply_control *reply;
482 ctdb_req_control_register_srvid(&request, srvid);
483 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
487 ("Control REGISTER_SRVID failed to node %u, ret=%d\n",
492 ret = ctdb_reply_control_register_srvid(reply);
495 ("Control REGISTER_SRVID failed, ret=%d\n", ret));
502 int ctdb_ctrl_deregister_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
503 struct ctdb_client_context *client,
504 int destnode, struct timeval timeout,
507 struct ctdb_req_control request;
508 struct ctdb_reply_control *reply;
511 ctdb_req_control_deregister_srvid(&request, srvid);
512 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
516 ("Control DEREGISTER_SRVID failed to node %u, ret=%d\n",
521 ret = ctdb_reply_control_deregister_srvid(reply);
524 ("Control DEREGISTER_SRVID failed, ret=%d\n", ret));
531 int ctdb_ctrl_get_dbname(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
532 struct ctdb_client_context *client,
533 int destnode, struct timeval timeout,
534 uint32_t db_id, const char **db_name)
536 struct ctdb_req_control request;
537 struct ctdb_reply_control *reply;
540 ctdb_req_control_get_dbname(&request, db_id);
541 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
545 ("Control GET_DBNAME failed to node %u, ret=%d\n",
550 ret = ctdb_reply_control_get_dbname(reply, mem_ctx, db_name);
553 ("Control GET_DBNAME failed, ret=%d\n", ret));
560 int ctdb_ctrl_enable_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
561 struct ctdb_client_context *client,
562 int destnode, struct timeval timeout,
565 struct ctdb_req_control request;
566 struct ctdb_reply_control *reply;
569 ctdb_req_control_enable_seqnum(&request, db_id);
570 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
574 ("Control ENABLE_SEQNUM failed to node %u, ret=%d\n",
579 ret = ctdb_reply_control_enable_seqnum(reply);
582 ("Control ENABLE_SEQNUM failed, ret=%d\n", ret));
589 int ctdb_ctrl_update_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
590 struct ctdb_client_context *client,
591 int destnode, struct timeval timeout,
594 struct ctdb_req_control request;
595 struct ctdb_reply_control *reply;
598 ctdb_req_control_update_seqnum(&request, db_id);
599 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
603 ("Control UPDATE_SEQNUM failed to node %u, ret=%d\n",
608 ret = ctdb_reply_control_update_seqnum(reply);
611 ("Control UPDATE_SEQNUM failed, ret=%d\n", ret));
618 int ctdb_ctrl_dump_memory(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
619 struct ctdb_client_context *client,
620 int destnode, struct timeval timeout,
621 const char **mem_str)
623 struct ctdb_req_control request;
624 struct ctdb_reply_control *reply;
627 ctdb_req_control_dump_memory(&request);
628 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
632 ("Control DUMP_MEMORY failed to node %u, ret=%d\n",
637 ret = ctdb_reply_control_dump_memory(reply, mem_ctx, mem_str);
640 ("Control DUMP_MEMORY failed, ret=%d\n", ret));
647 int ctdb_ctrl_get_pid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
648 struct ctdb_client_context *client,
649 int destnode, struct timeval timeout,
652 struct ctdb_req_control request;
653 struct ctdb_reply_control *reply;
656 ctdb_req_control_get_pid(&request);
657 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
661 ("Control GET_PID failed to node %u, ret=%d\n",
666 ret = ctdb_reply_control_get_pid(reply, pid);
669 ("Control GET_PID failed, ret=%d\n", ret));
676 int ctdb_ctrl_get_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
677 struct ctdb_client_context *client,
678 int destnode, struct timeval timeout,
681 struct ctdb_req_control request;
682 struct ctdb_reply_control *reply;
685 ctdb_req_control_get_recmaster(&request);
686 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
690 ("Control GET_RECMASTER failed to node %u, ret=%d\n",
695 ret = ctdb_reply_control_get_recmaster(reply, recmaster);
698 ("Control GET_RECMASTER failed, ret=%d\n", ret));
705 int ctdb_ctrl_set_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
706 struct ctdb_client_context *client,
707 int destnode, struct timeval timeout,
710 struct ctdb_req_control request;
711 struct ctdb_reply_control *reply;
714 ctdb_req_control_set_recmaster(&request, recmaster);
715 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
719 ("Control SET_RECMASTER failed to node %u, ret=%d\n",
724 ret = ctdb_reply_control_set_recmaster(reply);
727 ("Control SET_RECMASTER failed, ret=%d\n", ret));
734 int ctdb_ctrl_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
735 struct ctdb_client_context *client,
736 int destnode, struct timeval timeout,
739 struct ctdb_req_control request;
740 struct ctdb_reply_control *reply;
743 ctdb_req_control_freeze(&request, priority);
744 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
748 ("Control FREEZE failed to node %u, ret=%d\n",
753 ret = ctdb_reply_control_freeze(reply);
756 ("Control FREEZE failed, ret=%d\n", ret));
763 int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
764 struct ctdb_client_context *client,
765 int destnode, struct timeval timeout,
768 struct ctdb_req_control request;
769 struct ctdb_reply_control *reply;
772 ctdb_req_control_get_pnn(&request);
773 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
777 ("Control GET_PNN failed to node %u, ret=%d\n",
782 ret = ctdb_reply_control_get_pnn(reply, pnn);
785 ("Control GET_PNN failed, ret=%d\n", ret));
792 int ctdb_ctrl_shutdown(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
793 struct ctdb_client_context *client,
794 int destnode, struct timeval timeout)
796 struct ctdb_req_control request;
797 struct ctdb_reply_control *reply;
800 ctdb_req_control_shutdown(&request);
801 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
805 ("Control SHUTDOWN failed to node %u, ret=%d\n",
810 ret = ctdb_reply_control_shutdown(reply);
813 ("Control SHUTDOWN failed, ret=%d\n", ret));
820 int ctdb_ctrl_get_monmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
821 struct ctdb_client_context *client,
822 int destnode, struct timeval timeout,
825 struct ctdb_req_control request;
826 struct ctdb_reply_control *reply;
829 ctdb_req_control_get_monmode(&request);
830 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
834 ("Control GET_MONMODE failed to node %u, ret=%d\n",
839 ret = ctdb_reply_control_get_monmode(reply, mon_mode);
842 ("Control GET_MONMODE failed, ret=%d\n", ret));
849 int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
850 struct ctdb_client_context *client,
851 int destnode, struct timeval timeout,
852 struct ctdb_connection *conn)
854 struct ctdb_req_control request;
855 struct ctdb_reply_control *reply;
858 ctdb_req_control_tcp_add(&request, conn);
859 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
863 ("Control TCP_ADD failed to node %u, ret=%d\n",
868 ret = ctdb_reply_control_tcp_add(reply);
871 ("Control TCP_ADD failed, ret=%d\n", ret));
878 int ctdb_ctrl_tcp_remove(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
879 struct ctdb_client_context *client,
880 int destnode, struct timeval timeout,
881 struct ctdb_connection *conn)
883 struct ctdb_req_control request;
884 struct ctdb_reply_control *reply;
887 ctdb_req_control_tcp_remove(&request, conn);
888 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
892 ("Control TCP_REMOVE failed to node %u, ret=%d\n",
897 ret = ctdb_reply_control_tcp_remove(reply);
900 ("Control TCP_REMOVE failed, ret=%d\n", ret));
907 int ctdb_ctrl_set_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
908 struct ctdb_client_context *client,
909 int destnode, struct timeval timeout,
910 struct ctdb_tunable *tunable)
912 struct ctdb_req_control request;
913 struct ctdb_reply_control *reply;
916 ctdb_req_control_set_tunable(&request, tunable);
917 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
921 ("Control SET_TUNABLE failed to node %u, ret=%d\n",
926 ret = ctdb_reply_control_set_tunable(reply);
929 ("Control SET_TUNABLE failed, ret=%d\n", ret));
936 int ctdb_ctrl_get_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
937 struct ctdb_client_context *client,
938 int destnode, struct timeval timeout,
939 const char *var, uint32_t *value)
941 struct ctdb_req_control request;
942 struct ctdb_reply_control *reply;
945 ctdb_req_control_get_tunable(&request, var);
946 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
950 ("Control GET_TUNABLE failed to node %u, ret=%d\n",
955 ret = ctdb_reply_control_get_tunable(reply, value);
958 ("Control GET_TUNABLE failed, ret=%d\n", ret));
965 int ctdb_ctrl_list_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
966 struct ctdb_client_context *client,
967 int destnode, struct timeval timeout,
968 struct ctdb_var_list **var_list)
970 struct ctdb_req_control request;
971 struct ctdb_reply_control *reply;
974 ctdb_req_control_list_tunables(&request);
975 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
979 ("Control LIST_TUNABLES failed to node %u, ret=%d\n",
984 ret = ctdb_reply_control_list_tunables(reply, mem_ctx, var_list);
987 ("Control LIST_TUNABLES failed, ret=%d\n", ret));
994 int ctdb_ctrl_modify_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
995 struct ctdb_client_context *client,
996 int destnode, struct timeval timeout,
997 uint32_t pnn, uint32_t old_flags,
1000 struct ctdb_req_control request;
1001 struct ctdb_reply_control *reply;
1002 struct ctdb_node_flag_change flag_change;
1005 flag_change.pnn = pnn;
1006 flag_change.old_flags = old_flags;
1007 flag_change.new_flags = new_flags;
1009 ctdb_req_control_modify_flags(&request, &flag_change);
1010 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1014 ("Control MODIFY_FLAGS failed to node %u, ret=%d\n",
1019 ret = ctdb_reply_control_modify_flags(reply);
1022 ("Control MODIFY_FLAGS failed, ret=%d\n", ret));
1029 int ctdb_ctrl_get_all_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1030 struct ctdb_client_context *client,
1031 int destnode, struct timeval timeout,
1032 struct ctdb_tunable_list **tun_list)
1034 struct ctdb_req_control request;
1035 struct ctdb_reply_control *reply;
1038 ctdb_req_control_get_all_tunables(&request);
1039 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1043 ("Control GET_ALL_TUNABLES failed to node %u, ret=%d\n",
1048 ret = ctdb_reply_control_get_all_tunables(reply, mem_ctx, tun_list);
1051 ("Control GET_ALL_TUNABLES failed, ret=%d\n", ret));
1058 int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
1059 struct tevent_context *ev,
1060 struct ctdb_client_context *client,
1061 int destnode, struct timeval timeout,
1062 ctdb_sock_addr *addr,
1063 struct ctdb_tickle_list **tickles)
1065 struct ctdb_req_control request;
1066 struct ctdb_reply_control *reply;
1069 ctdb_req_control_get_tcp_tickle_list(&request, addr);
1070 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1074 ("Control GET_TCP_TICKLE_LIST failed to node %u, ret=%d\n",
1079 ret = ctdb_reply_control_get_tcp_tickle_list(reply, mem_ctx, tickles);
1082 ("Control GET_TCP_TICKLE_LIST failed, ret=%d\n", ret));
1089 int ctdb_ctrl_set_tcp_tickle_list(TALLOC_CTX *mem_ctx,
1090 struct tevent_context *ev,
1091 struct ctdb_client_context *client,
1092 int destnode, struct timeval timeout,
1093 struct ctdb_tickle_list *tickles)
1095 struct ctdb_req_control request;
1096 struct ctdb_reply_control *reply;
1099 ctdb_req_control_set_tcp_tickle_list(&request, tickles);
1100 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1104 ("Control SET_TCP_TICKLE_LIST failed to node %u, ret=%d\n",
1109 ret = ctdb_reply_control_set_tcp_tickle_list(reply);
1112 ("Control SET_TCP_TICKLE_LIST failed, ret=%d\n", ret));
1119 int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
1120 struct tevent_context *ev,
1121 struct ctdb_client_context *client,
1122 int destnode, struct timeval timeout,
1123 const char *db_name, uint32_t *db_id)
1125 struct ctdb_req_control request;
1126 struct ctdb_reply_control *reply;
1129 ctdb_req_control_db_attach_persistent(&request, db_name);
1130 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1134 ("Control DB_ATTACH_PERSISTENT failed to node %u, ret=%d\n",
1139 ret = ctdb_reply_control_db_attach_persistent(reply, db_id);
1142 ("Control DB_ATTACH_PERSISTENT failed, ret=%d\n", ret));
1149 int ctdb_ctrl_send_gratuitous_arp(TALLOC_CTX *mem_ctx,
1150 struct tevent_context *ev,
1151 struct ctdb_client_context *client,
1152 int destnode, struct timeval timeout,
1153 struct ctdb_addr_info *addr_info)
1155 struct ctdb_req_control request;
1156 struct ctdb_reply_control *reply;
1159 ctdb_req_control_send_gratuitous_arp(&request, addr_info);
1160 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1164 ("Control SEND_GRATUITOUS_ARP failed to node %u, ret=%d\n",
1169 ret = ctdb_reply_control_send_gratuitous_arp(reply);
1172 ("Control SEND_GRATUITOUS_ARP failed, ret=%d\n", ret));
1179 int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1180 struct ctdb_client_context *client,
1181 int destnode, struct timeval timeout,
1182 uint32_t db_id, uint32_t tid)
1184 struct ctdb_req_control request;
1185 struct ctdb_reply_control *reply;
1186 struct ctdb_transdb transdb;
1189 transdb.db_id = db_id;
1192 ctdb_req_control_wipe_database(&request, &transdb);
1193 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1197 ("Control WIPE_DATABASE failed to node %u, ret=%d\n",
1202 ret = ctdb_reply_control_wipe_database(reply);
1205 ("Control WIPE_DATABASE failed, ret=%d\n", ret));
1212 int ctdb_ctrl_uptime(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1213 struct ctdb_client_context *client,
1214 int destnode, struct timeval timeout,
1215 struct ctdb_uptime **uptime)
1217 struct ctdb_req_control request;
1218 struct ctdb_reply_control *reply;
1221 ctdb_req_control_uptime(&request);
1222 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1226 ("Control UPTIME failed to node %u, ret=%d\n",
1231 ret = ctdb_reply_control_uptime(reply, mem_ctx, uptime);
1234 ("Control UPTIME failed, ret=%d\n", ret));
1241 int ctdb_ctrl_start_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1242 struct ctdb_client_context *client,
1243 int destnode, struct timeval timeout)
1245 struct ctdb_req_control request;
1246 struct ctdb_reply_control *reply;
1249 ctdb_req_control_start_recovery(&request);
1250 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1254 ("Control START_RECOVERY failed to node %u, ret=%d\n",
1259 ret = ctdb_reply_control_start_recovery(reply);
1262 ("Control START_RECOVERY failed, ret=%d\n", ret));
1269 int ctdb_ctrl_end_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1270 struct ctdb_client_context *client,
1271 int destnode, struct timeval timeout)
1273 struct ctdb_req_control request;
1274 struct ctdb_reply_control *reply;
1277 ctdb_req_control_end_recovery(&request);
1278 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1282 ("Control END_RECOVERY failed to node %u, ret=%d\n",
1287 ret = ctdb_reply_control_end_recovery(reply);
1290 ("Control END_RECOVERY failed, ret=%d\n", ret));
1297 int ctdb_ctrl_reload_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1298 struct ctdb_client_context *client,
1299 int destnode, struct timeval timeout)
1301 struct ctdb_req_control request;
1302 struct ctdb_reply_control *reply;
1305 ctdb_req_control_reload_nodes_file(&request);
1306 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1310 ("Control RELOAD_NODES_FILE failed to node %u, ret=%d\n",
1315 ret = ctdb_reply_control_reload_nodes_file(reply);
1318 ("Control RELOAD_NODES_FILE failed, ret=%d\n", ret));
1325 int ctdb_ctrl_enable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1326 struct ctdb_client_context *client,
1327 int destnode, struct timeval timeout)
1329 struct ctdb_req_control request;
1330 struct ctdb_reply_control *reply;
1333 ctdb_req_control_enable_monitor(&request);
1334 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1338 ("Control ENABLE_MONITOR failed to node %u, ret=%d\n",
1343 ret = ctdb_reply_control_enable_monitor(reply);
1346 ("Control ENABLE_MONITOR failed, ret=%d\n", ret));
1353 int ctdb_ctrl_disable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1354 struct ctdb_client_context *client,
1355 int destnode, struct timeval timeout)
1357 struct ctdb_req_control request;
1358 struct ctdb_reply_control *reply;
1361 ctdb_req_control_disable_monitor(&request);
1362 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1366 ("Control DISABLE_MONITOR failed to node %u, ret=%d\n",
1371 ret = ctdb_reply_control_disable_monitor(reply);
1374 ("Control DISABLE_MONITOR failed, ret=%d\n", ret));
1381 int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1382 struct ctdb_client_context *client,
1383 int destnode, struct timeval timeout,
1384 struct ctdb_addr_info *addr_info)
1386 struct ctdb_req_control request;
1387 struct ctdb_reply_control *reply;
1390 ctdb_req_control_add_public_ip(&request, addr_info);
1391 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1395 ("Control ADD_PUBLIC_IP failed to node %u, ret=%d\n",
1400 ret = ctdb_reply_control_add_public_ip(reply);
1403 ("Control ADD_PUBLIC_IP failed, ret=%d\n", ret));
1410 int ctdb_ctrl_del_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1411 struct ctdb_client_context *client,
1412 int destnode, struct timeval timeout,
1413 struct ctdb_addr_info *addr_info)
1415 struct ctdb_req_control request;
1416 struct ctdb_reply_control *reply;
1419 ctdb_req_control_del_public_ip(&request, addr_info);
1420 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1424 ("Control DEL_PUBLIC_IP failed to node %u, ret=%d\n",
1429 ret = ctdb_reply_control_del_public_ip(reply);
1432 ("Control DEL_PUBLIC_IP failed, ret=%d\n", ret));
1439 int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1440 struct ctdb_client_context *client,
1441 int destnode, struct timeval timeout,
1444 struct ctdb_req_control request;
1445 struct ctdb_reply_control *reply;
1448 ctdb_req_control_get_capabilities(&request);
1449 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1453 ("Control GET_CAPABILITIES failed to node %u, ret=%d\n",
1458 ret = ctdb_reply_control_get_capabilities(reply, caps);
1461 ("Control GET_CAPABILITIES failed, ret=%d\n", ret));
1468 int ctdb_ctrl_release_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1469 struct ctdb_client_context *client,
1470 int destnode, struct timeval timeout,
1471 struct ctdb_public_ip *pubip)
1473 struct ctdb_req_control request;
1474 struct ctdb_reply_control *reply;
1477 ctdb_req_control_release_ip(&request, pubip);
1478 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1482 ("Control RELEASE_IP failed to node %u, ret=%d\n",
1487 ret = ctdb_reply_control_release_ip(reply);
1490 ("Control RELEASE_IP failed, ret=%d\n", ret));
1497 int ctdb_ctrl_takeover_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1498 struct ctdb_client_context *client,
1499 int destnode, struct timeval timeout,
1500 struct ctdb_public_ip *pubip)
1502 struct ctdb_req_control request;
1503 struct ctdb_reply_control *reply;
1506 ctdb_req_control_takeover_ip(&request, pubip);
1507 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1511 ("Control TAKEOVER_IP failed to node %u, ret=%d\n",
1516 ret = ctdb_reply_control_takeover_ip(reply);
1519 ("Control TAKEOVER_IP failed, ret=%d\n", ret));
1526 int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1527 struct ctdb_client_context *client,
1528 int destnode, struct timeval timeout,
1529 bool available_only,
1530 struct ctdb_public_ip_list **pubip_list)
1532 struct ctdb_req_control request;
1533 struct ctdb_reply_control *reply;
1536 ctdb_req_control_get_public_ips(&request, available_only);
1537 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1541 ("Control GET_PUBLIC_IPS failed to node %u, ret=%d\n",
1546 ret = ctdb_reply_control_get_public_ips(reply, mem_ctx, pubip_list);
1549 ("Control GET_PUBLIC_IPS failed, ret=%d\n", ret));
1556 int ctdb_ctrl_get_nodemap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1557 struct ctdb_client_context *client,
1558 int destnode, struct timeval timeout,
1559 struct ctdb_node_map **nodemap)
1561 struct ctdb_req_control request;
1562 struct ctdb_reply_control *reply;
1565 ctdb_req_control_get_nodemap(&request);
1566 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1570 ("Control GET_NODEMAP failed to node %u, ret=%d\n",
1575 ret = ctdb_reply_control_get_nodemap(reply, mem_ctx, nodemap);
1578 ("Control GET_NODEMAP failed, ret=%d\n", ret));
1585 int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1586 struct ctdb_client_context *client,
1587 int destnode, struct timeval timeout,
1588 struct ctdb_traverse_start *traverse)
1590 struct ctdb_req_control request;
1591 struct ctdb_reply_control *reply;
1594 ctdb_req_control_traverse_kill(&request, traverse);
1595 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1599 ("Control TRAVERSE_KILL failed to node %u, ret=%d\n",
1604 ret = ctdb_reply_control_traverse_kill(reply);
1607 ("Control TRAVERSE_KILL failed, ret=%d\n", ret));
1614 int ctdb_ctrl_get_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1615 struct ctdb_client_context *client,
1616 int destnode, struct timeval timeout,
1617 const char **reclock_file)
1619 struct ctdb_req_control request;
1620 struct ctdb_reply_control *reply;
1623 ctdb_req_control_get_reclock_file(&request);
1624 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1628 ("Control GET_RECLOCK_FILE failed to node %u, ret=%d\n",
1633 ret = ctdb_reply_control_get_reclock_file(reply, mem_ctx, reclock_file);
1636 ("Control GET_RECLOCK_FILE failed, ret=%d\n", ret));
1643 int ctdb_ctrl_stop_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1644 struct ctdb_client_context *client,
1645 int destnode, struct timeval timeout)
1647 struct ctdb_req_control request;
1648 struct ctdb_reply_control *reply;
1651 ctdb_req_control_stop_node(&request);
1652 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1656 ("Control STOP_NODE failed to node %u, ret=%d\n",
1661 ret = ctdb_reply_control_stop_node(reply);
1664 ("Control STOP_NODE failed, ret=%d\n", ret));
1671 int ctdb_ctrl_continue_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1672 struct ctdb_client_context *client,
1673 int destnode, struct timeval timeout)
1675 struct ctdb_req_control request;
1676 struct ctdb_reply_control *reply;
1679 ctdb_req_control_continue_node(&request);
1680 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1684 ("Control CONTINUE_NODE failed to node %u, ret=%d\n",
1689 ret = ctdb_reply_control_continue_node(reply);
1692 ("Control CONTINUE_NODE failed, ret=%d\n", ret));
1699 int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1700 struct ctdb_client_context *client,
1701 int destnode, struct timeval timeout,
1702 uint32_t lmaster_role)
1704 struct ctdb_req_control request;
1705 struct ctdb_reply_control *reply;
1708 ctdb_req_control_set_lmasterrole(&request, lmaster_role);
1709 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1713 ("Control SET_LMASTERROLE failed to node %u, ret=%d\n",
1718 ret = ctdb_reply_control_set_lmasterrole(reply);
1721 ("Control SET_LMASTERROLE failed, ret=%d\n", ret));
1728 int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1729 struct ctdb_client_context *client,
1730 int destnode, struct timeval timeout,
1731 uint32_t recmaster_role)
1733 struct ctdb_req_control request;
1734 struct ctdb_reply_control *reply;
1737 ctdb_req_control_set_recmasterrole(&request, recmaster_role);
1738 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1742 ("Control SET_RECMASTERROLE failed to node %u, ret=%d\n",
1747 ret = ctdb_reply_control_set_recmasterrole(reply);
1750 ("Control SET_RECMASTERROLE failed, ret=%d\n", ret));
1757 int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1758 struct ctdb_client_context *client,
1759 int destnode, struct timeval timeout,
1760 struct ctdb_ban_state *ban_state)
1762 struct ctdb_req_control request;
1763 struct ctdb_reply_control *reply;
1766 ctdb_req_control_set_ban_state(&request, ban_state);
1767 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1771 ("Control SET_BAN_STATE failed to node %u, ret=%d\n",
1776 ret = ctdb_reply_control_set_ban_state(reply);
1779 ("Control SET_BAN_STATE failed, ret=%d\n", ret));
1786 int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1787 struct ctdb_client_context *client,
1788 int destnode, struct timeval timeout,
1789 struct ctdb_ban_state **ban_state)
1791 struct ctdb_req_control request;
1792 struct ctdb_reply_control *reply;
1795 ctdb_req_control_get_ban_state(&request);
1796 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1800 ("Control GET_BAN_STATE failed to node %u, ret=%d\n",
1805 ret = ctdb_reply_control_get_ban_state(reply, mem_ctx, ban_state);
1808 ("Control GET_BAN_STATE failed, ret=%d\n", ret));
1815 int ctdb_ctrl_register_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1816 struct ctdb_client_context *client,
1817 int destnode, struct timeval timeout,
1818 struct ctdb_notify_data *notify)
1820 struct ctdb_req_control request;
1821 struct ctdb_reply_control *reply;
1824 ctdb_req_control_register_notify(&request, notify);
1825 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1829 ("Control REGISTER_NOTIFY failed to node %u, ret=%d\n",
1834 ret = ctdb_reply_control_register_notify(reply);
1837 ("Control REGISTER_NOTIFY failed, ret=%d\n", ret));
1844 int ctdb_ctrl_deregister_notify(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1845 struct ctdb_client_context *client,
1846 int destnode, struct timeval timeout,
1849 struct ctdb_req_control request;
1850 struct ctdb_reply_control *reply;
1853 ctdb_req_control_deregister_notify(&request, srvid);
1854 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1858 ("Control DEREGISTER_NOTIFY failed to node %u, ret=%d\n",
1863 ret = ctdb_reply_control_deregister_notify(reply);
1866 ("Control DEREGISTER_NOTIFY failed, ret=%d\n", ret));
1873 int ctdb_ctrl_trans3_commit(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1874 struct ctdb_client_context *client,
1875 int destnode, struct timeval timeout,
1876 struct ctdb_rec_buffer *recbuf)
1878 struct ctdb_req_control request;
1879 struct ctdb_reply_control *reply;
1882 ctdb_req_control_trans3_commit(&request, recbuf);
1883 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1887 ("Control TRANS3_COMMIT failed to node %u, ret=%d\n",
1892 ret = ctdb_reply_control_trans3_commit(reply);
1895 ("Control TRANS3_COMMIT failed, ret=%d\n", ret));
1902 int ctdb_ctrl_get_db_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1903 struct ctdb_client_context *client,
1904 int destnode, struct timeval timeout,
1905 uint32_t db_id, uint64_t *seqnum)
1907 struct ctdb_req_control request;
1908 struct ctdb_reply_control *reply;
1911 ctdb_req_control_get_db_seqnum(&request, db_id);
1912 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1916 ("Control GET_DB_SEQNUM failed to node %u, ret=%d\n",
1921 ret = ctdb_reply_control_get_db_seqnum(reply, seqnum);
1924 ("Control GET_DB_SEQNUM failed, ret=%d\n", ret));
1931 int ctdb_ctrl_db_set_healthy(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1932 struct ctdb_client_context *client,
1933 int destnode, struct timeval timeout,
1936 struct ctdb_req_control request;
1937 struct ctdb_reply_control *reply;
1940 ctdb_req_control_db_set_healthy(&request, db_id);
1941 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1945 ("Control DB_SET_HEALTHY failed to node %u, ret=%d\n",
1950 ret = ctdb_reply_control_db_set_healthy(reply);
1953 ("Control DB_SET_HEALTHY failed, ret=%d\n", ret));
1960 int ctdb_ctrl_db_get_health(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
1961 struct ctdb_client_context *client,
1962 int destnode, struct timeval timeout,
1963 uint32_t db_id, const char **reason)
1965 struct ctdb_req_control request;
1966 struct ctdb_reply_control *reply;
1969 ctdb_req_control_db_get_health(&request, db_id);
1970 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
1974 ("Control DB_GET_HEALTH failed to node %u, ret=%d\n",
1979 ret = ctdb_reply_control_db_get_health(reply, mem_ctx, reason);
1982 ("Control DB_GET_HEALTH failed, ret=%d\n", ret));
1989 int ctdb_ctrl_get_public_ip_info(TALLOC_CTX *mem_ctx,
1990 struct tevent_context *ev,
1991 struct ctdb_client_context *client,
1992 int destnode, struct timeval timeout,
1993 ctdb_sock_addr *addr,
1994 struct ctdb_public_ip_info **ipinfo)
1996 struct ctdb_req_control request;
1997 struct ctdb_reply_control *reply;
2000 ctdb_req_control_get_public_ip_info(&request, addr);
2001 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2005 ("Control GET_PUBLIC_IP_INFO failed to node %u, ret=%d\n",
2010 ret = ctdb_reply_control_get_public_ip_info(reply, mem_ctx, ipinfo);
2013 ("Control GET_PUBLIC_IP_INFO failed, ret=%d\n", ret));
2020 int ctdb_ctrl_get_ifaces(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2021 struct ctdb_client_context *client,
2022 int destnode, struct timeval timeout,
2023 struct ctdb_iface_list **iface_list)
2025 struct ctdb_req_control request;
2026 struct ctdb_reply_control *reply;
2029 ctdb_req_control_get_ifaces(&request);
2030 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2034 ("Control GET_IFACES failed to node %u, ret=%d\n",
2039 ret = ctdb_reply_control_get_ifaces(reply, mem_ctx, iface_list);
2042 ("Control GET_IFACES failed, ret=%d\n", ret));
2049 int ctdb_ctrl_set_iface_link_state(TALLOC_CTX *mem_ctx,
2050 struct tevent_context *ev,
2051 struct ctdb_client_context *client,
2052 int destnode, struct timeval timeout,
2053 struct ctdb_iface *iface)
2055 struct ctdb_req_control request;
2056 struct ctdb_reply_control *reply;
2059 ctdb_req_control_set_iface_link_state(&request, iface);
2060 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2064 ("Control SET_IFACE_LINK_STATE failed to node %u, ret=%d\n",
2069 ret = ctdb_reply_control_set_iface_link_state(reply);
2072 ("Control SET_IFACE_LINK_STATE failed, ret=%d\n", ret));
2079 int ctdb_ctrl_tcp_add_delayed_update(TALLOC_CTX *mem_ctx,
2080 struct tevent_context *ev,
2081 struct ctdb_client_context *client,
2082 int destnode, struct timeval timeout,
2083 struct ctdb_connection *conn)
2085 struct ctdb_req_control request;
2086 struct ctdb_reply_control *reply;
2089 ctdb_req_control_tcp_add_delayed_update(&request, conn);
2090 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2094 ("Control TCP_ADD_DELAYED_UPDATE failed to node %u, ret=%d\n",
2099 ret = ctdb_reply_control_tcp_add_delayed_update(reply);
2102 ("Control TCP_ADD_DELAYED_UDATE failed, ret=%d\n", ret));
2109 int ctdb_ctrl_get_stat_history(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2110 struct ctdb_client_context *client,
2111 int destnode, struct timeval timeout,
2112 struct ctdb_statistics_list **stats_list)
2114 struct ctdb_req_control request;
2115 struct ctdb_reply_control *reply;
2118 ctdb_req_control_get_stat_history(&request);
2119 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2123 ("Control GET_STAT_HISTORY failed to node %u, ret=%d\n",
2128 ret = ctdb_reply_control_get_stat_history(reply, mem_ctx, stats_list);
2131 ("Control GET_STAT_HISTORY failed, ret=%d\n", ret));
2138 int ctdb_ctrl_schedule_for_deletion(TALLOC_CTX *mem_ctx,
2139 struct tevent_context *ev,
2140 struct ctdb_client_context *client,
2141 int destnode, struct timeval timeout,
2142 struct ctdb_key_data *key)
2144 struct ctdb_req_control request;
2145 struct ctdb_reply_control *reply;
2148 ctdb_req_control_schedule_for_deletion(&request, key);
2149 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2153 ("Control SCHEDULE_FOR_DELETION failed to node %u, ret=%d\n",
2158 ret = ctdb_reply_control_schedule_for_deletion(reply);
2161 ("Control SCHEDULE_FOR_DELETION failed, ret=%d\n", ret));
2168 int ctdb_ctrl_set_db_readonly(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2169 struct ctdb_client_context *client,
2170 int destnode, struct timeval timeout,
2173 struct ctdb_req_control request;
2174 struct ctdb_reply_control *reply;
2177 ctdb_req_control_set_db_readonly(&request, db_id);
2178 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2182 ("Control SET_DB_READONY failed to node %u, ret=%d\n",
2187 ret = ctdb_reply_control_set_db_readonly(reply);
2190 ("Control SET_DB_READONY failed, ret=%d\n", ret));
2197 int ctdb_ctrl_traverse_start_ext(TALLOC_CTX *mem_ctx,
2198 struct tevent_context *ev,
2199 struct ctdb_client_context *client,
2200 int destnode, struct timeval timeout,
2201 struct ctdb_traverse_start_ext *traverse)
2203 struct ctdb_req_control request;
2204 struct ctdb_reply_control *reply;
2207 ctdb_req_control_traverse_start_ext(&request, traverse);
2208 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2212 ("Control TRAVERSE_START_EXT failed to node %u, ret=%d\n",
2217 ret = ctdb_reply_control_traverse_start_ext(reply);
2220 ("Control TRAVERSE_START_EXT failed, ret=%d\n", ret));
2227 int ctdb_ctrl_get_db_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2228 struct ctdb_client_context *client,
2229 int destnode, struct timeval timeout,
2231 struct ctdb_db_statistics **dbstats)
2233 struct ctdb_req_control request;
2234 struct ctdb_reply_control *reply;
2237 ctdb_req_control_get_db_statistics(&request, db_id);
2238 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2242 ("Control GET_DB_STATISTICS failed to node %u, ret=%d\n",
2247 ret = ctdb_reply_control_get_db_statistics(reply, mem_ctx, dbstats);
2250 ("Control GET_DB_STATISTICS failed, ret=%d\n", ret));
2257 int ctdb_ctrl_set_db_sticky(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2258 struct ctdb_client_context *client,
2259 int destnode, struct timeval timeout,
2262 struct ctdb_req_control request;
2263 struct ctdb_reply_control *reply;
2266 ctdb_req_control_set_db_sticky(&request, db_id);
2267 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2271 ("Control SET_DB_STICKY failed to node %u, ret=%d\n",
2276 ret = ctdb_reply_control_set_db_sticky(reply);
2279 ("Control SET_DB_STICKY failed, ret=%d\n", ret));
2286 int ctdb_ctrl_reload_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2287 struct ctdb_client_context *client,
2288 int destnode, struct timeval timeout)
2290 struct ctdb_req_control request;
2291 struct ctdb_reply_control *reply;
2294 ctdb_req_control_reload_public_ips(&request);
2295 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2299 ("Control RELOAD_PUBLIC_IPS failed to node %u, ret=%d\n",
2304 ret = ctdb_reply_control_reload_public_ips(reply);
2307 ("Control RELOAD_PUBLIC_IPS failed, ret=%d\n", ret));
2314 int ctdb_ctrl_ipreallocated(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2315 struct ctdb_client_context *client,
2316 int destnode, struct timeval timeout)
2318 struct ctdb_req_control request;
2319 struct ctdb_reply_control *reply;
2322 ctdb_req_control_ipreallocated(&request);
2323 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2327 ("Control IPREALLOCATED failed to node %u, ret=%d\n",
2332 ret = ctdb_reply_control_ipreallocated(reply);
2335 ("Control IPREALLOCATED failed, ret=%d\n", ret));
2342 int ctdb_ctrl_get_runstate(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2343 struct ctdb_client_context *client,
2344 int destnode, struct timeval timeout,
2345 enum ctdb_runstate *runstate)
2347 struct ctdb_req_control request;
2348 struct ctdb_reply_control *reply;
2351 ctdb_req_control_get_runstate(&request);
2352 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2356 ("Control GET_RUNSTATE failed to node %u, ret=%d\n",
2361 ret = ctdb_reply_control_get_runstate(reply, runstate);
2364 ("Control GET_RUNSTATE failed, ret=%d\n", ret));
2371 int ctdb_ctrl_db_detach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2372 struct ctdb_client_context *client,
2373 int destnode, struct timeval timeout,
2376 struct ctdb_req_control request;
2377 struct ctdb_reply_control *reply;
2380 ctdb_req_control_db_detach(&request, db_id);
2381 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2385 ("Control DB_DETACH failed to node %u, ret=%d\n",
2390 ret = ctdb_reply_control_db_detach(reply);
2393 ("Control DB_DETACH failed, ret=%d\n", ret));
2400 int ctdb_ctrl_get_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2401 struct ctdb_client_context *client,
2402 int destnode, struct timeval timeout,
2403 struct ctdb_node_map **nodemap)
2405 struct ctdb_req_control request;
2406 struct ctdb_reply_control *reply;
2409 ctdb_req_control_get_nodes_file(&request);
2410 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2414 ("Control GET_NODES_FILE failed to node %u, ret=%d\n",
2419 ret = ctdb_reply_control_get_nodes_file(reply, mem_ctx, nodemap);
2422 ("Control GET_NODES_FILE failed, ret=%d\n", ret));
2429 int ctdb_ctrl_db_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2430 struct ctdb_client_context *client,
2431 int destnode, struct timeval timeout, uint32_t db_id)
2433 struct ctdb_req_control request;
2434 struct ctdb_reply_control *reply;
2437 ctdb_req_control_db_freeze(&request, db_id);
2438 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2442 ("Control DB_FREEZE failed to node %u, ret=%d\n",
2447 ret = ctdb_reply_control_db_freeze(reply);
2450 ("Control DB_FREEZE failed, ret=%d\n", ret));
2457 int ctdb_ctrl_db_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2458 struct ctdb_client_context *client,
2459 int destnode, struct timeval timeout, uint32_t db_id)
2461 struct ctdb_req_control request;
2462 struct ctdb_reply_control *reply;
2465 ctdb_req_control_db_thaw(&request, db_id);
2466 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2470 ("Control DB_THAW failed to node %u, ret=%d\n",
2475 ret = ctdb_reply_control_db_thaw(reply);
2478 ("Control DB_THAW failed, ret=%d\n", ret));
2485 int ctdb_ctrl_db_transaction_start(TALLOC_CTX *mem_ctx,
2486 struct tevent_context *ev,
2487 struct ctdb_client_context *client,
2488 int destnode, struct timeval timeout,
2489 struct ctdb_transdb *transdb)
2491 struct ctdb_req_control request;
2492 struct ctdb_reply_control *reply;
2495 ctdb_req_control_db_transaction_start(&request, transdb);
2496 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2500 ("Control DB_TRANSACTION_START failed to node %u, ret=%d\n",
2505 ret = ctdb_reply_control_db_transaction_start(reply);
2508 ("Control DB_TRANSACTION_START failed, ret=%d\n", ret));
2515 int ctdb_ctrl_db_transaction_commit(TALLOC_CTX *mem_ctx,
2516 struct tevent_context *ev,
2517 struct ctdb_client_context *client,
2518 int destnode, struct timeval timeout,
2519 struct ctdb_transdb *transdb)
2521 struct ctdb_req_control request;
2522 struct ctdb_reply_control *reply;
2525 ctdb_req_control_db_transaction_commit(&request, transdb);
2526 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2530 ("Control DB_TRANSACTION_COMMIT failed to node %u, ret=%d\n",
2535 ret = ctdb_reply_control_db_transaction_commit(reply);
2538 ("Control DB_TRANSACTION_COMMIT failed, ret=%d\n", ret));
2545 int ctdb_ctrl_db_transaction_cancel(TALLOC_CTX *mem_ctx,
2546 struct tevent_context *ev,
2547 struct ctdb_client_context *client,
2548 int destnode, struct timeval timeout,
2551 struct ctdb_req_control request;
2552 struct ctdb_reply_control *reply;
2555 ctdb_req_control_db_transaction_cancel(&request, db_id);
2556 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2560 ("Control DB_TRANSACTION_CANCEL failed to node %u, ret=%d\n",
2565 ret = ctdb_reply_control_db_transaction_cancel(reply);
2568 ("Control DB_TRANSACTION_CANCEL failed, ret=%d\n", ret));
2575 int ctdb_ctrl_db_pull(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2576 struct ctdb_client_context *client,
2577 int destnode, struct timeval timeout,
2578 struct ctdb_pulldb_ext *pulldb, uint32_t *num_records)
2580 struct ctdb_req_control request;
2581 struct ctdb_reply_control *reply;
2584 ctdb_req_control_db_pull(&request, pulldb);
2585 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2589 ("Control DB_PULL failed to node %u, ret=%d\n",
2594 ret = ctdb_reply_control_db_pull(reply, num_records);
2596 DEBUG(DEBUG_ERR, ("Control DB_PULL failed, ret=%d\n", ret));
2603 int ctdb_ctrl_db_push_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2604 struct ctdb_client_context *client,
2605 int destnode, struct timeval timeout,
2606 struct ctdb_pulldb_ext *pulldb)
2608 struct ctdb_req_control request;
2609 struct ctdb_reply_control *reply;
2612 ctdb_req_control_db_push_start(&request, pulldb);
2613 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2617 ("Control DB_PUSH_START failed to node %u, ret=%d\n",
2622 ret = ctdb_reply_control_db_push_start(reply);
2625 ("Control DB_PUSH_START failed, ret=%d\n", ret));
2632 int ctdb_ctrl_db_push_confirm(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2633 struct ctdb_client_context *client,
2634 int destnode, struct timeval timeout,
2635 uint32_t db_id, uint32_t *num_records)
2637 struct ctdb_req_control request;
2638 struct ctdb_reply_control *reply;
2641 ctdb_req_control_db_push_confirm(&request, db_id);
2642 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2646 ("Control DB_PUSH_CONFIRM failed to node %u, ret=%d\n",
2651 ret = ctdb_reply_control_db_push_confirm(reply, num_records);
2654 ("Control DB_PUSH_CONFIRM failed, ret=%d\n", ret));
2661 int ctdb_ctrl_db_open_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
2662 struct ctdb_client_context *client,
2663 int destnode, struct timeval timeout,
2664 uint32_t db_id, int *tdb_flags)
2666 struct ctdb_req_control request;
2667 struct ctdb_reply_control *reply;
2670 ctdb_req_control_db_open_flags(&request, db_id);
2671 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2675 ("Control DB_OPEN_FLAGS failed to node %u, ret=%d\n",
2680 ret = ctdb_reply_control_db_open_flags(reply, tdb_flags);
2683 ("Control DB_OPEN_FLAGS failed, ret=%d\n", ret));
2690 int ctdb_ctrl_db_attach_replicated(TALLOC_CTX *mem_ctx,
2691 struct tevent_context *ev,
2692 struct ctdb_client_context *client,
2693 int destnode, struct timeval timeout,
2694 const char *db_name, uint32_t *db_id)
2696 struct ctdb_req_control request;
2697 struct ctdb_reply_control *reply;
2700 ctdb_req_control_db_attach_replicated(&request, db_name);
2701 ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
2705 ("Control DB_ATTACH_REPLICATED failed to node %u,"
2706 " ret=%d\n", destnode, ret));
2710 ret = ctdb_reply_control_db_attach_replicated(reply, db_id);
2713 ("Control DB_ATTACH_REPLICATED failed, ret=%d\n", ret));