![]() |
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 | ||
| ) |
1.8.5