fsa_membership_copy->members_size);  } else if(g_hash_table_size(confirmed_nodes) == num_join_invites) { crm_warn("All %d (%d total) cluster " "nodes are eligable to run resources", g_hash_table_size(confirmed_nodes), fsa_membership_copy->members_size);  } else { crm_warn("Only %d of %d (%d total) cluster " "nodes are eligable to run resources", num_join_invites, g_hash_table_size(confirmed_nodes),
do_state_transition(long long actions,		    enum crmd_fsa_cause cause,		    enum crmd_fsa_state cur_state,		    enum crmd_fsa_state next_state,		    enum crmd_fsa_input current_input,		    fsa_data_t *msg_data){	gboolean clear_recovery_bit = TRUE;	long long tmp = actions;	const char *state_from = fsa_state2string(cur_state);	const char *state_to   = fsa_state2string(next_state);	const char *input      = fsa_input2string(current_input);		time_t now = time(NULL);	if(cur_state == next_state) {		crm_err("%s called in state %s with no transtion",		       __FUNCTION__, state_from);		return A_NOTHING;	}		if(current_input != I_DC_HEARTBEAT && cur_state != S_NOT_DC){		fprintf(dot_strm,			"\t\"%s\" -> \"%s\" [ label=\"%s\" cause=%s origin=%s ] // %s",			state_from, state_to, input, fsa_cause2string(cause), msg_data->where,			asctime(localtime(&now)));		fflush(dot_strm);	}	crm_info("State transition \"%s\" -> \"%s\" [ input=%s cause=%s origin=%s %s ]",		 state_from, state_to, input, fsa_cause2string(cause), msg_data->where,		 asctime(localtime(&now)));	switch(next_state) {		case S_ELECTION:			crm_info("Resetting our DC to NULL on election");			crm_free(fsa_our_dc);			fsa_our_dc = NULL;			break;		case S_NOT_DC:			if(is_set(fsa_input_register, R_SHUTDOWN)){				crm_info("(Re)Issuing shutdown request now"					 " that we have a new DC");				tmp = set_bit(tmp, A_SHUTDOWN_REQ);			}			if(fsa_our_dc == NULL) {				crm_err("Reached S_NOT_DC without a DC"					" being recorded");			}			break;		case S_RECOVERY:			clear_recovery_bit = FALSE;			break;		case S_POLICY_ENGINE:			if(num_join_invites			   != fsa_membership_copy->members_size) {				crm_warn("Only %d (of %d) cluster nodes are"					 " eligable to run resources.",					 num_join_invites,					 fsa_membership_copy->members_size);			} else {				crm_info("All %d clusters nodes are"					 " eligable to run resources.",					 fsa_membership_copy->members_size);			}			break;					case S_IDLE:			dump_rsc_info();			break;					default:			break;	}	if(clear_recovery_bit && next_state != S_PENDING) {		tmp = clear_bit(tmp, A_RECOVER);	} else if(clear_recovery_bit == FALSE) {		tmp = set_bit(tmp, A_RECOVER);	}		if(tmp != actions) {		crm_info("Action b4    %.16llx ", actions);		crm_info("Action after %.16llx ", tmp);		actions = tmp;	}	return actions;}