root/include/crm/lrmd_events.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright 2012-2024 the Pacemaker project contributors
   3  *
   4  * The version control history for this file may have further details.
   5  *
   6  * This source code is licensed under the GNU Lesser General Public License
   7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
   8  */
   9 
  10 #ifndef PCMK__CRM_LRMD_EVENTS__H
  11 #define PCMK__CRM_LRMD_EVENTS__H
  12 
  13 #include <sys/types.h>          // time_t
  14 
  15 #include <glib.h>               // guint
  16 #include <crm/common/results.h> // enum ocf_exitcode
  17 
  18 #ifdef __cplusplus
  19 extern "C" {
  20 #endif
  21 
  22 /**
  23  * \file
  24  * \brief Resource agent executor events
  25  * \ingroup lrmd
  26  */
  27 
  28 enum lrmd_callback_event {
  29     lrmd_event_register,
  30     lrmd_event_unregister,
  31     lrmd_event_exec_complete,
  32     lrmd_event_disconnect,
  33     lrmd_event_connect,
  34     lrmd_event_poke,
  35     lrmd_event_new_client,
  36 };
  37 
  38 typedef struct lrmd_event_data_s {
  39     /*! Type of event, register, unregister, call_completed... */
  40     enum lrmd_callback_event type;
  41 
  42     /*! The resource this event occurred on. */
  43     const char *rsc_id;
  44     /*! The action performed, start, stop, monitor... */
  45     const char *op_type;
  46     /*! The user data passed by caller of exec() API function */
  47     const char *user_data;
  48 
  49     /*! The client api call id associated with this event */
  50     int call_id;
  51 
  52     /*! The operation's timeout period in ms. */
  53     int timeout;
  54 
  55     /*! The operation's recurring interval in ms. */
  56     guint interval_ms;
  57 
  58     /*! The operation's start delay value in ms. */
  59     int start_delay;
  60 
  61     /*! This operation that just completed is on a deleted rsc. */
  62     int rsc_deleted;
  63 
  64     /*! The executed ra return code mapped to OCF */
  65     enum ocf_exitcode rc;
  66 
  67     /*! The executor status returned for exec_complete events */
  68     int op_status;
  69 
  70     /*! stdout from resource agent operation */
  71     const char *output;
  72 
  73     /*! Timestamp of when op ran */
  74     time_t t_run;
  75 
  76     /*! Timestamp of last rc change */
  77     time_t t_rcchange;
  78 
  79     /*! Time in length op took to execute */
  80     unsigned int exec_time;
  81 
  82     /*! Time in length spent in queue */
  83     unsigned int queue_time;
  84 
  85     /*! int connection result. Used for connection and poke events */
  86     int connection_rc;
  87 
  88     /* This is a GHashTable containing the
  89      * parameters given to the operation */
  90     void *params;
  91 
  92     /*! client node name associated with this connection
  93      * (used to match actions to the proper client when there are multiple)
  94      */
  95     const char *remote_nodename;
  96 
  97     /*! exit failure reason string from resource agent operation */
  98     const char *exit_reason;
  99 } lrmd_event_data_t;
 100 
 101 lrmd_event_data_t *lrmd_new_event(const char *rsc_id, const char *task,
 102                                   guint interval_ms);
 103 lrmd_event_data_t *lrmd_copy_event(lrmd_event_data_t *event);
 104 void lrmd_free_event(lrmd_event_data_t *event);
 105 
 106 #ifdef __cplusplus
 107 }
 108 #endif
 109 
 110 #endif // PCMK__CRM_LRMD_EVENTS__H

/* [previous][next][first][last][top][bottom][index][help] */