summaryrefslogtreecommitdiff
path: root/ctdb/protocol/protocol.h
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2016-08-31 15:49:27 +1000
committerAmitay Isaacs <amitay@samba.org>2016-12-18 14:23:22 +0100
commitc0c34337d93aca4d683bbe273c67a2303419312d (patch)
tree3957b8759f1acb962feb4657313f31467bcf5951 /ctdb/protocol/protocol.h
parent7ae530c2ab4cf37a51f32bcc6c94628f62493305 (diff)
downloadsamba-c0c34337d93aca4d683bbe273c67a2303419312d.tar.gz
ctdb-protocol: Add data types for eventd communication
Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb/protocol/protocol.h')
-rw-r--r--ctdb/protocol/protocol.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/ctdb/protocol/protocol.h b/ctdb/protocol/protocol.h
index 73af735f55a..169602ca82c 100644
--- a/ctdb/protocol/protocol.h
+++ b/ctdb/protocol/protocol.h
@@ -1002,4 +1002,84 @@ struct ctdb_g_lock_list {
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__ */