#include "protocol/protocol_api.h"
#include "client/client_private.h"
#include "client/client.h"
+#include "client/client_sync.h"
int ctdb_ctrl_process_exists(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int ctdb_ctrl_getdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
- uint32_t *loglevel)
+ int *loglevel)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ctdb_ctrl_setdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
- uint32_t loglevel)
+ int loglevel)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ctdb_ctrl_db_attach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
- const char *db_name, uint32_t tdb_flags,
- uint32_t *db_id)
+ const char *db_name, uint32_t *db_id)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_db_attach(&request, db_name, tdb_flags);
+ ctdb_req_control_db_attach(&request, db_name);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
return 0;
}
-int ctdb_ctrl_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- int priority)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_thaw(&request, priority);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control THAW failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_thaw(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control THAW failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
return 0;
}
-int ctdb_ctrl_get_monmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- int *mon_mode)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_get_monmode(&request);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_MONMODE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_get_monmode(reply, mon_mode);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_MONMODE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
return 0;
}
-int ctdb_ctrl_kill_tcp(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_connection *conn)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_kill_tcp(&request, conn);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control KILL_TCP failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_kill_tcp(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control KILL_TCP failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct ctdb_client_context *client,
return 0;
}
-int ctdb_ctrl_register_server_id(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_client_id *cid)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_register_server_id(&request, cid);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control REGISTER_SERVER_ID failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_register_server_id(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control REGISTER_SERVER_ID failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_unregister_server_id(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_client_id *cid)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_unregister_server_id(&request, cid);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control UNREGISTER_SERVER_ID failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_unregister_server_id(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control UNREGISTER_SERVER_ID failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_check_server_id(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_client_id *cid)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_check_server_id(&request, cid);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control CHECK_SERVER_ID failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_check_server_id(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control CHECK_SERVER_ID failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_get_server_id_list(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_client_id_map **cid_map)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_get_server_id_list(&request);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_SERVER_ID_LIST failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_get_server_id_list(reply, mem_ctx, cid_map);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_SERVER_ID_LIST failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
- const char *db_name, int tdb_flags,
- uint32_t *db_id)
+ const char *db_name, uint32_t *db_id)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_db_attach_persistent(&request, db_name, tdb_flags);
+ ctdb_req_control_db_attach_persistent(&request, db_name);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
return 0;
}
-int ctdb_ctrl_transaction_start(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t tid)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_transaction_start(&request, tid);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_START failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_transaction_start(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_START failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_transaction_commit(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t tid)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_transaction_commit(&request, tid);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_COMMIT failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_transaction_commit(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_COMMIT failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
return 0;
}
-int ctdb_ctrl_enable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_enable_monitor(&request);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control ENABLE_MONITOR failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_enable_monitor(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control ENABLE_MONITOR failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_disable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_disable_monitor(&request);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control DISABLE_MONITOR failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_disable_monitor(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control DISABLE_MONITOR failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
return 0;
}
-int ctdb_ctrl_run_eventscripts(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- const char *event)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_run_eventscripts(&request, event);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control RUN_EVENTSCRIPTS failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_run_eventscripts(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control RUN_EVENTSCRIPTS failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
+ bool available_only,
struct ctdb_public_ip_list **pubip_list)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_get_public_ips(&request);
+ ctdb_req_control_get_public_ips(&request, available_only);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
return 0;
}
-int ctdb_ctrl_get_event_script_status(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- enum ctdb_event event,
- struct ctdb_script_list **slist)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_get_event_script_status(&request, event);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_EVENT_SCRIPT_STATUS failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_get_event_script_status(reply, mem_ctx, slist);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control GET_EVENT_SCRIPT_STATUS failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout,
return 0;
}
-int ctdb_ctrl_set_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- const char *reclock_file)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_set_reclock_file(&request, reclock_file);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_RECLOCK_FILE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_set_reclock_file(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_RECLOCK_FILE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
int ctdb_ctrl_stop_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
struct ctdb_client_context *client,
int destnode, struct timeval timeout)
}
return 0;
-}
-
-int ctdb_ctrl_set_natgwstate(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t natgw_role)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_set_natgwstate(&request, natgw_role);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_NATGWSTATE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_set_natgwstate(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_NATGWSTATE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t lmaster_role)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_set_lmasterrole(&request, lmaster_role);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_LMASTERROLE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_set_lmasterrole(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_LMASTERROLE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t recmaster_role)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_set_recmasterrole(&request, recmaster_role);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_RECMASTERROLE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_set_recmasterrole(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_RECMASTERROLE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_enable_script(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- const char *script)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_enable_script(&request, script);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control ENABLE_SCRIPT failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_enable_script(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control ENABLE_SCRIPT failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_disable_script(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- const char *script)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_disable_script(&request, script);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control DISABLE_SCRIPT failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_disable_script(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control DISABLE_SCRIPT failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_ban_state *ban_state)
-{
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- ctdb_req_control_set_ban_state(&request, ban_state);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_BAN_STATE failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_set_ban_state(reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control SET_BAN_STATE failed, ret=%d\n", ret));
- return ret;
- }
-
- return 0;
-}
-
-int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- struct ctdb_ban_state **ban_state)
+}
+
+int ctdb_ctrl_set_lmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t lmaster_role)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_get_ban_state(&request);
+ ctdb_req_control_set_lmasterrole(&request, lmaster_role);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control GET_BAN_STATE failed to node %u, ret=%d\n",
+ ("Control SET_LMASTERROLE failed to node %u, ret=%d\n",
destnode, ret));
return ret;
}
- ret = ctdb_reply_control_get_ban_state(reply, mem_ctx, ban_state);
+ ret = ctdb_reply_control_set_lmasterrole(reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control GET_BAN_STATE failed, ret=%d\n", ret));
+ ("Control SET_LMASTERROLE failed, ret=%d\n", ret));
return ret;
}
return 0;
}
-int ctdb_ctrl_set_db_priority(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t db_id, int priority)
+int ctdb_ctrl_set_recmasterrole(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t recmaster_role)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
- struct ctdb_db_priority db_prio;
int ret;
- db_prio.db_id = db_id;
- db_prio.priority = priority;
-
- ctdb_req_control_set_db_priority(&request, &db_prio);
+ ctdb_req_control_set_recmasterrole(&request, recmaster_role);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control SET_DB_PRIORITY failed to node %u, ret=%d\n",
+ ("Control SET_RECMASTERROLE failed to node %u, ret=%d\n",
destnode, ret));
return ret;
}
- ret = ctdb_reply_control_set_db_priority(reply);
+ ret = ctdb_reply_control_set_recmasterrole(reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control SET_DB_PRIORITY failed, ret=%d\n", ret));
+ ("Control SET_RECMASTERROLE failed, ret=%d\n", ret));
return ret;
}
return 0;
}
-int ctdb_ctrl_get_db_priority(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t db_id, uint32_t *priority)
+int ctdb_ctrl_set_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_ban_state *ban_state)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_get_db_priority(&request, db_id);
+ ctdb_req_control_set_ban_state(&request, ban_state);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control GET_DB_PRIORITY failed to node %u, ret=%d\n",
+ ("Control SET_BAN_STATE failed to node %u, ret=%d\n",
destnode, ret));
return ret;
}
- ret = ctdb_reply_control_get_db_priority(reply, priority);
+ ret = ctdb_reply_control_set_ban_state(reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control GET_DB_PRIORITY failed, ret=%d\n", ret));
+ ("Control SET_BAN_STATE failed, ret=%d\n", ret));
return ret;
}
return 0;
}
-int ctdb_ctrl_transaction_cancel(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint32_t tid)
+int ctdb_ctrl_get_ban_state(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_ban_state **ban_state)
{
struct ctdb_req_control request;
struct ctdb_reply_control *reply;
int ret;
- ctdb_req_control_transaction_cancel(&request, tid);
+ ctdb_req_control_get_ban_state(&request);
ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
&request, &reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_CANCEL failed to node %u, ret=%d\n",
+ ("Control GET_BAN_STATE failed to node %u, ret=%d\n",
destnode, ret));
return ret;
}
- ret = ctdb_reply_control_transaction_cancel(reply);
+ ret = ctdb_reply_control_get_ban_state(reply, mem_ctx, ban_state);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control TRANSACTION_CANCEL failed, ret=%d\n", ret));
+ ("Control GET_BAN_STATE failed, ret=%d\n", ret));
return ret;
}
ret = ctdb_reply_control_tcp_add_delayed_update(reply);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("Control TCP_ADD_DELAYED_UDATE failed, ret=%d\n", ret));
+ ("Control TCP_ADD_DELAYED_UPDATE failed, ret=%d\n", ret));
return ret;
}
return 0;
}
-int ctdb_ctrl_check_srvids(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct ctdb_client_context *client,
- int destnode, struct timeval timeout,
- uint64_t *srvid, int count, uint8_t **result)
-{
- struct ctdb_uint64_array srvid_list;
- struct ctdb_uint8_array *u8_array;
- struct ctdb_req_control request;
- struct ctdb_reply_control *reply;
- int ret;
-
- srvid_list.num = count;
- srvid_list.val = srvid;
-
- ctdb_req_control_check_srvids(&request, &srvid_list);
- ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
- &request, &reply);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control CHECK_SRVIDS failed to node %u, ret=%d\n",
- destnode, ret));
- return ret;
- }
-
- ret = ctdb_reply_control_check_srvids(reply, &request, &u8_array);
- if (ret != 0) {
- DEBUG(DEBUG_ERR,
- ("Control CHECK_SRVIDS failed, ret=%d\n", ret));
- return ret;
- }
-
- if (u8_array->num != count) {
- DEBUG(DEBUG_ERR,
- ("Control CHECK_SRVIDS returned invalid data %d != %d\n",
- u8_array->num, count));
- return ret;
- }
-
- *result = talloc_steal(mem_ctx, u8_array->val);
- return 0;
-}
-
int ctdb_ctrl_traverse_start_ext(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct ctdb_client_context *client,
return 0;
}
+
+int ctdb_ctrl_db_pull(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_pulldb_ext *pulldb, uint32_t *num_records)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_db_pull(&request, pulldb);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_PULL failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_db_pull(reply, num_records);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR, ("Control DB_PULL failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_db_push_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_pulldb_ext *pulldb)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_db_push_start(&request, pulldb);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_PUSH_START failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_db_push_start(reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_PUSH_START failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_db_push_confirm(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id, uint32_t *num_records)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_db_push_confirm(&request, db_id);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_PUSH_CONFIRM failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_db_push_confirm(reply, num_records);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_PUSH_CONFIRM failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_db_open_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id, int *tdb_flags)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_db_open_flags(&request, db_id);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_OPEN_FLAGS failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_db_open_flags(reply, tdb_flags);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_OPEN_FLAGS failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_db_attach_replicated(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char *db_name, uint32_t *db_id)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_db_attach_replicated(&request, db_name);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_ATTACH_REPLICATED failed to node %u,"
+ " ret=%d\n", destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_db_attach_replicated(reply, db_id);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control DB_ATTACH_REPLICATED failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_pid_srvid *pid_srvid, int *status)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_check_pid_srvid(&request, pid_srvid);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control CHECK_PID_SRVID failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_check_pid_srvid(reply, status);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control CHECK_PID_SRVID failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint64_t tunnel_id)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_tunnel_register(&request, tunnel_id);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control TUNNEL_REGISTER failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_tunnel_register(reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control TUNNEL_REGISTER failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}
+
+int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint64_t tunnel_id)
+{
+ struct ctdb_req_control request;
+ struct ctdb_reply_control *reply;
+ int ret;
+
+ ctdb_req_control_tunnel_deregister(&request, tunnel_id);
+ ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+ &request, &reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control TUNNEL_DEREGISTER failed to node %u, ret=%d\n",
+ destnode, ret));
+ return ret;
+ }
+
+ ret = ctdb_reply_control_tunnel_deregister(reply);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ ("Control TUNNEL_DEREGISTER failed, ret=%d\n", ret));
+ return ret;
+ }
+
+ return 0;
+}