69 cib_t *cib, xmlNode *current_cib,
72 uint32_t show, uint32_t show_opts,
73 const char *only_node,
const char *only_rsc,
74 const char *neg_location_prefix)
80 GList *resources = NULL;
124 out->
message(out,
"cluster-status",
126 stonith_history, fence_history, show, show_opts,
127 neg_location_prefix, unames, resources);
129 g_list_free_full(unames, free);
130 g_list_free_full(resources, free);
133 stonith_history = NULL;
165 show_opts, NULL, NULL, NULL, 0);
207 uint32_t show_opts,
const char *only_node,
const char *only_rsc,
208 const char *neg_location_prefix,
unsigned int timeout_ms)
210 xmlNode *current_cib = NULL;
214 time_t last_updated = 0;
228 last_updated = time(NULL);
230 switch (pcmkd_state) {
240 out->
message(out,
"pacemakerd-health",
241 NULL, pcmkd_state, NULL, last_updated);
246 stonith = fencing_connect();
254 out->
message(out,
"pacemakerd-health",
255 NULL, pcmkd_state, NULL, last_updated);
270 pcmkd_state, fence_history, show,
271 show_opts, only_node, only_rsc,
272 neg_location_prefix);
274 out->
err(out,
"Error outputting status info from the fencer or CIB");
int cib__clean_up_connection(cib_t **cib)
int cib__signon_query(pcmk__output_t *out, cib_t **cib, xmlNode **cib_object)
void cib_delete(cib_t *cib)
Free all memory used by CIB connection.
cib_t * cib_new(void)
Create a new CIB connection object.
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
void stonith__api_free(stonith_t *stonith_api)
void stonith__history_free(stonith_history_t *head)
stonith_t * stonith__api_new(void)
void stonith__register_messages(pcmk__output_t *out)
@ pcmk_pacemakerd_state_invalid
@ pcmk_pacemakerd_state_running
@ pcmk_pacemakerd_state_shutting_down
@ pcmk_pacemakerd_state_remote
pcmk_scheduler_t * scheduler
Control output from tools.
@ pcmk_show_inactive_rscs
void pcmk__xml_output_finish(pcmk__output_t *out, crm_exit_t exit_status, xmlNodePtr *xml)
int pcmk__xml_output_new(pcmk__output_t **out, xmlNodePtr *xml)
int pcmk__status(pcmk__output_t *out, cib_t *cib, enum pcmk__fence_history fence_history, uint32_t show, uint32_t show_opts, const char *only_node, const char *only_rsc, const char *neg_location_prefix, unsigned int timeout_ms)
int pcmk_status(xmlNodePtr *xml)
Output cluster status formatted like crm_mon --output-as=xml
int pcmk__output_cluster_status(pcmk_scheduler_t *scheduler, stonith_t *stonith, cib_t *cib, xmlNode *current_cib, enum pcmk_pacemakerd_state pcmkd_state, enum pcmk__fence_history fence_history, uint32_t show, uint32_t show_opts, const char *only_node, const char *only_rsc, const char *neg_location_prefix)
int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name, unsigned int message_timeout_ms, bool show_output, enum pcmk_pacemakerd_state *state)
int pcmk__get_fencing_history(stonith_t *st, stonith_history_t **stonith_history, enum pcmk__fence_history fence_history)
Fetch fencing history, optionally reducing it.
pcmk__fence_history
Control how much of the fencing history is output.
@ pcmk__fence_history_none
@ pcmk__fence_history_full
void pcmk__register_lib_messages(pcmk__output_t *out)
void pcmk__unpack_constraints(pcmk_scheduler_t *scheduler)
GList * pe__build_rsc_list(pcmk_scheduler_t *scheduler, const char *s)
void pe__register_messages(pcmk__output_t *out)
GList * pe__build_node_name_list(pcmk_scheduler_t *scheduler, const char *s)
Function and executable result codes.
const char * pcmk_rc_str(int rc)
Get a user-friendly description of a return code.
crm_exit_t pcmk_rc2exitc(int rc)
Map a function return code to the most similar exit code.
#define pcmk__mem_assert(ptr)
void pcmk_free_scheduler(pcmk_scheduler_t *scheduler)
Free scheduler data.
pcmk_scheduler_t * pcmk_new_scheduler(void)
Create a new object to hold scheduler data.
void pcmk_reset_scheduler(pcmk_scheduler_t *scheduler)
Reset scheduler data to defaults.
int pcmk__update_configured_schema(xmlNode **xml, bool to_logs)
Update XML from its configured schema to the latest major series.
gboolean cluster_status(pcmk_scheduler_t *scheduler)
This structure contains everything that makes up a single output formatter.
int(* message)(pcmk__output_t *out, const char *message_id,...)
int int void(* err)(pcmk__output_t *out, const char *format,...) G_GNUC_PRINTF(2
pcmk__scheduler_private_t * priv
int(* connect)(stonith_t *st, const char *name, int *stonith_fd)
Connect to the local fencer.
Fencer API connection object.
stonith_api_operations_t * cmds
xmlNode * pcmk__xml_copy(xmlNode *parent, xmlNode *src)
void pcmk__xml_free(xmlNode *xml)