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