prefix, action->id, action->complete?"Completed": action->invoked?"In-flight":"Pending",
prefix, action->id, action->complete?"Completed": action->invoked?"In-flight": action->sent_update?"Update sent":"Pending",
print_action(const char *prefix, action_t *action, int log_level) {	do_crm_log(log_level, __FILE__, __FUNCTION__, "%s[Action %d] %s (%s fail)",		   prefix, action->id, action->complete?"Completed":					action->invoked?"In-flight":"Pending",		   action->can_fail?"can":"cannot");			switch(action->type) {		case action_type_pseudo:			do_crm_log(log_level, __FILE__, __FUNCTION__,				   "%s\tPseudo Op: %s", prefix,				   crm_element_value(					   action->xml, XML_LRM_ATTR_TASK));			break;		case action_type_rsc:			do_crm_log(log_level, __FILE__, __FUNCTION__,				   "%s\tResource Op: %s/%s on %s (%s)", prefix,				   crm_element_value(					   action->xml, XML_LRM_ATTR_RSCID),				   crm_element_value(					   action->xml, XML_LRM_ATTR_TASK),				   crm_element_value(					   action->xml, XML_LRM_ATTR_TARGET),				   crm_element_value(					   action->xml, XML_LRM_ATTR_TARGET_UUID));			break;		case action_type_crm:				do_crm_log(log_level, __FILE__, __FUNCTION__,				   "%s\tCRM Op: %s on %s (%s)", prefix,				   crm_element_value(					   action->xml, XML_LRM_ATTR_TASK),				   crm_element_value(					   action->xml, XML_LRM_ATTR_TARGET),				   crm_element_value(					   action->xml, XML_LRM_ATTR_TARGET_UUID));			break;	}	if(action->timeout > 0 || action->timer->source_id > 0) {		do_crm_log(log_level, __FILE__, __FUNCTION__,			   "%s\ttimeout=%d, timer=%d", prefix,			   action->timeout, action->timer->source_id);	}		if(action->complete == FALSE) {		crm_log_xml(LOG_DEBUG_2, "\tRaw action", action->xml);	}}