pacemaker  2.0.3-4b1f869f0f
Scalable High-Availability cluster resource manager
alerts_internal.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 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 ALERT_INTERNAL_H
11 #define ALERT_INTERNAL_H
12 
13 #include <glib.h>
14 #include <stdbool.h>
15 
16 /* Default-Timeout to use before killing a alerts script (in milliseconds) */
17 # define CRM_ALERT_DEFAULT_TIMEOUT_MS (30000)
18 
19 /* Default-Format-String used to pass timestamps to the alerts scripts */
20 # define CRM_ALERT_DEFAULT_TSTAMP_FORMAT "%H:%M:%S.%06N"
21 
23  crm_alert_none = 0x0000,
24  crm_alert_node = 0x0001,
29 };
30 
31 typedef struct {
32  char *id;
33  char *path;
35  char *recipient;
37  GHashTable *envvars;
38  int timeout;
39  uint32_t flags;
41 
64 };
65 
66 #define CRM_ALERT_INTERNAL_KEY_MAX 19
67 #define CRM_ALERT_NODE_SEQUENCE "CRM_alert_node_sequence"
68 
69 extern const char *crm_alert_keys[CRM_ALERT_INTERNAL_KEY_MAX][3];
70 
72 crm_alert_entry_t *crm_alert_entry_new(const char *id, const char *path);
74 void crm_insert_alert_key(GHashTable *table, enum crm_alert_keys_e name,
75  const char *value);
76 void crm_insert_alert_key_int(GHashTable *table, enum crm_alert_keys_e name,
77  int value);
78 void crm_unset_alert_keys(void);
81 bool crm_patchset_contains_alert(xmlNode *msg, bool config);
82 
83 static inline const char *
84 crm_alert_flag2text(enum crm_alert_flags flag)
85 {
86  switch (flag) {
87  case crm_alert_node:
88  return "node";
89  case crm_alert_fencing:
90  return "fencing";
91  case crm_alert_resource:
92  return "resource";
94  return "attribute";
95  default:
96  return "unknown";
97  }
98 }
99 #endif
crm_alert_entry_t::id
char * id
Definition: alerts_internal.h:32
crm_alert_keys
const char * crm_alert_keys[CRM_ALERT_INTERNAL_KEY_MAX][3]
Definition: alerts.c:19
CRM_alert_timestamp_epoch
Definition: alerts_internal.h:59
crm_patchset_contains_alert
bool crm_patchset_contains_alert(xmlNode *msg, bool config)
Definition: alerts.c:206
crm_free_alert_entry
void crm_free_alert_entry(crm_alert_entry_t *entry)
Definition: alerts.c:67
crm_insert_alert_key_int
void crm_insert_alert_key_int(GHashTable *table, enum crm_alert_keys_e name, int value)
Definition: alerts.c:140
crm_alert_entry_t::select_attribute_name
char ** select_attribute_name
Definition: alerts_internal.h:36
CRM_alert_kind
Definition: alerts_internal.h:53
crm_alert_attribute
Definition: alerts_internal.h:27
crm_alert_entry_t
Definition: alerts_internal.h:31
crm_unset_alert_keys
void crm_unset_alert_keys(void)
Definition: alerts.c:112
crm_alert_node
Definition: alerts_internal.h:24
CRM_alert_select_attribute_name
Definition: alerts_internal.h:63
CRM_alert_attribute_name
Definition: alerts_internal.h:57
crm_set_envvar_list
void crm_set_envvar_list(crm_alert_entry_t *entry)
Definition: alerts.c:165
CRM_alert_task
Definition: alerts_internal.h:47
crm_alert_entry_t::envvars
GHashTable * envvars
Definition: alerts_internal.h:37
CRM_ALERT_INTERNAL_KEY_MAX
#define CRM_ALERT_INTERNAL_KEY_MAX
Definition: alerts_internal.h:66
crm_alert_default
Definition: alerts_internal.h:28
CRM_alert_node
Definition: alerts_internal.h:44
crm_alert_flags
crm_alert_flags
Definition: alerts_internal.h:22
crm_alert_entry_t::recipient
char * recipient
Definition: alerts_internal.h:35
CRM_alert_timestamp_usec
Definition: alerts_internal.h:60
crm_alert_entry_t::path
char * path
Definition: alerts_internal.h:33
CRM_alert_select_kind
Definition: alerts_internal.h:62
CRM_alert_exec_time
Definition: alerts_internal.h:61
crm_alert_entry_new
crm_alert_entry_t * crm_alert_entry_new(const char *id, const char *path)
Create a new alert entry structure.
Definition: alerts.c:54
crm_alert_fencing
Definition: alerts_internal.h:25
crm_alert_entry_t::tstamp_format
char * tstamp_format
Definition: alerts_internal.h:34
CRM_alert_timestamp
Definition: alerts_internal.h:56
CRM_alert_attribute_value
Definition: alerts_internal.h:58
CRM_alert_status
Definition: alerts_internal.h:50
CRM_alert_interval
Definition: alerts_internal.h:48
CRM_alert_version
Definition: alerts_internal.h:54
crm_unset_envvar_list
void crm_unset_envvar_list(crm_alert_entry_t *entry)
Definition: alerts.c:176
CRM_alert_recipient
Definition: alerts_internal.h:43
crm_dup_alert_entry
crm_alert_entry_t * crm_dup_alert_entry(crm_alert_entry_t *entry)
Definition: alerts.c:92
crm_insert_alert_key
void crm_insert_alert_key(GHashTable *table, enum crm_alert_keys_e name, const char *value)
Definition: alerts.c:126
CRM_alert_rc
Definition: alerts_internal.h:52
CRM_alert_rsc
Definition: alerts_internal.h:46
CRM_alert_desc
Definition: alerts_internal.h:49
crm_alert_entry_t::timeout
int timeout
Definition: alerts_internal.h:38
crm_alert_entry_t::flags
uint32_t flags
Definition: alerts_internal.h:39
CRM_alert_target_rc
Definition: alerts_internal.h:51
crm_alert_none
Definition: alerts_internal.h:23
crm_alert_resource
Definition: alerts_internal.h:26
crm_alert_keys_e
crm_alert_keys_e
Definition: alerts_internal.h:42
CRM_alert_nodeid
Definition: alerts_internal.h:45
CRM_alert_node_sequence
Definition: alerts_internal.h:55