pacemaker  1.1.18-7fdfbbe
Scalable High-Availability cluster resource manager
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions | Variables
plugin.c File Reference
#include <crm_internal.h>
#include <crm/cluster/internal.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <signal.h>
#include <string.h>
#include <corosync/totem/totempg.h>
#include <corosync/engine/objdb.h>
#include <corosync/engine/config.h>
#include <config.h>
#include "plugin.h"
#include "utils.h"
#include <glib.h>
#include <sys/resource.h>
#include <sys/utsname.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <pthread.h>
#include <bzlib.h>
#include <pwd.h>
Include dependency graph for plugin.c:

Go to the source code of this file.

Macros

#define MAX_RESPAWN   100
 
#define LOOPBACK_ID   16777343
 
#define crm_flag_none   0x00000000
 
#define crm_flag_members   0x00000001
 
#define min(x, y)   (x)<(y)?(x):(y)
 

Typedefs

typedef const void ais_void_ptr
 

Functions

struct crm_identify_msg_s __attribute__ ((packed))
 
cs_ipc_header_request_t header __attribute__ ((aligned(8)))
 
void send_cluster_id (void)
 
int send_plugin_msg_raw (const AIS_Message *ais_msg)
 
char * pcmk_generate_membership_data (void)
 
gboolean check_message_sanity (const AIS_Message *msg, const char *data)
 
int pcmk_shutdown (void)
 
void pcmk_peer_update (enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id)
 
int pcmk_startup (struct corosync_api_v1 *corosync_api)
 
int pcmk_config_init (struct corosync_api_v1 *corosync_api)
 
int pcmk_ipc_exit (void *conn)
 
int pcmk_ipc_connect (void *conn)
 
void pcmk_ipc (void *conn, ais_void_ptr *msg)
 
void pcmk_exec_dump (void)
 
void pcmk_cluster_swab (void *msg)
 
void pcmk_cluster_callback (ais_void_ptr *message, unsigned int nodeid)
 
void pcmk_nodeid (void *conn, ais_void_ptr *msg)
 
void pcmk_nodes (void *conn, ais_void_ptr *msg)
 
void pcmk_notify (void *conn, ais_void_ptr *msg)
 
void pcmk_remove_member (void *conn, ais_void_ptr *msg)
 
void pcmk_quorum (void *conn, ais_void_ptr *msg)
 
void pcmk_cluster_id_swab (void *msg)
 
void pcmk_cluster_id_callback (ais_void_ptr *message, unsigned int nodeid)
 
void ais_remove_peer (char *node_id)
 
void ais_remove_peer_by_name (const char *node_name)
 
struct corosync_service_engine * pcmk_get_handler_ver0 (void)
 
void member_loop_fn (gpointer key, gpointer value, gpointer user_data)
 
void send_member_notification (void)
 
gboolean route_ais_message (const AIS_Message *msg, gboolean local_origin)
 
gboolean process_ais_message (const AIS_Message *msg)
 

Variables

struct corosync_api_v1 * pcmk_api = NULL
 
uint32_t plugin_has_votes = 0
 
uint32_t plugin_expected_votes = 2
 
int use_mgmtd = 0
 
int plugin_log_level = LOG_DEBUG
 
char * local_uname = NULL
 
int local_uname_len = 0
 
char * local_cname = NULL
 
int local_cname_len = 0
 
uint32_t local_nodeid = 0
 
char * ipc_channel_name = NULL
 
uint64_t membership_seq = 0
 
pthread_t pcmk_wait_thread
 
gboolean use_mcp = FALSE
 
gboolean wait_active = TRUE
 
gboolean have_reliable_membership_id = FALSE
 
GHashTable * ipc_client_list = NULL
 
GHashTable * membership_list = NULL
 
GHashTable * membership_notify_list = NULL
 
uint32_t id
 
uint32_t pid
 
int32_t votes
 
uint32_t processes
 
char uname [256]
 
char version [256]
 
uint64_t born_on
 
struct corosync_service_engine pcmk_service_handler
 
struct
corosync_service_engine_iface_ver0 
pcmk_service_handler_iface
 
struct res_overlay __attribute__
 
struct res_overlay * res_overlay = NULL
 

Macro Definition Documentation

#define crm_flag_members   0x00000001

Definition at line 82 of file plugin.c.

#define crm_flag_none   0x00000000

Definition at line 81 of file plugin.c.

#define LOOPBACK_ID   16777343

Definition at line 80 of file plugin.c.

#define MAX_RESPAWN   100

Definition at line 79 of file plugin.c.

#define min (   x,
 
)    (x)<(y)?(x):(y)

Definition at line 1601 of file plugin.c.

Typedef Documentation

typedef const void ais_void_ptr

Definition at line 115 of file plugin.c.

Function Documentation

struct crm_identify_msg_s __attribute__ ( (packed)  )
cs_ipc_header_request_t header __attribute__::__attribute__ ( (aligned(8))  )
void ais_remove_peer ( char *  node_id)

Definition at line 1683 of file plugin.c.

void ais_remove_peer_by_name ( const char *  node_name)

Definition at line 1708 of file plugin.c.

gboolean check_message_sanity ( const AIS_Message msg,
const char *  data 
)

Definition at line 1356 of file plugin.c.

void member_loop_fn ( gpointer  key,
gpointer  value,
gpointer  user_data 
)

Definition at line 1167 of file plugin.c.

void pcmk_cluster_callback ( ais_void_ptr message,
unsigned int  nodeid 
)

Definition at line 899 of file plugin.c.

void pcmk_cluster_id_callback ( ais_void_ptr message,
unsigned int  nodeid 
)

Definition at line 937 of file plugin.c.

void pcmk_cluster_id_swab ( void *  msg)

Definition at line 921 of file plugin.c.

void pcmk_cluster_swab ( void *  msg)

Definition at line 871 of file plugin.c.

int pcmk_config_init ( struct corosync_api_v1 *  corosync_api)

Definition at line 439 of file plugin.c.

void pcmk_exec_dump ( void  )

Definition at line 1778 of file plugin.c.

char * pcmk_generate_membership_data ( void  )

Definition at line 1177 of file plugin.c.

struct corosync_service_engine * pcmk_get_handler_ver0 ( void  )

Definition at line 269 of file plugin.c.

void pcmk_ipc ( void *  conn,
ais_void_ptr msg 
)

Definition at line 978 of file plugin.c.

int pcmk_ipc_connect ( void *  conn)

Definition at line 859 of file plugin.c.

int pcmk_ipc_exit ( void *  conn)

Definition at line 826 of file plugin.c.

void pcmk_nodeid ( void *  conn,
ais_void_ptr msg 
)

Definition at line 1313 of file plugin.c.

void pcmk_nodes ( void *  conn,
ais_void_ptr msg 
)

Definition at line 1207 of file plugin.c.

void pcmk_notify ( void *  conn,
ais_void_ptr msg 
)

Definition at line 1286 of file plugin.c.

void pcmk_peer_update ( enum totem_configuration_type  configuration_type,
const unsigned int *  member_list,
size_t  member_list_entries,
const unsigned int *  left_list,
size_t  left_list_entries,
const unsigned int *  joined_list,
size_t  joined_list_entries,
const struct memb_ring_id *  ring_id 
)

Definition at line 719 of file plugin.c.

void pcmk_quorum ( void *  conn,
ais_void_ptr msg 
)

Definition at line 1261 of file plugin.c.

void pcmk_remove_member ( void *  conn,
ais_void_ptr msg 
)

Definition at line 1225 of file plugin.c.

int pcmk_shutdown ( void  )

Definition at line 1064 of file plugin.c.

int pcmk_startup ( struct corosync_api_v1 *  corosync_api)

Definition at line 573 of file plugin.c.

gboolean process_ais_message ( const AIS_Message msg)

Definition at line 1744 of file plugin.c.

gboolean route_ais_message ( const AIS_Message msg,
gboolean  local_origin 
)

Definition at line 1454 of file plugin.c.

void send_cluster_id ( void  )

Definition at line 1604 of file plugin.c.

void send_member_notification ( void  )

Definition at line 1344 of file plugin.c.

int send_plugin_msg_raw ( const AIS_Message ais_msg)

Definition at line 1560 of file plugin.c.

Variable Documentation

struct res_overlay __attribute__
uint64_t born_on

Definition at line 85 of file plugin.c.

gboolean have_reliable_membership_id = FALSE

Definition at line 74 of file plugin.c.

Definition at line 79 of file plugin.c.

char* ipc_channel_name = NULL

Definition at line 66 of file plugin.c.

GHashTable* ipc_client_list = NULL

Definition at line 75 of file plugin.c.

char* local_cname = NULL

Definition at line 63 of file plugin.c.

int local_cname_len = 0

Definition at line 64 of file plugin.c.

uint32_t local_nodeid = 0

Definition at line 65 of file plugin.c.

char* local_uname = NULL

Definition at line 61 of file plugin.c.

int local_uname_len = 0

Definition at line 62 of file plugin.c.

GHashTable* membership_list = NULL

Definition at line 76 of file plugin.c.

GHashTable* membership_notify_list = NULL

Definition at line 77 of file plugin.c.

uint64_t membership_seq = 0

Definition at line 69 of file plugin.c.

struct corosync_api_v1* pcmk_api = NULL

Definition at line 54 of file plugin.c.

struct corosync_service_engine pcmk_service_handler
Initial value:
= {
.name = (char *)"Pacemaker Cluster Manager "PACEMAKER_VERSION,
.private_data_size = 0,
.flow_control = COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED,
.allow_inquorate = CS_LIB_ALLOW_INQUORATE,
.lib_init_fn = pcmk_ipc_connect,
.lib_exit_fn = pcmk_ipc_exit,
.exec_init_fn = pcmk_startup,
.exec_exit_fn = pcmk_shutdown,
.config_init_fn = pcmk_config_init,
.priority = 50,
.lib_engine = pcmk_lib_service,
.lib_engine_count = sizeof (pcmk_lib_service) / sizeof (struct corosync_lib_handler),
.exec_engine = pcmk_exec_service,
.exec_engine_count = sizeof (pcmk_exec_service) / sizeof (struct corosync_exec_handler),
.confchg_fn = pcmk_peer_update,
.exec_dump_fn = pcmk_exec_dump,
}
void pcmk_exec_dump(void)
Definition: plugin.c:1778
int pcmk_config_init(struct corosync_api_v1 *corosync_api)
Definition: plugin.c:439
#define PACEMAKER_VERSION
Definition: config.h:646
#define PCMK_SERVICE_ID
Definition: config.h:670
int pcmk_ipc_connect(void *conn)
Definition: plugin.c:859
void pcmk_peer_update(enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id)
Definition: plugin.c:719
int pcmk_shutdown(void)
Definition: plugin.c:1064
int pcmk_startup(struct corosync_api_v1 *corosync_api)
Definition: plugin.c:573
int pcmk_ipc_exit(void *conn)
Definition: plugin.c:826

Definition at line 203 of file plugin.c.

struct corosync_service_engine_iface_ver0 pcmk_service_handler_iface
Initial value:
= {
.corosync_get_service_engine_ver0 = pcmk_get_handler_ver0
}
struct corosync_service_engine * pcmk_get_handler_ver0(void)
Definition: plugin.c:269

Definition at line 233 of file plugin.c.

pthread_t pcmk_wait_thread

Definition at line 70 of file plugin.c.

uint32_t pid

Definition at line 80 of file plugin.c.

uint32_t plugin_expected_votes = 2

Definition at line 57 of file plugin.c.

uint32_t plugin_has_votes = 0

Definition at line 56 of file plugin.c.

int plugin_log_level = LOG_DEBUG

Definition at line 60 of file plugin.c.

uint32_t processes

Definition at line 82 of file plugin.c.

struct res_overlay* res_overlay = NULL

Definition at line 961 of file plugin.c.

char uname[256]

Definition at line 83 of file plugin.c.

gboolean use_mcp = FALSE

Definition at line 72 of file plugin.c.

int use_mgmtd = 0

Definition at line 59 of file plugin.c.

char version[256]

Definition at line 84 of file plugin.c.

int32_t votes

Definition at line 81 of file plugin.c.

gboolean wait_active = TRUE

Definition at line 73 of file plugin.c.