dhodovsk / source-git / pacemaker

Forked from source-git/pacemaker 3 years ago
Clone

Blame daemons/controld/controld_messages.h

rpm-build 3ee90c
/*
rpm-build 3ee90c
 * Copyright 2004-2018 Andrew Beekhof <andrew@beekhof.net>
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * This source code is licensed under the GNU Lesser General Public License
rpm-build 3ee90c
 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
rpm-build 3ee90c
 */
rpm-build 3ee90c
rpm-build 3ee90c
#ifndef XML_CRM_MESSAGES__H
rpm-build 3ee90c
#  define XML_CRM_MESSAGES__H
rpm-build 3ee90c
rpm-build 3ee90c
#  include <crm/crm.h>
rpm-build 3ee90c
#  include <crm/common/ipcs.h>
rpm-build 3ee90c
#  include <crm/common/xml.h>
rpm-build 3ee90c
#  include <crm/cluster/internal.h>
rpm-build 3ee90c
#  include <controld_fsa.h>
rpm-build 3ee90c
rpm-build 3ee90c
typedef struct ha_msg_input_s {
rpm-build 3ee90c
    xmlNode *msg;
rpm-build 3ee90c
    xmlNode *xml;
rpm-build 3ee90c
rpm-build 3ee90c
} ha_msg_input_t;
rpm-build 3ee90c
rpm-build 3ee90c
extern ha_msg_input_t *new_ha_msg_input(xmlNode * orig);
rpm-build 3ee90c
extern void delete_ha_msg_input(ha_msg_input_t * orig);
rpm-build 3ee90c
rpm-build 3ee90c
extern void *fsa_typed_data_adv(fsa_data_t * fsa_data, enum fsa_data_type a_type,
rpm-build 3ee90c
                                const char *caller);
rpm-build 3ee90c
rpm-build 3ee90c
#  define fsa_typed_data(x) fsa_typed_data_adv(msg_data, x, __FUNCTION__)
rpm-build 3ee90c
rpm-build 3ee90c
extern void register_fsa_error_adv(enum crmd_fsa_cause cause, enum crmd_fsa_input input,
rpm-build 3ee90c
                                   fsa_data_t * cur_data, void *new_data, const char *raised_from);
rpm-build 3ee90c
rpm-build 3ee90c
#  define register_fsa_error(cause, input, new_data) register_fsa_error_adv(cause, input, msg_data, new_data, __FUNCTION__)
rpm-build 3ee90c
rpm-build 3ee90c
extern int register_fsa_input_adv(enum crmd_fsa_cause cause, enum crmd_fsa_input input,
rpm-build 3ee90c
                                  void *data, long long with_actions,
rpm-build 3ee90c
                                  gboolean prepend, const char *raised_from);
rpm-build 3ee90c
rpm-build 3ee90c
extern void fsa_dump_queue(int log_level);
rpm-build 3ee90c
extern void route_message(enum crmd_fsa_cause cause, xmlNode * input);
rpm-build 3ee90c
rpm-build 3ee90c
#  define crmd_fsa_stall(suppress) do {                                 \
rpm-build 3ee90c
    if(suppress == FALSE && msg_data != NULL) {                         \
rpm-build 3ee90c
        register_fsa_input_adv(                                         \
rpm-build 3ee90c
            ((fsa_data_t*)msg_data)->fsa_cause, I_WAIT_FOR_EVENT,       \
rpm-build 3ee90c
            ((fsa_data_t*)msg_data)->data, action, TRUE, __FUNCTION__); \
rpm-build 3ee90c
    } else {                                                            \
rpm-build 3ee90c
        register_fsa_input_adv(                                         \
rpm-build 3ee90c
            C_FSA_INTERNAL, I_WAIT_FOR_EVENT,                           \
rpm-build 3ee90c
            NULL, action, TRUE, __FUNCTION__);                          \
rpm-build 3ee90c
    }                                                                   \
rpm-build 3ee90c
    } while(0)
rpm-build 3ee90c
rpm-build 3ee90c
#  define register_fsa_input(cause, input, data) register_fsa_input_adv(cause, input, data, A_NOTHING, FALSE, __FUNCTION__)
rpm-build 3ee90c
rpm-build 3ee90c
#  define register_fsa_action(action) {					\
rpm-build 3ee90c
		fsa_actions |= action;					\
rpm-build 3ee90c
		if(fsa_source) {					\
rpm-build 3ee90c
			mainloop_set_trigger(fsa_source);			\
rpm-build 3ee90c
		}							\
rpm-build 3ee90c
		crm_debug("%s added action %s to the FSA",		\
rpm-build 3ee90c
			  __FUNCTION__, fsa_action2string(action));	\
rpm-build 3ee90c
	}
rpm-build 3ee90c
rpm-build 3ee90c
#  define register_fsa_input_before(cause, input, data) register_fsa_input_adv(cause, input, data, A_NOTHING, TRUE, __FUNCTION__)
rpm-build 3ee90c
rpm-build 3ee90c
#  define register_fsa_input_later(cause, input, data) register_fsa_input_adv(cause, input, data, A_NOTHING, FALSE, __FUNCTION__)
rpm-build 3ee90c
rpm-build 3ee90c
void delete_fsa_input(fsa_data_t * fsa_data);
rpm-build 3ee90c
rpm-build 3ee90c
fsa_data_t *get_message(void);
rpm-build 3ee90c
gboolean is_message(void);
rpm-build 3ee90c
rpm-build 3ee90c
extern gboolean relay_message(xmlNode * relay_message, gboolean originated_locally);
rpm-build 3ee90c
rpm-build 3ee90c
extern gboolean send_msg_via_ipc(xmlNode * msg, const char *sys);
rpm-build 3ee90c
rpm-build 3ee90c
gboolean crmd_is_proxy_session(const char *session);
rpm-build 3ee90c
void crmd_proxy_send(const char *session, xmlNode *msg);
rpm-build 3ee90c
rpm-build 3ee90c
extern gboolean crmd_authorize_message(xmlNode * client_msg, crm_client_t * curr_client, const char *proxy_session);
rpm-build 3ee90c
rpm-build 3ee90c
extern gboolean send_request(xmlNode * msg, char **msg_reference);
rpm-build 3ee90c
rpm-build 3ee90c
extern enum crmd_fsa_input handle_message(xmlNode * stored_msg, enum crmd_fsa_cause cause);
rpm-build 3ee90c
rpm-build 3ee90c
extern ha_msg_input_t *copy_ha_msg_input(ha_msg_input_t * orig);
rpm-build 3ee90c
rpm-build 3ee90c
void send_remote_state_message(const char *node_name, gboolean node_up);
rpm-build 3ee90c
rpm-build 3ee90c
#endif