pacemaker  3.0.0-d8340737c4
Scalable High-Availability cluster resource manager
Data Structures | Typedefs | Enumerations | Functions | Variables
internal.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/common/ipc.h>
#include <crm/cluster.h>
Include dependency graph for internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pcmk__cluster_private
 Implementation of pcmk__cluster_private_t. More...
 
struct  pcmk__node_status
 Node status data (may be a cluster node or a Pacemaker Remote node) More...
 

Typedefs

typedef struct pcmk__election pcmk__election_t
 
typedef struct pcmk__node_status pcmk__node_status_t
 Node status data (may be a cluster node or a Pacemaker Remote node) More...
 

Enumerations

enum  crm_proc_flag { crm_proc_none = 0x00000001, crm_proc_cpg = 0x04000000 }
 
enum  pcmk__node_status_flags { pcmk__node_status_remote = (UINT32_C(1) << 0), pcmk__node_status_dirty = (UINT32_C(1) << 1) }
 
enum  pcmk__node_search_flags {
  pcmk__node_search_none = 0, pcmk__node_search_cluster_member = (1 << 0), pcmk__node_search_remote = (1 << 1), pcmk__node_search_any,
  pcmk__node_search_cluster_cib = (1 << 2)
}
 
enum  pcmk__node_update { pcmk__node_update_name, pcmk__node_update_state, pcmk__node_update_processes }
 

Functions

const char * pcmk__cluster_node_uuid (pcmk__node_status_t *node)
 
char * pcmk__cluster_node_name (uint32_t nodeid)
 
const char * pcmk__cluster_local_node_name (void)
 
const char * pcmk__node_name_from_uuid (const char *uuid)
 
pcmk__node_status_tcrm_update_peer_proc (const char *source, pcmk__node_status_t *peer, uint32_t flag, const char *status)
 
pcmk__node_status_tpcmk__update_peer_state (const char *source, pcmk__node_status_t *node, const char *state, uint64_t membership)
 Update a node's state and membership information. More...
 
void pcmk__update_peer_expected (const char *source, pcmk__node_status_t *node, const char *expected)
 
void pcmk__reap_unseen_nodes (uint64_t ring_id)
 
void pcmk__corosync_quorum_connect (gboolean(*dispatch)(unsigned long long, gboolean), void(*destroy)(gpointer))
 
bool pcmk__cluster_send_message (const pcmk__node_status_t *node, enum pcmk_ipc_server service, const xmlNode *data)
 
bool pcmk__cluster_has_quorum (void)
 
void pcmk__cluster_init_node_caches (void)
 
void pcmk__cluster_destroy_node_caches (void)
 
void pcmk__cluster_set_autoreap (bool enable)
 
void pcmk__cluster_set_status_callback (void(*dispatch)(enum pcmk__node_update, pcmk__node_status_t *, const void *))
 
bool pcmk__cluster_is_node_active (const pcmk__node_status_t *node)
 
unsigned int pcmk__cluster_num_active_nodes (void)
 
unsigned int pcmk__cluster_num_remote_nodes (void)
 
pcmk__node_status_tpcmk__cluster_lookup_remote_node (const char *node_name)
 
void pcmk__cluster_forget_cluster_node (uint32_t id, const char *node_name)
 
void pcmk__cluster_forget_remote_node (const char *node_name)
 
pcmk__node_status_tpcmk__search_node_caches (unsigned int id, const char *uname, uint32_t flags)
 
void pcmk__purge_node_from_cache (const char *node_name, uint32_t node_id)
 
void pcmk__refresh_node_caches_from_cib (xmlNode *cib)
 
pcmk__node_status_tpcmk__get_node (unsigned int id, const char *uname, const char *xml_id, uint32_t flags)
 

Variables

GHashTable * pcmk__peer_cache
 
GHashTable * pcmk__remote_peer_cache
 

Typedef Documentation

◆ pcmk__election_t

typedef struct pcmk__election pcmk__election_t

Definition at line 88 of file internal.h.

◆ pcmk__node_status_t

Node status data (may be a cluster node or a Pacemaker Remote node)

Enumeration Type Documentation

◆ crm_proc_flag

Enumerator
crm_proc_none 
crm_proc_cpg 

Definition at line 31 of file internal.h.

◆ pcmk__node_search_flags

Enumerator
pcmk__node_search_none 

Does not affect search.

pcmk__node_search_cluster_member 

Search for cluster nodes from membership cache.

pcmk__node_search_remote 

Search for remote nodes.

pcmk__node_search_any 

Search for cluster member nodes and remote nodes.

pcmk__node_search_cluster_cib 

Search for cluster nodes from CIB (as of last cache refresh)

Definition at line 59 of file internal.h.

◆ pcmk__node_status_flags

Enumerator
pcmk__node_status_remote 

Node is a Pacemaker Remote node and should not be considered for cluster membership

pcmk__node_status_dirty 

Node's cache entry is dirty.

Definition at line 47 of file internal.h.

◆ pcmk__node_update

Enumerator
pcmk__node_update_name 

Node name updated.

pcmk__node_update_state 

Node connection state updated.

pcmk__node_update_processes 

Node process group membership updated.

Definition at line 82 of file internal.h.

Function Documentation

◆ crm_update_peer_proc()

pcmk__node_status_t* crm_update_peer_proc ( const char *  source,
pcmk__node_status_t peer,
uint32_t  flag,
const char *  status 
)

Definition at line 1095 of file membership.c.

◆ pcmk__cluster_destroy_node_caches()

void pcmk__cluster_destroy_node_caches ( void  )

Definition at line 582 of file membership.c.

◆ pcmk__cluster_forget_cluster_node()

void pcmk__cluster_forget_cluster_node ( uint32_t  id,
const char *  node_name 
)

Definition at line 465 of file membership.c.

◆ pcmk__cluster_forget_remote_node()

void pcmk__cluster_forget_remote_node ( const char *  node_name)

Definition at line 218 of file membership.c.

◆ pcmk__cluster_has_quorum()

bool pcmk__cluster_has_quorum ( void  )

Definition at line 96 of file membership.c.

◆ pcmk__cluster_init_node_caches()

void pcmk__cluster_init_node_caches ( void  )

Definition at line 562 of file membership.c.

◆ pcmk__cluster_is_node_active()

bool pcmk__cluster_is_node_active ( const pcmk__node_status_t node)

Definition at line 368 of file membership.c.

◆ pcmk__cluster_local_node_name()

const char* pcmk__cluster_local_node_name ( void  )

Definition at line 289 of file cluster.c.

◆ pcmk__cluster_lookup_remote_node()

pcmk__node_status_t* pcmk__cluster_lookup_remote_node ( const char *  node_name)

Definition at line 144 of file membership.c.

◆ pcmk__cluster_node_name()

char* pcmk__cluster_node_name ( uint32_t  nodeid)

Definition at line 233 of file cluster.c.

◆ pcmk__cluster_node_uuid()

const char* pcmk__cluster_node_uuid ( pcmk__node_status_t node)

Definition at line 44 of file cluster.c.

◆ pcmk__cluster_num_active_nodes()

unsigned int pcmk__cluster_num_active_nodes ( void  )

Definition at line 530 of file membership.c.

◆ pcmk__cluster_num_remote_nodes()

unsigned int pcmk__cluster_num_remote_nodes ( void  )

Definition at line 120 of file membership.c.

◆ pcmk__cluster_send_message()

bool pcmk__cluster_send_message ( const pcmk__node_status_t node,
enum pcmk_ipc_server  service,
const xmlNode *  data 
)

Definition at line 200 of file cluster.c.

◆ pcmk__cluster_set_autoreap()

void pcmk__cluster_set_autoreap ( bool  enable)

Definition at line 643 of file membership.c.

◆ pcmk__cluster_set_status_callback()

void pcmk__cluster_set_status_callback ( void(*)(enum pcmk__node_update, pcmk__node_status_t *, const void *)  dispatch)

Definition at line 620 of file membership.c.

◆ pcmk__corosync_quorum_connect()

void pcmk__corosync_quorum_connect ( gboolean(*)(unsigned long long, gboolean)  dispatch,
void(*)(gpointer)  destroy 
)

Definition at line 347 of file corosync.c.

◆ pcmk__get_node()

pcmk__node_status_t* pcmk__get_node ( unsigned int  id,
const char *  uname,
const char *  xml_id,
uint32_t  flags 
)

Definition at line 927 of file membership.c.

◆ pcmk__node_name_from_uuid()

const char* pcmk__node_name_from_uuid ( const char *  uuid)

Definition at line 311 of file cluster.c.

◆ pcmk__purge_node_from_cache()

void pcmk__purge_node_from_cache ( const char *  node_name,
uint32_t  node_id 
)

Definition at line 844 of file membership.c.

◆ pcmk__reap_unseen_nodes()

void pcmk__reap_unseen_nodes ( uint64_t  ring_id)

Definition at line 1334 of file membership.c.

◆ pcmk__refresh_node_caches_from_cib()

void pcmk__refresh_node_caches_from_cib ( xmlNode *  cib)

Definition at line 1480 of file membership.c.

◆ pcmk__search_node_caches()

pcmk__node_status_t* pcmk__search_node_caches ( unsigned int  id,
const char *  uname,
uint32_t  flags 
)

Definition at line 801 of file membership.c.

◆ pcmk__update_peer_expected()

void pcmk__update_peer_expected ( const char *  source,
pcmk__node_status_t node,
const char *  expected 
)

Definition at line 1192 of file membership.c.

◆ pcmk__update_peer_state()

pcmk__node_status_t* pcmk__update_peer_state ( const char *  source,
pcmk__node_status_t node,
const char *  state,
uint64_t  membership 
)

Update a node's state and membership information.

Parameters
[in]sourceCaller's function name (for log messages)
[in,out]nodeNode object to update
[in]stateNode's new state
[in]membershipNode's new membership ID
Returns
NULL if any node was reaped, value of node otherwise
Note
If this function returns NULL, the supplied node object was likely freed and should not be used again. This function should not be called within a cache iteration if reaping is possible, otherwise reaping could invalidate the iterator.

Definition at line 1321 of file membership.c.

Variable Documentation

◆ pcmk__peer_cache

GHashTable* pcmk__peer_cache

Definition at line 37 of file membership.c.

◆ pcmk__remote_peer_cache

GHashTable* pcmk__remote_peer_cache

Definition at line 55 of file membership.c.