pacemaker
1.1.18-7fdfbbe
Scalable High-Availability cluster resource manager
|
#include <config.h>
#include <portability.h>
#include <glib.h>
#include <stdbool.h>
#include <libxml/tree.h>
#include <crm/lrmd.h>
#include <crm/common/logging.h>
#include <crm/common/ipcs.h>
#include <crm/common/internal.h>
#include <string.h>
#include <getopt.h>
#include <qb/qbipc_common.h>
#include <corosync/corotypes.h>
Go to the source code of this file.
Data Structures | |
struct | crm_option |
struct | pe_cluster_option_s |
struct | remote_proxy_s |
Macros | |
#define | pcmk_option_default 0x00000 |
#define | pcmk_option_hidden 0x00001 |
#define | pcmk_option_paragraph 0x00002 |
#define | pcmk_option_example 0x00004 |
#define | set_bit(word, bit) word = crm_set_bit(__FUNCTION__, __LINE__, NULL, word, bit) |
#define | clear_bit(word, bit) word = crm_clear_bit(__FUNCTION__, __LINE__, NULL, word, bit) |
#define | REMOTE_MSG_TERMINATOR "\r\n\r\n" |
#define | crm_config_err(fmt...) { crm_config_error = TRUE; crm_err(fmt); } |
#define | crm_config_warn(fmt...) { crm_config_warning = TRUE; crm_warn(fmt); } |
#define | attrd_channel T_ATTRD |
#define | F_ATTRD_KEY "attr_key" |
#define | F_ATTRD_ATTRIBUTE "attr_name" |
#define | F_ATTRD_REGEX "attr_regex" |
#define | F_ATTRD_TASK "task" |
#define | F_ATTRD_VALUE "attr_value" |
#define | F_ATTRD_SET "attr_set" |
#define | F_ATTRD_IS_REMOTE "attr_is_remote" |
#define | F_ATTRD_IS_PRIVATE "attr_is_private" |
#define | F_ATTRD_SECTION "attr_section" |
#define | F_ATTRD_DAMPEN "attr_dampening" |
#define | F_ATTRD_IGNORE_LOCALLY "attr_ignore_locally" |
#define | F_ATTRD_HOST "attr_host" |
#define | F_ATTRD_HOST_ID "attr_host_id" |
#define | F_ATTRD_USER "attr_user" |
#define | F_ATTRD_WRITER "attr_writer" |
#define | F_ATTRD_VERSION "attr_version" |
#define | F_ATTRD_RESOURCE "attr_resource" |
#define | F_ATTRD_OPERATION "attr_clear_operation" |
#define | F_ATTRD_INTERVAL "attr_clear_interval" |
#define | ATTRD_OP_PEER_REMOVE "peer-remove" |
#define | ATTRD_OP_UPDATE "update" |
#define | ATTRD_OP_UPDATE_BOTH "update-both" |
#define | ATTRD_OP_UPDATE_DELAY "update-delay" |
#define | ATTRD_OP_QUERY "query" |
#define | ATTRD_OP_REFRESH "refresh" |
#define | ATTRD_OP_FLUSH "flush" |
#define | ATTRD_OP_SYNC "sync" |
#define | ATTRD_OP_SYNC_RESPONSE "sync-response" |
#define | ATTRD_OP_CLEAR_FAILURE "clear-failure" |
#define | PCMK_ENV_PHYSICAL_HOST "physical_host" |
Typedefs | |
typedef struct pe_cluster_option_s | pe_cluster_option |
typedef struct crm_remote_s | crm_remote_t |
typedef struct qb_ipc_request_header | cs_ipc_header_request_t |
typedef struct qb_ipc_response_header | cs_ipc_header_response_t |
typedef struct remote_proxy_s | remote_proxy_t |
Functions | |
void * | find_library_function (void **handle, const char *lib, const char *fn, int fatal) |
void * | convert_const_pointer (const void *ptr) |
char * | uid2username (uid_t uid) |
void | determine_request_user (const char *user, xmlNode *request, const char *field) |
const char * | crm_acl_get_set_user (xmlNode *request, const char *field, const char *peer_user) |
void | crm_set_options (const char *short_options, const char *usage, struct crm_option *long_options, const char *app_desc) |
int | crm_get_option (int argc, char **argv, int *index) |
int | crm_get_option_long (int argc, char **argv, int *index, const char **longname) |
int | crm_help (char cmd, int exit_code) |
const char * | cluster_option (GHashTable *options, gboolean(*validate)(const char *), const char *name, const char *old_name, const char *def_value) |
const char * | get_cluster_pref (GHashTable *options, pe_cluster_option *option_list, int len, const char *name) |
void | config_metadata (const char *name, const char *version, const char *desc_short, const char *desc_long, pe_cluster_option *option_list, int len) |
void | verify_all_options (GHashTable *options, pe_cluster_option *option_list, int len) |
gboolean | check_time (const char *value) |
gboolean | check_timer (const char *value) |
gboolean | check_boolean (const char *value) |
gboolean | check_number (const char *value) |
gboolean | check_positive_number (const char *value) |
gboolean | check_quorum (const char *value) |
gboolean | check_script (const char *value) |
gboolean | check_utilization (const char *value) |
long | crm_get_sbd_timeout (void) |
gboolean | check_sbd_timeout (const char *value) |
int | crm_pid_active (long pid, const char *daemon) |
void | crm_make_daemon (const char *name, gboolean daemonize, const char *pidfile) |
char * | generate_op_key (const char *rsc_id, const char *op_type, int interval) |
Generate an operation key. More... | |
char * | generate_notify_key (const char *rsc_id, const char *notify_type, const char *op_type) |
char * | generate_transition_magic_v202 (const char *transition_key, int op_status) |
char * | generate_transition_magic (const char *transition_key, int op_status, int op_rc) |
char * | generate_transition_key (int action, int transition_id, int target_rc, const char *node) |
void | filter_action_parameters (xmlNode *param_set, const char *version) |
xmlNode * | create_operation_update (xmlNode *parent, lrmd_event_data_t *event, const char *caller_version, int target_rc, const char *node, const char *origin, int level) |
char * | generate_hash_key (const char *crm_msg_reference, const char *sys) |
int | crm_remote_send (crm_remote_t *remote, xmlNode *msg) |
int | crm_remote_ready (crm_remote_t *remote, int total_timeout) |
gboolean | crm_remote_recv (crm_remote_t *remote, int total_timeout, int *disconnected) |
xmlNode * | crm_remote_parse_buffer (crm_remote_t *remote) |
int | crm_remote_tcp_connect (const char *host, int port) |
int | crm_remote_tcp_connect_async (const char *host, int port, int timeout, int *timer_id, void *userdata, void(*callback)(void *userdata, int sock)) |
int | crm_remote_accept (int ssock) |
void | crm_sockaddr2str (void *sa, char *s) |
Convert an IP address (IPv4 or IPv6) to a string for logging. More... | |
int | crm_initiate_client_tls_handshake (crm_remote_t *remote, int timeout_ms) |
void * | crm_create_anon_tls_session (int sock, int type, void *credentials) |
void * | create_psk_tls_session (int csock, int type, void *credentials) |
const char * | daemon_option (const char *option) |
void | set_daemon_option (const char *option, const char *value) |
gboolean | daemon_option_enabled (const char *daemon, const char *option) |
void | strip_text_nodes (xmlNode *xml) |
void | pcmk_panic (const char *origin) |
void | sysrq_init (void) |
pid_t | pcmk_locate_sbd (void) |
long | crm_pidfile_inuse (const char *filename, long mypid, const char *daemon) |
long | crm_read_pidfile (const char *filename) |
void | attrd_ipc_server_init (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb) |
void | stonith_ipc_server_init (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb) |
qb_ipcs_service_t * | crmd_ipc_server_init (struct qb_ipcs_service_handlers *cb) |
void | cib_ipc_servers_init (qb_ipcs_service_t **ipcs_ro, qb_ipcs_service_t **ipcs_rw, qb_ipcs_service_t **ipcs_shm, struct qb_ipcs_service_handlers *ro_cb, struct qb_ipcs_service_handlers *rw_cb) |
void | cib_ipc_servers_destroy (qb_ipcs_service_t *ipcs_ro, qb_ipcs_service_t *ipcs_rw, qb_ipcs_service_t *ipcs_shm) |
const char * | crm_xml_add_last_written (xmlNode *xml_node) |
void | crm_xml_dump (xmlNode *data, int options, char **buffer, int *offset, int *max, int depth) |
void | crm_buffer_add_char (char **buffer, int *offset, int *max, char c) |
gboolean | crm_digest_verify (xmlNode *input, const char *expected) |
char * | crm_compat_realpath (const char *path) |
remote_proxy_t * | remote_proxy_new (lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks, const char *node_name, const char *session_id, const char *channel) |
int | remote_proxy_check (lrmd_t *lrmd, GHashTable *hash) |
void | remote_proxy_cb (lrmd_t *lrmd, const char *node_name, xmlNode *msg) |
void | remote_proxy_ack_shutdown (lrmd_t *lrmd) |
Send an acknowledgment of a remote proxy shutdown request. More... | |
void | remote_proxy_nack_shutdown (lrmd_t *lrmd) |
We're not going to shutdown as response to a remote proxy shutdown request. More... | |
int | remote_proxy_dispatch (const char *buffer, ssize_t length, gpointer userdata) |
void | remote_proxy_disconnected (gpointer data) |
void | remote_proxy_free (gpointer data) |
void | remote_proxy_relay_event (remote_proxy_t *proxy, xmlNode *msg) |
void | remote_proxy_relay_response (remote_proxy_t *proxy, xmlNode *msg, int msg_id) |
Variables | |
int | node_score_red |
int | node_score_green |
int | node_score_yellow |
int | node_score_infinity |
#define attrd_channel T_ATTRD |
Definition at line 259 of file crm_internal.h.
#define ATTRD_OP_CLEAR_FAILURE "clear-failure" |
Definition at line 290 of file crm_internal.h.
#define ATTRD_OP_FLUSH "flush" |
Definition at line 287 of file crm_internal.h.
#define ATTRD_OP_PEER_REMOVE "peer-remove" |
Definition at line 281 of file crm_internal.h.
#define ATTRD_OP_QUERY "query" |
Definition at line 285 of file crm_internal.h.
#define ATTRD_OP_REFRESH "refresh" |
Definition at line 286 of file crm_internal.h.
#define ATTRD_OP_SYNC "sync" |
Definition at line 288 of file crm_internal.h.
#define ATTRD_OP_SYNC_RESPONSE "sync-response" |
Definition at line 289 of file crm_internal.h.
#define ATTRD_OP_UPDATE "update" |
Definition at line 282 of file crm_internal.h.
#define ATTRD_OP_UPDATE_BOTH "update-both" |
Definition at line 283 of file crm_internal.h.
#define ATTRD_OP_UPDATE_DELAY "update-delay" |
Definition at line 284 of file crm_internal.h.
#define clear_bit | ( | word, | |
bit | |||
) | word = crm_clear_bit(__FUNCTION__, __LINE__, NULL, word, bit) |
Definition at line 191 of file crm_internal.h.
#define crm_config_err | ( | fmt... | ) | { crm_config_error = TRUE; crm_err(fmt); } |
Definition at line 256 of file crm_internal.h.
#define crm_config_warn | ( | fmt... | ) | { crm_config_warning = TRUE; crm_warn(fmt); } |
Definition at line 257 of file crm_internal.h.
#define F_ATTRD_ATTRIBUTE "attr_name" |
Definition at line 261 of file crm_internal.h.
#define F_ATTRD_DAMPEN "attr_dampening" |
Definition at line 269 of file crm_internal.h.
#define F_ATTRD_HOST "attr_host" |
Definition at line 271 of file crm_internal.h.
#define F_ATTRD_HOST_ID "attr_host_id" |
Definition at line 272 of file crm_internal.h.
#define F_ATTRD_IGNORE_LOCALLY "attr_ignore_locally" |
Definition at line 270 of file crm_internal.h.
#define F_ATTRD_INTERVAL "attr_clear_interval" |
Definition at line 278 of file crm_internal.h.
#define F_ATTRD_IS_PRIVATE "attr_is_private" |
Definition at line 267 of file crm_internal.h.
#define F_ATTRD_IS_REMOTE "attr_is_remote" |
Definition at line 266 of file crm_internal.h.
#define F_ATTRD_KEY "attr_key" |
Definition at line 260 of file crm_internal.h.
#define F_ATTRD_OPERATION "attr_clear_operation" |
Definition at line 277 of file crm_internal.h.
#define F_ATTRD_REGEX "attr_regex" |
Definition at line 262 of file crm_internal.h.
#define F_ATTRD_RESOURCE "attr_resource" |
Definition at line 276 of file crm_internal.h.
#define F_ATTRD_SECTION "attr_section" |
Definition at line 268 of file crm_internal.h.
#define F_ATTRD_SET "attr_set" |
Definition at line 265 of file crm_internal.h.
#define F_ATTRD_TASK "task" |
Definition at line 263 of file crm_internal.h.
#define F_ATTRD_USER "attr_user" |
Definition at line 273 of file crm_internal.h.
#define F_ATTRD_VALUE "attr_value" |
Definition at line 264 of file crm_internal.h.
#define F_ATTRD_VERSION "attr_version" |
Definition at line 275 of file crm_internal.h.
#define F_ATTRD_WRITER "attr_writer" |
Definition at line 274 of file crm_internal.h.
#define PCMK_ENV_PHYSICAL_HOST "physical_host" |
Definition at line 292 of file crm_internal.h.
#define pcmk_option_default 0x00000 |
Definition at line 70 of file crm_internal.h.
#define pcmk_option_example 0x00004 |
Definition at line 73 of file crm_internal.h.
#define pcmk_option_hidden 0x00001 |
Definition at line 71 of file crm_internal.h.
#define pcmk_option_paragraph 0x00002 |
Definition at line 72 of file crm_internal.h.
#define REMOTE_MSG_TERMINATOR "\r\n\r\n" |
Definition at line 244 of file crm_internal.h.
#define set_bit | ( | word, | |
bit | |||
) | word = crm_set_bit(__FUNCTION__, __LINE__, NULL, word, bit) |
Definition at line 190 of file crm_internal.h.
typedef struct crm_remote_s crm_remote_t |
remote tcp/tls helper functions
Definition at line 196 of file crm_internal.h.
typedef struct qb_ipc_request_header cs_ipc_header_request_t |
Definition at line 299 of file crm_internal.h.
typedef struct qb_ipc_response_header cs_ipc_header_response_t |
Definition at line 300 of file crm_internal.h.
typedef struct pe_cluster_option_s pe_cluster_option |
typedef struct remote_proxy_s remote_proxy_t |
void attrd_ipc_server_init | ( | qb_ipcs_service_t ** | ipcs, |
struct qb_ipcs_service_handlers * | cb | ||
) |
gboolean check_sbd_timeout | ( | const char * | value | ) |
Definition at line 255 of file watchdog.c.
void cib_ipc_servers_destroy | ( | qb_ipcs_service_t * | ipcs_ro, |
qb_ipcs_service_t * | ipcs_rw, | ||
qb_ipcs_service_t * | ipcs_shm | ||
) |
void cib_ipc_servers_init | ( | qb_ipcs_service_t ** | ipcs_ro, |
qb_ipcs_service_t ** | ipcs_rw, | ||
qb_ipcs_service_t ** | ipcs_shm, | ||
struct qb_ipcs_service_handlers * | ro_cb, | ||
struct qb_ipcs_service_handlers * | rw_cb | ||
) |
const char* cluster_option | ( | GHashTable * | options, |
gboolean(*)(const char *) | validate, | ||
const char * | name, | ||
const char * | old_name, | ||
const char * | def_value | ||
) |
void config_metadata | ( | const char * | name, |
const char * | version, | ||
const char * | desc_short, | ||
const char * | desc_long, | ||
pe_cluster_option * | option_list, | ||
int | len | ||
) |
xmlNode* create_operation_update | ( | xmlNode * | parent, |
lrmd_event_data_t * | event, | ||
const char * | caller_version, | ||
int | target_rc, | ||
const char * | node, | ||
const char * | origin, | ||
int | level | ||
) |
Definition at line 457 of file operations.c.
void* create_psk_tls_session | ( | int | csock, |
int | type, | ||
void * | credentials | ||
) |
const char* crm_acl_get_set_user | ( | xmlNode * | request, |
const char * | field, | ||
const char * | peer_user | ||
) |
void crm_buffer_add_char | ( | char ** | buffer, |
int * | offset, | ||
int * | max, | ||
char | c | ||
) |
void* crm_create_anon_tls_session | ( | int | sock, |
int | type, | ||
void * | credentials | ||
) |
gboolean crm_digest_verify | ( | xmlNode * | input, |
const char * | expected | ||
) |
int crm_get_option_long | ( | int | argc, |
char ** | argv, | ||
int * | index, | ||
const char ** | longname | ||
) |
long crm_get_sbd_timeout | ( | void | ) |
Definition at line 246 of file watchdog.c.
int crm_initiate_client_tls_handshake | ( | crm_remote_t * | remote, |
int | timeout_ms | ||
) |
void crm_make_daemon | ( | const char * | name, |
gboolean | daemonize, | ||
const char * | pidfile | ||
) |
long crm_pidfile_inuse | ( | const char * | filename, |
long | mypid, | ||
const char * | daemon | ||
) |
xmlNode* crm_remote_parse_buffer | ( | crm_remote_t * | remote | ) |
int crm_remote_ready | ( | crm_remote_t * | remote, |
int | total_timeout | ||
) |
gboolean crm_remote_recv | ( | crm_remote_t * | remote, |
int | total_timeout, | ||
int * | disconnected | ||
) |
int crm_remote_send | ( | crm_remote_t * | remote, |
xmlNode * | msg | ||
) |
int crm_remote_tcp_connect_async | ( | const char * | host, |
int | port, | ||
int | timeout, | ||
int * | timer_id, | ||
void * | userdata, | ||
void(*)(void *userdata, int sock) | callback | ||
) |
void crm_set_options | ( | const char * | short_options, |
const char * | usage, | ||
struct crm_option * | long_options, | ||
const char * | app_desc | ||
) |
void crm_sockaddr2str | ( | void * | sa, |
char * | s | ||
) |
Convert an IP address (IPv4 or IPv6) to a string for logging.
[in] | sa | Socket address for IP |
[out] | s | Storage for at least INET6_ADDRSTRLEN bytes |
void crm_xml_dump | ( | xmlNode * | data, |
int | options, | ||
char ** | buffer, | ||
int * | offset, | ||
int * | max, | ||
int | depth | ||
) |
qb_ipcs_service_t* crmd_ipc_server_init | ( | struct qb_ipcs_service_handlers * | cb | ) |
gboolean daemon_option_enabled | ( | const char * | daemon, |
const char * | option | ||
) |
void determine_request_user | ( | const char * | user, |
xmlNode * | request, | ||
const char * | field | ||
) |
void filter_action_parameters | ( | xmlNode * | param_set, |
const char * | version | ||
) |
Definition at line 283 of file operations.c.
void* find_library_function | ( | void ** | handle, |
const char * | lib, | ||
const char * | fn, | ||
int | fatal | ||
) |
char* generate_hash_key | ( | const char * | crm_msg_reference, |
const char * | sys | ||
) |
char* generate_notify_key | ( | const char * | rsc_id, |
const char * | notify_type, | ||
const char * | op_type | ||
) |
Definition at line 118 of file operations.c.
char* generate_op_key | ( | const char * | rsc_id, |
const char * | op_type, | ||
int | interval | ||
) |
Generate an operation key.
[in] | rsc_id | ID of resource being operated on |
[in] | op_type | Operation name |
[in] | interval | Operation interval |
Definition at line 37 of file operations.c.
char* generate_transition_key | ( | int | action, |
int | transition_id, | ||
int | target_rc, | ||
const char * | node | ||
) |
Definition at line 200 of file operations.c.
char* generate_transition_magic | ( | const char * | transition_key, |
int | op_status, | ||
int | op_rc | ||
) |
Definition at line 157 of file operations.c.
char* generate_transition_magic_v202 | ( | const char * | transition_key, |
int | op_status | ||
) |
Definition at line 140 of file operations.c.
const char* get_cluster_pref | ( | GHashTable * | options, |
pe_cluster_option * | option_list, | ||
int | len, | ||
const char * | name | ||
) |
pid_t pcmk_locate_sbd | ( | void | ) |
Definition at line 208 of file watchdog.c.
void pcmk_panic | ( | const char * | origin | ) |
Definition at line 177 of file watchdog.c.
void remote_proxy_ack_shutdown | ( | lrmd_t * | lrmd | ) |
Send an acknowledgment of a remote proxy shutdown request.
[in] | lrmd | Connection to proxy |
Definition at line 54 of file proxy_common.c.
void remote_proxy_cb | ( | lrmd_t * | lrmd, |
const char * | node_name, | ||
xmlNode * | msg | ||
) |
Definition at line 215 of file proxy_common.c.
int remote_proxy_check | ( | lrmd_t * | lrmd, |
GHashTable * | hash | ||
) |
Definition at line 876 of file lrmd_client.c.
void remote_proxy_disconnected | ( | gpointer | data | ) |
Definition at line 157 of file proxy_common.c.
int remote_proxy_dispatch | ( | const char * | buffer, |
ssize_t | length, | ||
gpointer | userdata | ||
) |
Definition at line 128 of file proxy_common.c.
void remote_proxy_free | ( | gpointer | data | ) |
Definition at line 117 of file proxy_common.c.
void remote_proxy_nack_shutdown | ( | lrmd_t * | lrmd | ) |
We're not going to shutdown as response to a remote proxy shutdown request.
[in] | lrmd | Connection to proxy |
Definition at line 69 of file proxy_common.c.
remote_proxy_t* remote_proxy_new | ( | lrmd_t * | lrmd, |
struct ipc_client_callbacks * | proxy_callbacks, | ||
const char * | node_name, | ||
const char * | session_id, | ||
const char * | channel | ||
) |
Definition at line 175 of file proxy_common.c.
void remote_proxy_relay_event | ( | remote_proxy_t * | proxy, |
xmlNode * | msg | ||
) |
Definition at line 78 of file proxy_common.c.
void remote_proxy_relay_response | ( | remote_proxy_t * | proxy, |
xmlNode * | msg, | ||
int | msg_id | ||
) |
Definition at line 91 of file proxy_common.c.
void set_daemon_option | ( | const char * | option, |
const char * | value | ||
) |
void stonith_ipc_server_init | ( | qb_ipcs_service_t ** | ipcs, |
struct qb_ipcs_service_handlers * | cb | ||
) |
void sysrq_init | ( | void | ) |
Definition at line 38 of file watchdog.c.
char* uid2username | ( | uid_t | uid | ) |
void verify_all_options | ( | GHashTable * | options, |
pe_cluster_option * | option_list, | ||
int | len | ||
) |