10 #ifndef CIB_INTERNAL__H 11 # define CIB_INTERNAL__H 17 #define PCMK__CIB_REQUEST_SECONDARY "cib_slave" 18 #define PCMK__CIB_REQUEST_ALL_SECONDARY "cib_slave_all" 19 #define PCMK__CIB_REQUEST_PRIMARY "cib_master" 20 #define PCMK__CIB_REQUEST_SYNC_TO_ALL "cib_sync" 21 #define PCMK__CIB_REQUEST_SYNC_TO_ONE "cib_sync_one" 22 #define PCMK__CIB_REQUEST_IS_PRIMARY "cib_ismaster" 23 #define PCMK__CIB_REQUEST_BUMP "cib_bump" 24 #define PCMK__CIB_REQUEST_QUERY "cib_query" 25 #define PCMK__CIB_REQUEST_CREATE "cib_create" 26 #define PCMK__CIB_REQUEST_MODIFY "cib_modify" 27 #define PCMK__CIB_REQUEST_DELETE "cib_delete" 28 #define PCMK__CIB_REQUEST_ERASE "cib_erase" 29 #define PCMK__CIB_REQUEST_REPLACE "cib_replace" 30 #define PCMK__CIB_REQUEST_APPLY_PATCH "cib_apply_diff" 31 #define PCMK__CIB_REQUEST_UPGRADE "cib_upgrade" 32 #define PCMK__CIB_REQUEST_ABS_DELETE "cib_delete_alt" 33 #define PCMK__CIB_REQUEST_NOOP "noop" 34 #define PCMK__CIB_REQUEST_SHUTDOWN "cib_shutdown_req" 36 # define F_CIB_CLIENTID "cib_clientid" 37 # define F_CIB_CALLOPTS "cib_callopt" 38 # define F_CIB_CALLID "cib_callid" 39 # define F_CIB_CALLDATA "cib_calldata" 40 # define F_CIB_OPERATION "cib_op" 41 # define F_CIB_ISREPLY "cib_isreplyto" 42 # define F_CIB_SECTION "cib_section" 43 # define F_CIB_HOST "cib_host" 44 # define F_CIB_RC "cib_rc" 45 # define F_CIB_UPGRADE_RC "cib_upgrade_rc" 46 # define F_CIB_DELEGATED "cib_delegated_from" 47 # define F_CIB_OBJID "cib_object" 48 # define F_CIB_OBJTYPE "cib_object_type" 49 # define F_CIB_EXISTING "cib_existing_object" 50 # define F_CIB_SEENCOUNT "cib_seen" 51 # define F_CIB_TIMEOUT "cib_timeout" 52 # define F_CIB_UPDATE "cib_update" 53 # define F_CIB_GLOBAL_UPDATE "cib_update" 54 # define F_CIB_UPDATE_RESULT "cib_update_result" 55 # define F_CIB_CLIENTNAME "cib_clientname" 56 # define F_CIB_NOTIFY_TYPE "cib_notify_type" 57 # define F_CIB_NOTIFY_ACTIVATE "cib_notify_activate" 58 # define F_CIB_UPDATE_DIFF "cib_update_diff" 59 # define F_CIB_USER "cib_user" 60 # define F_CIB_LOCAL_NOTIFY_ID "cib_local_notify_id" 61 # define F_CIB_PING_ID "cib_ping_id" 62 # define F_CIB_SCHEMA_MAX "cib_schema_max" 63 # define F_CIB_CHANGE_SECTION "cib_change_section" 66 # define T_CIB_NOTIFY "cib_notify" 68 # define T_CIB_PRE_NOTIFY "cib_pre_notify" 69 # define T_CIB_POST_NOTIFY "cib_post_notify" 70 # define T_CIB_UPDATE_CONFIRM "cib_update_confirmation" 71 # define T_CIB_REPLACE_NOTIFY "cib_refresh_notify" 87 int *_admin_epoch,
int *_epoch,
int *_updates);
100 void (*
callback) (xmlNode *, int, int, xmlNode *,
void *);
115 #define cib__set_call_options(cib_call_opts, call_for, flags_to_set) do { \ 116 cib_call_opts = pcmk__set_flags_as(__func__, __LINE__, \ 117 LOG_TRACE, "CIB call", (call_for), (cib_call_opts), \ 118 (flags_to_set), #flags_to_set); \ 121 #define cib__clear_call_options(cib_call_opts, call_for, flags_to_clear) do { \ 122 cib_call_opts = pcmk__clear_flags_as(__func__, __LINE__, \ 123 LOG_TRACE, "CIB call", (call_for), (cib_call_opts), \ 124 (flags_to_clear), #flags_to_clear); \ 127 typedef int (*
cib_op_t) (
const char *, int,
const char *, xmlNode *,
128 xmlNode *, xmlNode *, xmlNode **, xmlNode **);
133 const char *section, xmlNode * req, xmlNode *
input,
134 gboolean manage_counters, gboolean * config_changed,
135 xmlNode * current_cib, xmlNode ** result_cib, xmlNode ** diff,
139 const char *section, xmlNode *
data,
int call_options,
140 const char *user_name);
145 int cib_process_query(
const char *op,
int options,
const char *section, xmlNode * req,
146 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
149 int cib_process_erase(
const char *op,
int options,
const char *section, xmlNode * req,
150 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
153 int cib_process_bump(
const char *op,
int options,
const char *section, xmlNode * req,
154 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
158 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
161 int cib_process_create(
const char *op,
int options,
const char *section, xmlNode * req,
162 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
165 int cib_process_modify(
const char *op,
int options,
const char *section, xmlNode * req,
166 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
169 int cib_process_delete(
const char *op,
int options,
const char *section, xmlNode * req,
170 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
173 int cib_process_diff(
const char *op,
int options,
const char *section, xmlNode * req,
174 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
178 xmlNode *
input, xmlNode * existing_cib, xmlNode ** result_cib,
204 const xmlNode *req, xmlNode *
input, xmlNode *existing_cib,
205 xmlNode **result_cib, xmlNode ** answer);
210 const char *section, xmlNode *
data,
211 xmlNode ** output_data,
int call_options,
const char *user_name);
217 const char *cib_filename);
249 const char *section,
const char *node_uuid,
const char *set_type,
250 const char *set_name,
const char *attr_id,
const char *attr_name,
251 const char *attr_value,
const char *user_name,
255 const char *node_uuid,
const char *set_type,
const char *set_name,
256 const char *attr_id,
const char *attr_name,
const char *user_name,
260 const char *section,
const char *node_uuid,
const char *set_type,
261 const char *set_name,
const char *attr_id,
const char *attr_name,
262 const char *attr_value,
const char *user_name);
int cib__signon_query(pcmk__output_t *out, cib_t **cib, xmlNode **cib_object)
int cib_process_delete(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
The alerts section has changed.
int cib_process_replace(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
void(* callback)(const char *event, xmlNode *msg)
int cib_process_erase(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_process_bump(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
The nodes section has changed.
struct cib_notify_client_s cib_notify_client_t
int cib__delete_node_attr(pcmk__output_t *out, cib_t *cib, int options, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *attr_value, const char *user_name)
cib_callback_client_t * cib__lookup_id(int call_id)
void cib_native_notify(gpointer data, gpointer user_data)
int cib__get_node_attrs(pcmk__output_t *out, cib_t *cib, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *user_name, xmlNode **result)
The status section has changed.
cib_t * cib_new_variant(void)
struct timer_rec_s * timer
Formatted output for pacemaker tools.
int cib_process_diff(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int(* cib_op_t)(const char *, int, const char *, xmlNode *, xmlNode *, xmlNode *, xmlNode **, xmlNode **)
void(* callback)(xmlNode *, int, int, xmlNode *, void *)
void cib__set_output(cib_t *cib, pcmk__output_t *out)
int cib__clean_up_connection(cib_t **cib)
xmlNode * cib_create_op(int call_id, const char *op, const char *host, const char *section, xmlNode *data, int call_options, const char *user_name)
int cib_process_query(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_file_write_with_digest(xmlNode *cib_root, const char *cib_dirname, const char *cib_filename)
gboolean cib_read_config(GHashTable *options, xmlNode *current_cib)
int cib_file_read_and_verify(const char *filename, const char *sigfile, xmlNode **root)
pcmk__action_result_t result
gboolean cib_diff_version_details(xmlNode *diff, int *admin_epoch, int *epoch, int *updates, int *_admin_epoch, int *_epoch, int *_updates)
This structure contains everything that makes up a single output formatter.
int cib_perform_op(const char *op, int call_options, cib_op_t *fn, gboolean is_query, const char *section, xmlNode *req, xmlNode *input, gboolean manage_counters, gboolean *config_changed, xmlNode *current_cib, xmlNode **result_cib, xmlNode **diff, xmlNode **output)
int cib__update_node_attr(pcmk__output_t *out, cib_t *cib, int call_options, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *attr_value, const char *user_name, const char *node_type)
bool cib__config_changed_v1(xmlNode *last, xmlNode *next, xmlNode **diff)
int cib_process_xpath(const char *op, int options, const char *section, const xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
void cib_native_callback(cib_t *cib, xmlNode *msg, int call_id, int rc)
int cib_internal_op(cib_t *cib, const char *op, const char *host, const char *section, xmlNode *data, xmlNode **output_data, int call_options, const char *user_name)
void(* free_func)(void *)
int cib_process_upgrade(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_process_modify(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
struct cib_callback_client_s cib_callback_client_t
int cib_process_create(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
No sections have changed.