pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
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)
 

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_get_xml_id (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.
 
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, const char *xml_id, 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 86 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 58 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 46 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 80 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 1115 of file membership.c.

◆ pcmk__cluster_destroy_node_caches()

void pcmk__cluster_destroy_node_caches ( void )

Definition at line 588 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 471 of file membership.c.

◆ pcmk__cluster_forget_remote_node()

void pcmk__cluster_forget_remote_node ( const char * node_name)

Definition at line 224 of file membership.c.

◆ pcmk__cluster_get_xml_id()

const char * pcmk__cluster_get_xml_id ( pcmk__node_status_t * node)

Definition at line 44 of file cluster.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 568 of file membership.c.

◆ pcmk__cluster_is_node_active()

bool pcmk__cluster_is_node_active ( const pcmk__node_status_t * node)

Definition at line 374 of file membership.c.

◆ pcmk__cluster_local_node_name()

const char * pcmk__cluster_local_node_name ( void )

Definition at line 293 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 237 of file cluster.c.

◆ pcmk__cluster_num_active_nodes()

unsigned int pcmk__cluster_num_active_nodes ( void )

Definition at line 536 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 204 of file cluster.c.

◆ pcmk__cluster_set_autoreap()

void pcmk__cluster_set_autoreap ( bool enable)

Definition at line 649 of file membership.c.

◆ pcmk__cluster_set_status_callback()

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

Definition at line 626 of file membership.c.

◆ pcmk__corosync_quorum_connect()

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

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 947 of file membership.c.

◆ pcmk__node_name_from_uuid()

const char * pcmk__node_name_from_uuid ( const char * uuid)

Definition at line 315 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 864 of file membership.c.

◆ pcmk__reap_unseen_nodes()

void pcmk__reap_unseen_nodes ( uint64_t ring_id)

Definition at line 1354 of file membership.c.

◆ pcmk__refresh_node_caches_from_cib()

void pcmk__refresh_node_caches_from_cib ( xmlNode * cib)

Definition at line 1501 of file membership.c.

◆ pcmk__search_node_caches()

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

Definition at line 811 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 1212 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 1341 of file membership.c.

Variable Documentation

◆ pcmk__peer_cache

GHashTable* pcmk__peer_cache
extern

Definition at line 37 of file membership.c.

◆ pcmk__remote_peer_cache

GHashTable* pcmk__remote_peer_cache
extern

Definition at line 55 of file membership.c.