uname, ha_state, ccm_state, join_state, exp_state, crm_state);
uname, crm_str(ha_state), crm_str(ccm_state), crm_str(join_state), crm_str(exp_state), crm_str(crm_state));
is_node_online(crm_data_t *node_state) {	const char *uname      = crm_element_value(node_state,XML_ATTR_UNAME);	const char *join_state = crm_element_value(node_state,XML_CIB_ATTR_JOINSTATE);	const char *exp_state  = crm_element_value(node_state,XML_CIB_ATTR_EXPSTATE);	const char *crm_state  = crm_element_value(node_state,XML_CIB_ATTR_CRMDSTATE);	const char *ha_state   = crm_element_value(node_state,XML_CIB_ATTR_HASTATE);	const char *ccm_state  = crm_element_value(node_state,XML_CIB_ATTR_INCCM);	if(safe_str_neq(join_state, CRMD_JOINSTATE_DOWN)	   && (ha_state == NULL || safe_str_eq(ha_state, ACTIVESTATUS))	   && crm_is_true(ccm_state)	   && safe_str_eq(crm_state, ONLINESTATUS)) {		crm_devel("Node %s is online", uname);		return TRUE;	}	crm_devel("Node %s: ha=%s ccm=%s join=%s exp=%s crm=%s",		  uname, ha_state, ccm_state, join_state, exp_state, crm_state);	crm_devel("Node %s is offline", uname);	return FALSE;}