root/include/crm/lrmd_events.h

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

INCLUDED FROM


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

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