71 for (
const GList *synapse_iter = graph->
synapses;
72 synapse_iter != NULL; synapse_iter = synapse_iter->next) {
76 for (
const GList *action_iter = synapse->
actions;
77 action_iter != NULL; action_iter = action_iter->next) {
123 GString *pending = NULL;
125 for (
const GList *lpc = synapse->
inputs; lpc != NULL; lpc = lpc->next) {
129 pcmk__add_word(&pending, 1024,
ID(
input->xml));
134 }
else if (find_graph_action_by_id(graph,
input->id) != NULL) {
136 pcmk__add_word(&pending, 1024,
ID(
input->xml));
144 log_unresolved_inputs(
unsigned int log_level,
pcmk__graph_t *graph,
147 for (GList *lpc = synapse->
inputs; lpc != NULL; lpc = lpc->next) {
152 if (find_graph_action_by_id(graph,
input->id) == NULL) {
154 " * [Input %2d]: Unresolved dependency %s op %s%s%s",
168 synapse_state_str(synapse),
169 actiontype2text(
action->type), key);
172 "[Action %4d]: %-50s%s%s (priority: %d, waiting: %s)",
182 GString *g_pending = NULL;
183 const char *pending =
"none";
186 g_pending = synapse_pending_inputs(graph, synapse);
188 if (g_pending != NULL) {
189 pending = (
const char *) g_pending->str;
193 for (GList *lpc = synapse->
actions; lpc != NULL; lpc = lpc->next) {
194 log_synapse_action(log_level, synapse,
198 if (g_pending != NULL) {
199 g_string_free(g_pending, TRUE);
203 log_unresolved_inputs(log_level, graph, synapse);
210 log_synapse(log_level, NULL,
action->synapse);
216 if ((graph == NULL) || (graph->
num_actions == 0)) {
223 do_crm_log(log_level,
"Graph %d with %d actions:" 224 " batch-limit=%d jobs, network-delay=%ums",
228 for (GList *lpc = graph->
synapses; lpc != NULL; lpc = lpc->next) {
const char * pcmk__graph_status2text(enum pcmk__graph_status state)
enum crm_ais_msg_types type
#define XML_LRM_ATTR_TASK_KEY
#define crm_debug(fmt, args...)
const char * crm_element_value(const xmlNode *data, const char *name)
Retrieve the value of an XML attribute.
#define do_crm_log(level, fmt, args...)
Log a message.
char * crm_strdup_printf(char const *format,...) G_GNUC_PRINTF(1
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Wrappers for and extensions to libxml2.
void pcmk__log_graph_action(int log_level, pcmk__graph_action_t *action)
void pcmk__log_graph(unsigned int log_level, pcmk__graph_t *graph)
#define XML_LRM_ATTR_TARGET