|
rpm-build |
3ee90c |
/*
|
|
rpm-build |
3ee90c |
* Copyright 2004-2019 the Pacemaker project contributors
|
|
rpm-build |
3ee90c |
*
|
|
rpm-build |
3ee90c |
* The version control history for this file may have further details.
|
|
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 CRMD_UTILS__H
|
|
rpm-build |
3ee90c |
# define CRMD_UTILS__H
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
# include <crm/crm.h>
|
|
rpm-build |
3ee90c |
# include <crm/common/xml.h>
|
|
rpm-build |
3ee90c |
# include <crm/cib/internal.h> // CIB_OP_MODIFY
|
|
rpm-build |
3ee90c |
# include <controld_fsa.h> // fsa_cib_conn
|
|
rpm-build |
3ee90c |
# include <controld_alerts.h>
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
# define FAKE_TE_ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
# define fsa_cib_update(section, data, options, call_id, user_name) \
|
|
rpm-build |
3ee90c |
if(fsa_cib_conn != NULL) { \
|
|
rpm-build |
3ee90c |
call_id = cib_internal_op( \
|
|
rpm-build |
3ee90c |
fsa_cib_conn, CIB_OP_MODIFY, NULL, section, data, \
|
|
rpm-build |
3ee90c |
NULL, options, user_name); \
|
|
rpm-build |
3ee90c |
\
|
|
rpm-build |
3ee90c |
} else { \
|
|
rpm-build |
3ee90c |
crm_err("No CIB manager connection available"); \
|
|
rpm-build |
3ee90c |
}
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
static inline void
|
|
rpm-build |
3ee90c |
fsa_cib_anon_update(const char *section, xmlNode *data) {
|
|
rpm-build |
3ee90c |
if (fsa_cib_conn == NULL) {
|
|
rpm-build |
3ee90c |
crm_err("No CIB connection available");
|
|
rpm-build |
3ee90c |
} else {
|
|
rpm-build |
3ee90c |
int opts = cib_scope_local | cib_quorum_override | cib_can_create;
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
fsa_cib_conn->cmds->modify(fsa_cib_conn, section, data, opts);
|
|
rpm-build |
3ee90c |
}
|
|
rpm-build |
3ee90c |
}
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
extern gboolean fsa_has_quorum;
|
|
rpm-build |
3ee90c |
extern int last_peer_update;
|
|
rpm-build |
3ee90c |
extern int last_resource_update;
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
enum node_update_flags {
|
|
rpm-build |
3ee90c |
node_update_none = 0x0000,
|
|
rpm-build |
3ee90c |
node_update_quick = 0x0001,
|
|
rpm-build |
3ee90c |
node_update_cluster = 0x0010,
|
|
rpm-build |
3ee90c |
node_update_peer = 0x0020,
|
|
rpm-build |
3ee90c |
node_update_join = 0x0040,
|
|
rpm-build |
3ee90c |
node_update_expected = 0x0100,
|
|
rpm-build |
3ee90c |
node_update_all = node_update_cluster|node_update_peer|node_update_join|node_update_expected,
|
|
rpm-build |
3ee90c |
};
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
crm_exit_t crmd_exit(crm_exit_t exit_code);
|
|
rpm-build |
3ee90c |
_Noreturn void crmd_fast_exit(crm_exit_t exit_code);
|
|
rpm-build |
3ee90c |
void pe_subsystem_free(void);
|
|
rpm-build |
3ee90c |
void controld_stop_sched_timer(void);
|
|
rpm-build |
3ee90c |
void controld_free_sched_timer(void);
|
|
rpm-build |
3ee90c |
void controld_expect_sched_reply(xmlNode *msg);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
void fsa_dump_actions(long long action, const char *text);
|
|
rpm-build |
3ee90c |
void fsa_dump_inputs(int log_level, const char *text, long long input_register);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
gboolean update_dc(xmlNode * msg);
|
|
rpm-build |
3ee90c |
void crm_update_peer_join(const char *source, crm_node_t * node, enum crm_join_phase phase);
|
|
rpm-build |
3ee90c |
xmlNode *create_node_state_update(crm_node_t *node, int flags,
|
|
rpm-build |
3ee90c |
xmlNode *parent, const char *source);
|
|
rpm-build |
3ee90c |
void populate_cib_nodes(enum node_update_flags flags, const char *source);
|
|
rpm-build |
3ee90c |
void crm_update_quorum(gboolean quorum, gboolean force_update);
|
|
rpm-build |
3ee90c |
void controld_close_attrd_ipc(void);
|
|
rpm-build |
3ee90c |
void update_attrd(const char *host, const char *name, const char *value, const char *user_name, gboolean is_remote_node);
|
|
rpm-build |
3ee90c |
void update_attrd_remote_node_removed(const char *host, const char *user_name);
|
|
rpm-build |
3ee90c |
void update_attrd_clear_failures(const char *host, const char *rsc,
|
|
rpm-build |
3ee90c |
const char *op, const char *interval_spec,
|
|
rpm-build |
3ee90c |
gboolean is_remote_node);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
int crmd_join_phase_count(enum crm_join_phase phase);
|
|
rpm-build |
3ee90c |
void crmd_join_phase_log(int level);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
void crmd_peer_down(crm_node_t *peer, bool full);
|
|
rpm-build |
3ee90c |
unsigned int cib_op_timeout(void);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
bool feature_set_compatible(const char *dc_version, const char *join_version);
|
|
rpm-build |
3ee90c |
bool controld_action_is_recordable(const char *action);
|
|
rpm-build |
3ee90c |
|
|
|
409f23 |
// Subsections of node_state
|
|
|
409f23 |
enum controld_section_e {
|
|
|
409f23 |
controld_section_lrm,
|
|
|
409f23 |
controld_section_attrs,
|
|
|
409f23 |
controld_section_all,
|
|
|
409f23 |
};
|
|
|
409f23 |
|
|
|
409f23 |
void controld_delete_node_state(const char *uname,
|
|
|
409f23 |
enum controld_section_e section, int options);
|
|
|
409f23 |
|
|
rpm-build |
3ee90c |
const char *get_node_id(xmlNode *lrm_rsc_op);
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
/* Convenience macro for registering a CIB callback
|
|
rpm-build |
3ee90c |
* (assumes that data can be freed with free())
|
|
rpm-build |
3ee90c |
*/
|
|
rpm-build |
3ee90c |
# define fsa_register_cib_callback(id, flag, data, fn) do { \
|
|
rpm-build |
3ee90c |
CRM_ASSERT(fsa_cib_conn); \
|
|
rpm-build |
3ee90c |
fsa_cib_conn->cmds->register_callback_full( \
|
|
rpm-build |
3ee90c |
fsa_cib_conn, id, cib_op_timeout(), \
|
|
rpm-build |
3ee90c |
flag, data, #fn, fn, free); \
|
|
rpm-build |
3ee90c |
} while(0)
|
|
rpm-build |
3ee90c |
|
|
rpm-build |
3ee90c |
#endif
|