enum debug_level log_level;
enum ctdb_runstate runstate;
struct ctdb_tunable_list tun_list;
+ int monitoring_mode;
};
/*
ctdb_tunable_set_defaults(&ctdb->tun_list);
+ ctdb->monitoring_mode = CTDB_MONITORING_ACTIVE;
+
return ctdb;
fail:
state->status = 99;
}
+static void control_get_monmode(TALLOC_CTX *mem_ctx,
+ struct tevent_req *req,
+ struct ctdb_req_header *header,
+ struct ctdb_req_control *request)
+{
+ struct client_state *state = tevent_req_data(
+ req, struct client_state);
+ struct ctdbd_context *ctdb = state->ctdb;
+ struct ctdb_reply_control reply;
+
+ reply.rdata.opcode = request->opcode;
+ reply.status = ctdb->monitoring_mode;
+ reply.errmsg = NULL;
+
+ client_send_control(req, header, &reply);
+}
+
static void control_set_tunable(TALLOC_CTX *mem_ctx,
struct tevent_req *req,
struct ctdb_req_header *header,
client_send_control(req, header, &reply);
}
+static void control_enable_monitor(TALLOC_CTX *mem_ctx,
+ struct tevent_req *req,
+ struct ctdb_req_header *header,
+ struct ctdb_req_control *request)
+{
+ struct client_state *state = tevent_req_data(
+ req, struct client_state);
+ struct ctdbd_context *ctdb = state->ctdb;
+ struct ctdb_reply_control reply;
+
+ ctdb->monitoring_mode = CTDB_MONITORING_ACTIVE;
+
+ reply.rdata.opcode = request->opcode;
+ reply.status = 0;
+ reply.errmsg = NULL;
+ client_send_control(req, header, &reply);
+}
+
+static void control_disable_monitor(TALLOC_CTX *mem_ctx,
+ struct tevent_req *req,
+ struct ctdb_req_header *header,
+ struct ctdb_req_control *request)
+{
+ struct client_state *state = tevent_req_data(
+ req, struct client_state);
+ struct ctdbd_context *ctdb = state->ctdb;
+ struct ctdb_reply_control reply;
+
+ ctdb->monitoring_mode = CTDB_MONITORING_DISABLED;
+
+ reply.rdata.opcode = request->opcode;
+ reply.status = 0;
+ reply.errmsg = NULL;
+ client_send_control(req, header, &reply);
+}
+
static void control_reload_nodes_file(TALLOC_CTX *mem_ctx,
struct tevent_req *req,
struct ctdb_req_header *header,
control_shutdown(mem_ctx, req, &header, &request);
break;
+ case CTDB_CONTROL_GET_MONMODE:
+ control_get_monmode(mem_ctx, req, &header, &request);
+ break;
+
case CTDB_CONTROL_SET_TUNABLE:
control_set_tunable(mem_ctx, req, &header, &request);
break;
control_uptime(mem_ctx, req, &header, &request);
break;
+ case CTDB_CONTROL_ENABLE_MONITOR:
+ control_enable_monitor(mem_ctx, req, &header, &request);
+ break;
+
+ case CTDB_CONTROL_DISABLE_MONITOR:
+ control_disable_monitor(mem_ctx, req, &header, &request);
+ break;
+
case CTDB_CONTROL_RELOAD_NODES_FILE:
control_reload_nodes_file(mem_ctx, req, &header, &request);
break;