diff options
Diffstat (limited to 'include/crm/lrmd_events.h')
-rw-r--r-- | include/crm/lrmd_events.h | 108 |
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 |