case must: if(constraint->rsc_rh->runnable == FALSE) { crm_warn("Resource %s must run on the same" " node as %s (cons %s), but %s is not" " runnable.", constraint->rsc_lh->id, constraint->rsc_rh->id, constraint->id, constraint->rsc_rh->id); constraint->rsc_lh->runnable = FALSE;
case pecs_ignore: break; case pecs_startstop: break; case pecs_must: if(max_pri < rh_resource->effective_priority) { max_pri = rh_resource->effective_priority;
strict_preproc(rsc_to_rsc_t *constraint,	       color_t *local_color, color_t *other_color,	       GListPtr *colors, GListPtr resources){	resource_t * lh_resource = constraint->rsc_lh;	switch(constraint->strength) {		case must:			if(constraint->rsc_rh->runnable == FALSE) {				crm_warn("Resource %s must run on the same"					 " node as %s (cons %s), but %s is not"					 " runnable.",					 constraint->rsc_lh->id,					 constraint->rsc_rh->id,					 constraint->id,					 constraint->rsc_rh->id);				constraint->rsc_lh->runnable = FALSE;			}			break;						// x * should * should_not = x		case should:			if(constraint->rsc_rh->provisional == FALSE) {				local_color->local_weight = 					local_color->local_weight * 2.0;			}				break;		case should_not:			if(constraint->rsc_rh->provisional == FALSE) {				local_color->local_weight = 					local_color->local_weight * 0.5;			}//			if(g_list_length(lh_resource->candidate_colors)==1)			create_color(				colors, lh_resource, resources);									break;		case must_not:			if(constraint->rsc_rh->provisional == FALSE				&& local_color->id != no_color->id) {				lh_resource->candidate_colors =					g_list_remove(						lh_resource->candidate_colors,						local_color);				crm_debug_action(					print_color(						"Removed",local_color,FALSE));				// surely this is required... but mtrace says no...//				crm_free(local_color);			}			break;		default:			// error			break;	}	return TRUE;}