pacemaker 2.1.5-a3f44794f94
Scalable High-Availability cluster resource manager
alerts_internal.h
Go to the documentation of this file.
1/*
2 * Copyright 2015-2022 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__ALERT_INTERNAL__H
11#define PCMK__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 PCMK__ALERT_DEFAULT_TIMEOUT_MS (30000)
18
19/* Default-Format-String used to pass timestamps to the alerts scripts */
20# define PCMK__ALERT_DEFAULT_TSTAMP_FORMAT "%H:%M:%S.%06N"
21
24 pcmk__alert_node = (1 << 0),
30};
31
32typedef struct {
33 char *id;
34 char *path;
36 char *recipient;
38 GHashTable *envvars;
40 uint32_t flags;
42
65};
66
67#define PCMK__ALERT_INTERNAL_KEY_MAX 19
68#define PCMK__ALERT_NODE_SEQUENCE "CRM_alert_node_sequence"
69
71
73pcmk__alert_t *pcmk__alert_new(const char *id, const char *path);
75void pcmk__add_alert_key(GHashTable *table, enum pcmk__alert_keys_e name,
76 const char *value);
77void pcmk__add_alert_key_int(GHashTable *table, enum pcmk__alert_keys_e name,
78 int value);
79bool pcmk__alert_in_patchset(xmlNode *msg, bool config);
80
81static inline const char *
82pcmk__alert_flag2text(enum pcmk__alert_flags flag)
83{
84 switch (flag) {
85 case pcmk__alert_node: return "node";
86 case pcmk__alert_fencing: return "fencing";
87 case pcmk__alert_resource: return "resource";
88 case pcmk__alert_attribute: return "attribute";
89 default: return "unknown";
90 }
91}
92#endif
void pcmk__free_alert(pcmk__alert_t *entry)
Definition: alerts.c:108
const char * pcmk__alert_keys[PCMK__ALERT_INTERNAL_KEY_MAX][3]
Definition: alerts.c:22
pcmk__alert_t * pcmk__alert_new(const char *id, const char *path)
Create a new alert entry structure.
Definition: alerts.c:95
bool pcmk__alert_in_patchset(xmlNode *msg, bool config)
Definition: alerts.c:195
pcmk__alert_t * pcmk__dup_alert(const pcmk__alert_t *entry)
Definition: alerts.c:133
pcmk__alert_keys_e
@ PCMK__alert_key_node
@ PCMK__alert_key_task
@ PCMK__alert_key_timestamp_epoch
@ PCMK__alert_key_rc
@ PCMK__alert_key_status
@ PCMK__alert_key_nodeid
@ PCMK__alert_key_interval
@ PCMK__alert_key_timestamp
@ PCMK__alert_key_select_attribute_name
@ PCMK__alert_key_attribute_name
@ PCMK__alert_key_target_rc
@ PCMK__alert_key_timestamp_usec
@ PCMK__alert_key_select_kind
@ PCMK__alert_key_kind
@ PCMK__alert_key_node_sequence
@ PCMK__alert_key_rsc
@ PCMK__alert_key_recipient
@ PCMK__alert_key_exec_time
@ PCMK__alert_key_version
@ PCMK__alert_key_desc
@ PCMK__alert_key_attribute_value
void pcmk__add_alert_key_int(GHashTable *table, enum pcmk__alert_keys_e name, int value)
Definition: alerts.c:163
pcmk__alert_flags
@ pcmk__alert_resource
@ pcmk__alert_default
@ pcmk__alert_none
@ pcmk__alert_attribute
@ pcmk__alert_fencing
@ pcmk__alert_node
#define PCMK__ALERT_INTERNAL_KEY_MAX
void pcmk__add_alert_key(GHashTable *table, enum pcmk__alert_keys_e name, const char *value)
Definition: alerts.c:149
const char * path
Definition: cib.c:26
const char * name
Definition: cib.c:24
char ** select_attribute_name
char * tstamp_format
GHashTable * envvars