pacemaker
2.1.7-0f7f88312f
Scalable High-Availability cluster resource manager
|
#include <stdint.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/common/xml.h>
#include <crm/common/util.h>
#include <crm/cluster/compat.h>
Go to the source code of this file.
Data Structures | |
struct | crm_peer_node_s |
struct | crm_cluster_s |
Macros | |
#define | CRM_NODE_LOST "lost" |
#define | CRM_NODE_MEMBER "member" |
Typedefs | |
typedef struct crm_peer_node_s | crm_node_t |
typedef struct crm_cluster_s | crm_cluster_t |
Enumerations | |
enum | crm_join_phase { crm_join_nack_quiet = -2, crm_join_nack = -1, crm_join_none = 0, crm_join_welcomed = 1, crm_join_integrated = 2, crm_join_finalized = 3, crm_join_confirmed = 4 } |
enum | crm_node_flags { crm_remote_node = 0x0001, crm_node_dirty = 0x0010 } |
enum | crm_ais_msg_class { crm_class_cluster = 0 } |
enum | crm_ais_msg_types { crm_msg_none = 0, crm_msg_ais = 1, crm_msg_lrmd = 2, crm_msg_cib = 3, crm_msg_crmd = 4, crm_msg_attrd = 5, crm_msg_stonithd = 6, crm_msg_te = 7, crm_msg_pe = 8, crm_msg_stonith_ng = 9 } |
enum | crm_get_peer_flags { CRM_GET_PEER_CLUSTER = 0x0001, CRM_GET_PEER_REMOTE = 0x0002, CRM_GET_PEER_ANY = CRM_GET_PEER_CLUSTER|CRM_GET_PEER_REMOTE } |
enum | crm_status_type { crm_status_uname, crm_status_nstate, crm_status_processes } |
enum | cluster_type_e { pcmk_cluster_unknown = 0x0001, pcmk_cluster_invalid = 0x0002, pcmk_cluster_corosync = 0x0020 } |
Functions | |
void | crm_peer_init (void) |
void | crm_peer_destroy (void) |
gboolean | crm_cluster_connect (crm_cluster_t *cluster) |
Connect to the cluster layer. More... | |
void | crm_cluster_disconnect (crm_cluster_t *cluster) |
Disconnect from the cluster layer. More... | |
crm_cluster_t * | pcmk_cluster_new (void) |
Allocate a new crm_cluster_t object. More... | |
void | pcmk_cluster_free (crm_cluster_t *cluster) |
Free a crm_cluster_t object and its dynamically allocated members. More... | |
gboolean | send_cluster_message (const crm_node_t *node, enum crm_ais_msg_types service, const xmlNode *data, gboolean ordered) |
Send an XML message via the cluster messaging layer. More... | |
int | crm_remote_peer_cache_size (void) |
void | crm_remote_peer_cache_refresh (xmlNode *cib) |
Repopulate the remote peer cache based on CIB XML. More... | |
crm_node_t * | crm_remote_peer_get (const char *node_name) |
Get a remote node peer cache entry, creating it if necessary. More... | |
void | crm_remote_peer_cache_remove (const char *node_name) |
crm_node_t * | crm_get_peer_full (unsigned int id, const char *uname, int flags) |
Get a node cache entry (cluster or Pacemaker Remote) More... | |
crm_node_t * | crm_get_peer (unsigned int id, const char *uname) |
Get a cluster node cache entry. More... | |
guint | crm_active_peers (void) |
gboolean | crm_is_peer_active (const crm_node_t *node) |
guint | reap_crm_member (uint32_t id, const char *name) |
Remove all peer cache entries matching a node ID and/or uname. More... | |
const char * | crm_peer_uuid (crm_node_t *node) |
Get (and set if needed) a node's UUID. More... | |
const char * | crm_peer_uname (const char *uuid) |
Get the node name corresponding to a node UUID. More... | |
enum crm_ais_msg_types | text2msg_type (const char *text) |
Get the message type equivalent of a string. More... | |
void | crm_set_status_callback (void(*dispatch)(enum crm_status_type, crm_node_t *, const void *)) |
Set a client function that will be called after peer status changes. More... | |
void | crm_set_autoreap (gboolean autoreap) |
Tell the library whether to automatically reap lost nodes. More... | |
enum cluster_type_e | get_cluster_type (void) |
Get (and validate) the local cluster type. More... | |
const char * | name_for_cluster_type (enum cluster_type_e type) |
Get a log-friendly string equivalent of a cluster type. More... | |
gboolean | is_corosync_cluster (void) |
Check whether the local cluster is a Corosync cluster. More... | |
const char * | get_local_node_name (void) |
Get the local node's name. More... | |
char * | get_node_name (uint32_t nodeid) |
Get the node name corresponding to a cluster node ID. More... | |
Variables | |
gboolean | crm_have_quorum |
GHashTable * | crm_peer_cache |
GHashTable * | crm_remote_peer_cache |
unsigned long long | crm_peer_seq |
typedef struct crm_cluster_s crm_cluster_t |
typedef struct crm_peer_node_s crm_node_t |
enum cluster_type_e |
enum crm_ais_msg_class |
enum crm_ais_msg_types |
enum crm_get_peer_flags |
enum crm_join_phase |
enum crm_node_flags |
enum crm_status_type |
guint crm_active_peers | ( | void | ) |
Definition at line 375 of file membership.c.
gboolean crm_cluster_connect | ( | crm_cluster_t * | cluster | ) |
void crm_cluster_disconnect | ( | crm_cluster_t * | cluster | ) |
crm_node_t* crm_get_peer | ( | unsigned int | id, |
const char * | uname | ||
) |
Get a cluster node cache entry.
[in] | id | If not 0, cluster node ID to search for |
[in] | uname | If not NULL, node name to search for |
Definition at line 814 of file membership.c.
crm_node_t* crm_get_peer_full | ( | unsigned int | id, |
const char * | uname, | ||
int | flags | ||
) |
Get a node cache entry (cluster or Pacemaker Remote)
[in] | id | If not 0, cluster node ID to search for |
[in] | uname | If not NULL, node name to search for |
[in] | flags | Bitmask of enum crm_get_peer_flags |
Definition at line 565 of file membership.c.
gboolean crm_is_peer_active | ( | const crm_node_t * | node | ) |
Definition at line 282 of file membership.c.
void crm_peer_destroy | ( | void | ) |
Definition at line 417 of file membership.c.
void crm_peer_init | ( | void | ) |
Definition at line 401 of file membership.c.
const char* crm_peer_uname | ( | const char * | uuid | ) |
const char* crm_peer_uuid | ( | crm_node_t * | peer | ) |
void crm_remote_peer_cache_refresh | ( | xmlNode * | cib | ) |
Repopulate the remote peer cache based on CIB XML.
[in] | xmlNode | CIB XML to parse |
Definition at line 244 of file membership.c.
void crm_remote_peer_cache_remove | ( | const char * | node_name | ) |
Definition at line 147 of file membership.c.
int crm_remote_peer_cache_size | ( | void | ) |
Definition at line 87 of file membership.c.
crm_node_t* crm_remote_peer_get | ( | const char * | node_name | ) |
Get a remote node peer cache entry, creating it if necessary.
[in] | node_name | Name of remote node |
Definition at line 107 of file membership.c.
void crm_set_autoreap | ( | gboolean | autoreap | ) |
Tell the library whether to automatically reap lost nodes.
If TRUE (the default), calling crm_update_peer_proc() will also update the peer state to CRM_NODE_MEMBER or CRM_NODE_LOST, and pcmk__update_peer_state() will reap peers whose state changes to anything other than CRM_NODE_MEMBER. Callers should leave this enabled unless they plan to manage the cache separately on their own.
[in] | autoreap | TRUE to enable automatic reaping, FALSE to disable |
Definition at line 471 of file membership.c.
void crm_set_status_callback | ( | void(*)(enum crm_status_type, crm_node_t *, const void *) | dispatch | ) |
Set a client function that will be called after peer status changes.
[in] | dispatch | Pointer to function to use as callback |
Definition at line 454 of file membership.c.
enum cluster_type_e get_cluster_type | ( | void | ) |
const char* get_local_node_name | ( | void | ) |
char* get_node_name | ( | uint32_t | nodeid | ) |
gboolean is_corosync_cluster | ( | void | ) |
const char* name_for_cluster_type | ( | enum cluster_type_e | type | ) |
void pcmk_cluster_free | ( | crm_cluster_t * | cluster | ) |
crm_cluster_t* pcmk_cluster_new | ( | void | ) |
Allocate a new crm_cluster_t
object.
crm_cluster_t
object (guaranteed not NULL
) pcmk_cluster_free()
. guint reap_crm_member | ( | uint32_t | id, |
const char * | name | ||
) |
Remove all peer cache entries matching a node ID and/or uname.
[in] | id | ID of node to remove (or 0 to ignore) |
[in] | name | Uname of node to remove (or NULL to ignore) |
Definition at line 334 of file membership.c.
gboolean send_cluster_message | ( | const crm_node_t * | node, |
enum crm_ais_msg_types | service, | ||
const xmlNode * | data, | ||
gboolean | ordered | ||
) |
Send an XML message via the cluster messaging layer.
[in] | node | Cluster node to send message to |
[in] | service | Message type to use in message host info |
[in] | data | XML message to send |
[in] | ordered | Ignored for currently supported messaging layers |
enum crm_ais_msg_types text2msg_type | ( | const char * | text | ) |
gboolean crm_have_quorum |
Definition at line 64 of file membership.c.
GHashTable* crm_peer_cache |
Definition at line 36 of file membership.c.
unsigned long long crm_peer_seq |
Definition at line 63 of file membership.c.
GHashTable* crm_remote_peer_cache |
Definition at line 53 of file membership.c.