root/daemons/controld/controld_transition.h

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

INCLUDED FROM


   1 /*
   2  * Copyright 2004-2024 the Pacemaker project contributors
   3  *
   4  * This source code is licensed under the GNU Lesser General Public License
   5  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
   6  */
   7 
   8 #ifndef TENGINE__H
   9 #define TENGINE__H
  10 
  11 #include <glib.h>                   // gboolean
  12 #include <libxml/tree.h>            // xmlNode
  13 
  14 #include <crm/cluster/internal.h>   // pcmk__node_status_t
  15 #include <crm/common/mainloop.h>
  16 #include <crm/stonith-ng.h>
  17 #include <crm/services.h>
  18 #include <pacemaker-internal.h>
  19 
  20 /* tengine */
  21 pcmk__graph_action_t *match_down_event(const char *target);
  22 pcmk__graph_action_t *get_cancel_action(const char *id, const char *node);
  23 bool confirm_cancel_action(const char *id, const char *node_id);
  24 
  25 void controld_record_action_timeout(pcmk__graph_action_t *action);
  26 
  27 void controld_destroy_outside_events_table(void);
  28 void controld_remove_all_outside_events(void);
  29 
  30 gboolean fail_incompletable_actions(pcmk__graph_t *graph, const char *down_node);
  31 void process_graph_event(xmlNode *event, const char *event_node);
  32 
  33 /* utils */
  34 pcmk__graph_action_t *controld_get_action(int id);
  35 gboolean stop_te_timer(pcmk__graph_action_t *action);
  36 const char *get_rsc_state(const char *task, enum pcmk_exec_status status);
  37 
  38 void process_te_message(xmlNode *msg, xmlNode *xml_data);
  39 
  40 void controld_register_graph_functions(void);
  41 
  42 void notify_crmd(pcmk__graph_t * graph);
  43 
  44 void cib_action_updated(xmlNode *msg, int call_id, int rc, xmlNode *output,
  45                         void *user_data);
  46 gboolean action_timer_callback(gpointer data);
  47 void te_update_diff(const char *event, xmlNode *msg);
  48 
  49 void controld_init_transition_trigger(void);
  50 void controld_destroy_transition_trigger(void);
  51 
  52 void controld_trigger_graph_as(const char *fn, int line);
  53 void abort_after_delay(int abort_priority, enum pcmk__graph_next abort_action,
  54                        const char *abort_text, guint delay_ms);
  55 void controld_node_pending_timer(const pcmk__node_status_t *node);
  56 void controld_free_node_pending_timers(void);
  57 void abort_transition_graph(int abort_priority,
  58                             enum pcmk__graph_next abort_action,
  59                             const char *abort_text, const xmlNode *reason,
  60                             const char *fn, int line);
  61 
  62 #  define trigger_graph()   controld_trigger_graph_as(__func__, __LINE__)
  63 #  define abort_transition(pri, action, text, reason)                   \
  64         abort_transition_graph(pri, action, text, reason,__func__,__LINE__);
  65 
  66 void te_action_confirmed(pcmk__graph_action_t *action, pcmk__graph_t *graph);
  67 void te_reset_job_counts(void);
  68 
  69 #endif

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