lh_resource->allowed_nodes);
lh_resource->allowed_nodes, TRUE);
choose_color(resource_t *lh_resource){	int lpc = 0;	if(lh_resource->runnable == FALSE) {		lh_resource->color = find_color(			lh_resource->candidate_colors, no_color);		lh_resource->provisional = FALSE;	}	if(lh_resource->provisional) {		GListPtr sorted_colors = g_list_sort(			lh_resource->candidate_colors, sort_color_weight);				lh_resource->candidate_colors = sorted_colors;			crm_verbose("Choose a color from %d possibilities",			    g_list_length(sorted_colors));		slist_iter(			this_color, color_t,lh_resource->candidate_colors, lpc,			GListPtr intersection = node_list_and(				this_color->details->candidate_nodes, 				lh_resource->allowed_nodes);			if(g_list_length(intersection) != 0) {				// TODO: merge node weights				GListPtr old_list =					this_color->details->candidate_nodes;				pe_free_shallow(old_list);								this_color->details->candidate_nodes =					intersection;								lh_resource->color = this_color;				lh_resource->provisional = FALSE;				break;			} else {				pe_free_shallow(intersection);			}						);	}	return !lh_resource->provisional;}