pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
compat.h
Go to the documentation of this file.
1/*
2 * Copyright 2004-2024 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__CRM_CLUSTER_COMPAT__H
11# define PCMK__CRM_CLUSTER_COMPAT__H
12
13#include <stdint.h> // uint32_t
14#include <sys/types.h> // size_t
15
16#include <glib.h> // gboolean, guint
17#include <libxml/tree.h> // xmlNode
18
19#if SUPPORT_COROSYNC
20#include <corosync/cpg.h> // cpg_handle_t
21#endif // SUPPORT_COROSYNC
22
23#include <crm/cluster.h> // crm_node_t
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
44
45// NOTE: sbd (as of at least 1.5.2) uses this
48
50crm_node_t *crm_get_peer(unsigned int id, const char *uname);
51
53crm_node_t *crm_get_peer_full(unsigned int id, const char *uname, int flags);
54
56int crm_terminate_member(int nodeid, const char *uname, void *unused);
57
59int crm_terminate_member_no_mainloop(int nodeid, const char *uname,
60 int *connection);
61
67void set_uuid(xmlNode *xml, const char *attr, crm_node_t *node);
68
69#if SUPPORT_COROSYNC
70
72gboolean cluster_connect_cpg(pcmk_cluster_t *cluster);
73
76
78uint32_t get_local_nodeid(cpg_handle_t handle);
79
81void pcmk_cpg_membership(cpg_handle_t handle,
82 const struct cpg_name *group_name,
83 const struct cpg_address *member_list,
84 size_t member_list_entries,
85 const struct cpg_address *left_list,
86 size_t left_list_entries,
87 const struct cpg_address *joined_list,
88 size_t joined_list_entries);
89
91gboolean crm_is_corosync_peer_active(const crm_node_t * node);
92
94gboolean send_cluster_text(enum crm_ais_msg_class msg_class, const char *data,
95 gboolean local, const crm_node_t *node,
96 enum crm_ais_msg_types dest);
97
99char *pcmk_message_common_cs(cpg_handle_t handle, uint32_t nodeid, uint32_t pid,
100 void *msg, uint32_t *kind, const char **from);
101
102#endif // SUPPORT_COROSYNC
103
104// NOTE: sbd (as of at least 1.5.2) uses this
106gboolean crm_cluster_connect(pcmk_cluster_t *cluster);
107
110
113
115void crm_remote_peer_cache_refresh(xmlNode *cib);
116
118crm_node_t *crm_remote_peer_get(const char *node_name);
119
121void crm_remote_peer_cache_remove(const char *node_name);
122
124gboolean crm_is_peer_active(const crm_node_t *node);
125
127guint crm_active_peers(void);
128
130guint reap_crm_member(uint32_t id, const char *name);
131
132// NOTE: sbd (as of at least 1.5.2) uses this enum
136 // NOTE: sbd (as of at least 1.5.2) uses this value
138
140
141 // NOTE: sbd (as of at least 1.5.2) uses this value
143};
145
146// NOTE: sbd (as of at least 1.5.2) uses this
149
150// NOTE: sbd (as of at least 1.5.2) uses this
153
155gboolean is_corosync_cluster(void);
156
158void crm_peer_init(void);
159
161void crm_peer_destroy(void);
162
164gboolean send_cluster_message(const crm_node_t *node,
165 enum crm_ais_msg_types service,
166 const xmlNode *data, gboolean ordered);
167
169const char *crm_peer_uuid(crm_node_t *node);
170
172enum crm_ais_msg_types text2msg_type(const char *text);
173
175char *get_node_name(uint32_t nodeid);
176
178const char *get_local_node_name(void);
179
181void crm_set_autoreap(gboolean enable);
182
184void crm_set_status_callback(void (*dispatch)(enum crm_status_type,
185 crm_node_t *, const void *));
186
188const char *crm_peer_uname(const char *uuid);
189
190#ifdef __cplusplus
191}
192#endif
193
194#endif // PCMK_CLUSTER_COMPAT__H
const char * name
Definition cib.c:26
crm_ais_msg_types
Definition cluster.h:197
crm_ais_msg_class
Definition cluster.h:189
@ pcmk_cluster_layer_invalid
Invalid cluster layer.
Definition cluster.h:227
@ pcmk_cluster_layer_corosync
Corosync Cluster Engine.
Definition cluster.h:228
@ pcmk_cluster_layer_unknown
Unknown cluster layer.
Definition cluster.h:226
crm_status_type
Definition cluster.h:214
uint64_t flags
Definition remote.c:3
void crm_cluster_disconnect(pcmk_cluster_t *cluster)
Definition cluster.c:483
gboolean is_corosync_cluster(void)
Definition cluster.c:510
int crm_remote_peer_cache_size(void)
gboolean crm_cluster_connect(pcmk_cluster_t *cluster)
Definition cluster.c:477
void set_uuid(xmlNode *xml, const char *attr, crm_node_t *node)
Definition cluster.c:471
void crm_set_autoreap(gboolean enable)
void crm_remote_peer_cache_refresh(xmlNode *cib)
const char * get_local_node_name(void)
Definition cluster.c:535
int crm_terminate_member(int nodeid, const char *uname, void *unused)
guint reap_crm_member(uint32_t id, const char *name)
const char * crm_peer_uuid(crm_node_t *node)
Definition cluster.c:523
enum cluster_type_e get_cluster_type(void)
Definition cluster.c:504
gboolean send_cluster_message(const crm_node_t *node, enum crm_ais_msg_types service, const xmlNode *data, gboolean ordered)
Definition cluster.c:516
void crm_set_status_callback(void(*dispatch)(enum crm_status_type, crm_node_t *, const void *))
crm_node_t * crm_get_peer(unsigned int id, const char *uname)
const char * crm_peer_uname(const char *uuid)
Definition cluster.c:541
crm_node_t * crm_get_peer_full(unsigned int id, const char *uname, int flags)
int crm_terminate_member_no_mainloop(int nodeid, const char *uname, int *connection)
char * get_node_name(uint32_t nodeid)
Definition cluster.c:529
const char * name_for_cluster_type(enum cluster_type_e type)
Definition cluster.c:489
void crm_remote_peer_cache_remove(const char *node_name)
cluster_type_e
Definition compat.h:135
@ pcmk_cluster_unknown
Definition compat.h:137
@ pcmk_cluster_invalid
Definition compat.h:139
@ pcmk_cluster_corosync
Definition compat.h:142
crm_get_peer_flags
Definition compat.h:39
@ CRM_GET_PEER_CLUSTER
Definition compat.h:40
@ CRM_GET_PEER_ANY
Definition compat.h:42
@ CRM_GET_PEER_REMOTE
Definition compat.h:41
pcmk_cluster_t crm_cluster_t
Definition compat.h:47
enum crm_ais_msg_types text2msg_type(const char *text)
Definition cpg.c:1164
gboolean crm_is_peer_active(const crm_node_t *node)
void crm_peer_init(void)
void crm_peer_destroy(void)
guint crm_active_peers(void)
crm_node_t * crm_remote_peer_get(const char *node_name)
gboolean crm_is_corosync_peer_active(const crm_node_t *node)
Definition corosync.c:819
gboolean send_cluster_text(enum crm_ais_msg_class msg_class, const char *data, gboolean local, const crm_node_t *node, enum crm_ais_msg_types dest)
Definition cpg.c:1143
enum crm_ais_msg_types type
Definition cpg.c:3
char uname[MAX_NAME]
Definition cpg.c:5
char data[0]
Definition cpg.c:10
uint32_t get_local_nodeid(cpg_handle_t handle)
Definition cpg.c:1122
void pcmk_cpg_membership(cpg_handle_t handle, const struct cpg_name *group_name, const struct cpg_address *member_list, size_t member_list_entries, const struct cpg_address *left_list, size_t left_list_entries, const struct cpg_address *joined_list, size_t joined_list_entries)
Definition cpg.c:1128
gboolean local
Definition cpg.c:2
gboolean cluster_connect_cpg(pcmk_cluster_t *cluster)
Definition cpg.c:1110
char * pcmk_message_common_cs(cpg_handle_t handle, uint32_t nodeid, uint32_t pid, void *content, uint32_t *kind, const char **from)
Definition cpg.c:1157
uint32_t pid
Definition cpg.c:1
void cluster_disconnect_cpg(pcmk_cluster_t *cluster)
Definition cpg.c:1116