crm_debug("look for inputs in synapse %s", crm_element_value(synapse, XML_ATTR_ID));
crm_devel("look for inputs in synapse %s", crm_element_value(synapse, XML_ATTR_ID));
unpack_graph(crm_data_t *xml_graph){/*<transition_graph>  <synapse>    <action_set>      <rsc_op id="2"	...     <inputs>      <rsc_op id="2"	... */	int num_synapses = 0;	int num_actions = 0;	const char *time = crm_element_value(xml_graph, "transition_timeout");	set_timer_value(transition_timer, time, default_transition_timeout);	transition_timeout = transition_timer->timeout;		time = crm_element_value(xml_graph, "transition_fuzz");	set_timer_value(transition_fuzz_timer, time, transition_fuzz_timeout);	transition_counter++;	crm_info("Beginning transition %d - timeout set to %d",		 transition_counter, transition_timer->timeout);	xml_child_iter(		xml_graph, synapse, "synapse",		synapse_t *new_synapse = NULL;		crm_debug("looking in synapse %s", crm_element_value(synapse, XML_ATTR_ID));				crm_malloc(new_synapse, sizeof(synapse_t));		new_synapse->id        = num_synapses++;		new_synapse->complete  = FALSE;		new_synapse->confirmed = FALSE;		new_synapse->actions   = NULL;		new_synapse->inputs    = NULL;				graph = g_list_append(graph, new_synapse);		crm_debug("look for actions in synapse %s", crm_element_value(synapse, XML_ATTR_ID));		xml_child_iter(			synapse, actions, "action_set",			xml_child_iter(				actions, action, NULL,								action_t *new_action = unpack_action(action);				num_actions++;								if(new_action == NULL) {					continue;				}				crm_debug("Adding action %d to synapse %d",						 new_action->id, new_synapse->id);				new_synapse->actions = g_list_append(					new_synapse->actions,					new_action);				);						);		crm_debug("look for inputs in synapse %s", crm_element_value(synapse, XML_ATTR_ID));		xml_child_iter(			synapse, inputs, "inputs",			xml_child_iter(				inputs, trigger, NULL,				xml_child_iter(					trigger, input, NULL,					action_t *new_input =						unpack_action(input);					if(new_input == NULL) {						continue;					}					crm_debug("Adding input %d to synapse %d",						 new_input->id, new_synapse->id);										new_synapse->inputs = g_list_append(						new_synapse->inputs,						new_input);					);				);			);		);	crm_info("Unpacked %d actions in %d synapses",		 num_actions, num_synapses);	if(num_actions > 0) {		return TRUE;	} else {		/* indicate to caller that there's nothing to do */		return FALSE;	}	}