summaryrefslogtreecommitdiffstats
path: root/include/crm/lrmd_events.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/crm/lrmd_events.h')
-rw-r--r--include/crm/lrmd_events.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/include/crm/lrmd_events.h b/include/crm/lrmd_events.h
new file mode 100644
index 0000000..3a1c500
--- /dev/null
+++ b/include/crm/lrmd_events.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2012-2023 the Pacemaker project contributors
+ *
+ * The version control history for this file may have further details.
+ *
+ * This source code is licensed under the GNU Lesser General Public License
+ * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
+ */
+
+#ifndef PCMK__CRM_LRMD_EVENTS__H
+# define PCMK__CRM_LRMD_EVENTS__H
+
+#include <glib.h> // guint
+#include <crm/common/results.h> // enum ocf_exitcode
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \file
+ * \brief Resource agent executor events
+ * \ingroup lrmd
+ */
+
+enum lrmd_callback_event {
+ lrmd_event_register,
+ lrmd_event_unregister,
+ lrmd_event_exec_complete,
+ lrmd_event_disconnect,
+ lrmd_event_connect,
+ lrmd_event_poke,
+ lrmd_event_new_client,
+};
+
+typedef struct lrmd_event_data_s {
+ /*! Type of event, register, unregister, call_completed... */
+ enum lrmd_callback_event type;
+
+ /*! The resource this event occurred on. */
+ const char *rsc_id;
+ /*! The action performed, start, stop, monitor... */
+ const char *op_type;
+ /*! The user data passed by caller of exec() API function */
+ const char *user_data;
+
+ /*! The client api call id associated with this event */
+ int call_id;
+
+ /*! The operation's timeout period in ms. */
+ int timeout;
+
+ /*! The operation's recurring interval in ms. */
+ guint interval_ms;
+
+ /*! The operation's start delay value in ms. */
+ int start_delay;
+
+ /*! This operation that just completed is on a deleted rsc. */
+ int rsc_deleted;
+
+ /*! The executed ra return code mapped to OCF */
+ enum ocf_exitcode rc;
+
+ /*! The executor status returned for exec_complete events */
+ int op_status;
+
+ /*! stdout from resource agent operation */
+ const char *output;
+
+ /*! Timestamp of when op ran */
+ unsigned int t_run;
+
+ /*! Timestamp of last rc change */
+ unsigned int t_rcchange;
+
+ /*! Time in length op took to execute */
+ unsigned int exec_time;
+
+ /*! Time in length spent in queue */
+ unsigned int queue_time;
+
+ /*! int connection result. Used for connection and poke events */
+ int connection_rc;
+
+ /* This is a GHashTable containing the
+ * parameters given to the operation */
+ void *params;
+
+ /*! client node name associated with this connection
+ * (used to match actions to the proper client when there are multiple)
+ */
+ const char *remote_nodename;
+
+ /*! exit failure reason string from resource agent operation */
+ const char *exit_reason;
+} lrmd_event_data_t;
+
+lrmd_event_data_t *lrmd_new_event(const char *rsc_id, const char *task,
+ guint interval_ms);
+lrmd_event_data_t *lrmd_copy_event(lrmd_event_data_t *event);
+void lrmd_free_event(lrmd_event_data_t *event);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // PCMK__CRM_LRMD_EVENTS__H