CTDB_CONTROL_PERSISTENT_STORE = 62, /* obsolete */
CTDB_CONTROL_UPDATE_RECORD = 63,
CTDB_CONTROL_SEND_GRATUITOUS_ARP = 64,
- CTDB_CONTROL_TRANSACTION_START = 65,
- CTDB_CONTROL_TRANSACTION_COMMIT = 66,
+ CTDB_CONTROL_TRANSACTION_START = 65, /* obsolete */
+ CTDB_CONTROL_TRANSACTION_COMMIT = 66, /* obsolete */
CTDB_CONTROL_WIPE_DATABASE = 67,
/* #68 removed */
CTDB_CONTROL_UPTIME = 69,
CTDB_CONTROL_DISABLE_MONITOR = 76,
CTDB_CONTROL_ADD_PUBLIC_IP = 77,
CTDB_CONTROL_DEL_PUBLIC_IP = 78,
- CTDB_CONTROL_RUN_EVENTSCRIPTS = 79,
+ CTDB_CONTROL_RUN_EVENTSCRIPTS = 79, /* obsolete */
CTDB_CONTROL_GET_CAPABILITIES = 80,
CTDB_CONTROL_START_PERSISTENT_UPDATE = 81, /* obsolete */
CTDB_CONTROL_CANCEL_PERSISTENT_UPDATE= 82, /* obsolete */
CTDB_CONTROL_GET_PUBLIC_IPS = 90,
CTDB_CONTROL_GET_NODEMAP = 91,
/* missing */
- CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS = 96,
+ CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS = 96, /* obsolete */
CTDB_CONTROL_TRAVERSE_KILL = 97,
CTDB_CONTROL_RECD_RECLOCK_LATENCY = 98,
CTDB_CONTROL_GET_RECLOCK_FILE = 99,
CTDB_CONTROL_SET_NATGWSTATE = 103, /* obsolete */
CTDB_CONTROL_SET_LMASTERROLE = 104,
CTDB_CONTROL_SET_RECMASTERROLE = 105,
- CTDB_CONTROL_ENABLE_SCRIPT = 107,
- CTDB_CONTROL_DISABLE_SCRIPT = 108,
+ CTDB_CONTROL_ENABLE_SCRIPT = 107, /* obsolete */
+ CTDB_CONTROL_DISABLE_SCRIPT = 108, /* obsolete */
CTDB_CONTROL_SET_BAN_STATE = 109,
CTDB_CONTROL_GET_BAN_STATE = 110,
CTDB_CONTROL_SET_DB_PRIORITY = 111, /* obsolete */
CTDB_CONTROL_GET_DB_PRIORITY = 112, /* obsolete */
- CTDB_CONTROL_TRANSACTION_CANCEL = 113,
+ CTDB_CONTROL_TRANSACTION_CANCEL = 113, /* obsolete */
CTDB_CONTROL_REGISTER_NOTIFY = 114,
CTDB_CONTROL_DEREGISTER_NOTIFY = 115,
CTDB_CONTROL_TRANS2_ACTIVE = 116, /* obsolete */
uint32_t lock_processes_per_db;
uint32_t rec_buffer_size_limit;
uint32_t queue_buffer_size;
+ uint32_t ip_alloc_algorithm;
+ uint32_t allow_mixed_versions;
};
struct ctdb_tickle_list {
struct ctdb_tickle_list *tickles;
struct ctdb_client_id *cid;
struct ctdb_addr_info *addr_info;
- uint32_t tid;
struct ctdb_transdb *transdb;
- const char *event_str;
struct ctdb_public_ip *pubip;
enum ctdb_event event;
double reclock_latency;
uint32_t role;
- const char *script;
struct ctdb_ban_state *ban_state;
struct ctdb_notify_data *notify;
uint64_t srvid;
uint32_t caps;
struct ctdb_public_ip_list *pubip_list;
struct ctdb_node_map *nodemap;
- struct ctdb_script_list *script_list;
const char *reclock_file;
struct ctdb_ban_state *ban_state;
uint64_t seqnum;
uint32_t client_id;
#define CTDB_CTRL_FLAG_NOREPLY 1
#define CTDB_CTRL_FLAG_OPCODE_SPECIFIC 0xFFFF0000
+/* Ugly overloading of this field... */
+#define CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE 0x00010000
uint32_t flags;
struct ctdb_req_control_data rdata;
};
TDB_DATA data;
};
+struct ctdb_req_keepalive {
+ uint32_t version;
+ uint32_t uptime;
+};
+
+
/* This is equivalent to server_id */
struct ctdb_server_id {
uint64_t pid;
struct ctdb_g_lock *lock;
};
+/*
+ * Eventd protocol
+ */
+
+enum ctdb_event_command {
+ CTDB_EVENT_COMMAND_RUN = 1,
+ CTDB_EVENT_COMMAND_STATUS = 2,
+ CTDB_EVENT_COMMAND_SCRIPT_LIST = 3,
+ CTDB_EVENT_COMMAND_SCRIPT_ENABLE = 4,
+ CTDB_EVENT_COMMAND_SCRIPT_DISABLE = 5,
+};
+
+enum ctdb_event_status_state {
+ CTDB_EVENT_LAST_RUN = 1,
+ CTDB_EVENT_LAST_PASS = 2,
+ CTDB_EVENT_LAST_FAIL = 3,
+};
+
+struct ctdb_event_request_run {
+ enum ctdb_event event;
+ uint32_t timeout;
+ const char *arg_str;
+};
+
+struct ctdb_event_request_status {
+ enum ctdb_event event;
+ enum ctdb_event_status_state state;
+};
+
+struct ctdb_event_request_script_enable {
+ const char *script_name;
+};
+
+struct ctdb_event_request_script_disable {
+ const char *script_name;
+};
+
+struct ctdb_event_request_data {
+ enum ctdb_event_command command;
+ union {
+ struct ctdb_event_request_run *run;
+ struct ctdb_event_request_status *status;
+ struct ctdb_event_request_script_enable *script_enable;
+ struct ctdb_event_request_script_disable *script_disable;
+ } data;
+};
+
+struct ctdb_event_reply_status {
+ int status;
+ struct ctdb_script_list *script_list;
+};
+
+struct ctdb_event_reply_script_list {
+ struct ctdb_script_list *script_list;
+};
+
+struct ctdb_event_reply_data {
+ enum ctdb_event_command command;
+ int32_t result;
+ union {
+ struct ctdb_event_reply_status *status;
+ struct ctdb_event_reply_script_list *script_list;
+ } data;
+};
+
+struct ctdb_event_header {
+ uint32_t length;
+ uint32_t reqid;
+};
+
+struct ctdb_event_request {
+ struct ctdb_event_header header;
+ struct ctdb_event_request_data rdata;
+};
+
+struct ctdb_event_reply {
+ struct ctdb_event_header header;
+ struct ctdb_event_reply_data rdata;
+};
+
#endif /* __CTDB_PROTOCOL_H__ */