if(op_status_i == -1) {  crm_debug("Ignoring TE initiated updates"); return TRUE; }
process_graph_event(crm_data_t *event, const char *event_node){	int action_id         = -1;	int op_status_i       = 0;	const char *task      = NULL;	const char *rsc_id    = NULL;	const char *op_status = NULL;	if(event != NULL) {		task      = crm_element_value(event, XML_LRM_ATTR_LASTOP);		rsc_id    = crm_element_value(event, XML_ATTR_ID);		op_status = crm_element_value(event, XML_LRM_ATTR_OPSTATUS);		if(op_status != NULL) {			op_status_i = atoi(op_status);		}		crm_debug("Processing CIB update: %s %s on %s: %s",			  task, rsc_id, event_node, op_status2text(op_status_i));	}	next_transition_timeout = transition_timeout;			if(op_status_i == -1) {		/* just information that the action was sent */		crm_debug("Ignoring TE initiated updates");		return TRUE;	}	slist_iter(		synapse, synapse_t, graph, lpc,		/* lookup event */		slist_iter(			action, action_t, synapse->actions, lpc2,			action_id = match_graph_event(action, event,event_node);			if(action_id != -1) {				break;			}			);		if(action_id != -1) {			break;		}		);	if(event == NULL) {		crm_debug("a transition is starting");			} else if(action_id > -1) {		crm_log_xml_debug_3(event, "Event found");			} else if(action_id == -2) {		crm_log_xml_info(event, "Event found but failed");			} else {		/* unexpected event, trigger a pe-recompute */		/* possibly do this only for certain types of actions */		send_complete("Event not matched", event, te_update);		return FALSE;	}	process_trigger(action_id);	check_for_completion();	return TRUE;}