pacemaker
2.0.3-4b1f869f0f
Scalable High-Availability cluster resource manager
include
crm
common
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
22
enum
crm_alert_flags
{
23
crm_alert_none
= 0x0000,
24
crm_alert_node
= 0x0001,
25
crm_alert_fencing
= 0x0002,
26
crm_alert_resource
= 0x0004,
27
crm_alert_attribute
= 0x0008,
28
crm_alert_default
=
crm_alert_node
|
crm_alert_fencing
|
crm_alert_resource
29
};
30
31
typedef
struct
{
32
char
*
id
;
33
char
*
path
;
34
char
*
tstamp_format
;
35
char
*
recipient
;
36
char
**
select_attribute_name
;
37
GHashTable *
envvars
;
38
int
timeout
;
39
uint32_t
flags
;
40
}
crm_alert_entry_t
;
41
42
enum
crm_alert_keys_e
{
43
CRM_alert_recipient
= 0,
44
CRM_alert_node
,
45
CRM_alert_nodeid
,
46
CRM_alert_rsc
,
47
CRM_alert_task
,
48
CRM_alert_interval
,
49
CRM_alert_desc
,
50
CRM_alert_status
,
51
CRM_alert_target_rc
,
52
CRM_alert_rc
,
53
CRM_alert_kind
,
54
CRM_alert_version
,
55
CRM_alert_node_sequence
,
56
CRM_alert_timestamp
,
57
CRM_alert_attribute_name
,
58
CRM_alert_attribute_value
,
59
CRM_alert_timestamp_epoch
,
60
CRM_alert_timestamp_usec
,
61
CRM_alert_exec_time
,
62
CRM_alert_select_kind
,
63
CRM_alert_select_attribute_name
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
71
crm_alert_entry_t
*
crm_dup_alert_entry
(
crm_alert_entry_t
*entry);
72
crm_alert_entry_t
*
crm_alert_entry_new
(
const
char
*
id
,
const
char
*path);
73
void
crm_free_alert_entry
(
crm_alert_entry_t
*entry);
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
);
79
void
crm_set_envvar_list
(
crm_alert_entry_t
*entry);
80
void
crm_unset_envvar_list
(
crm_alert_entry_t
*entry);
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"
;
93
case
crm_alert_attribute
:
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
Generated on Sun Jan 12 2020 12:08:03 for pacemaker by
1.8.16