crm_debug("Finished processing pecs_must constraint");
crm_devel("Finished processing pecs_must constraint");
void native_rsc_dependancy_rh_must(resource_t *rsc_lh, gboolean update_lh,				   resource_t *rsc_rh, gboolean update_rh){	native_variant_data_t *native_data_lh = NULL;	native_variant_data_t *native_data_rh = NULL;	gboolean do_merge = FALSE;	GListPtr old_list = NULL;	GListPtr merged_node_list = NULL;	float max_pri = rsc_lh->effective_priority;	if(max_pri < rsc_rh->effective_priority) {		max_pri = rsc_rh->effective_priority;	}	rsc_lh->effective_priority = max_pri;	rsc_rh->effective_priority = max_pri;		get_native_variant_data(native_data_lh, rsc_lh);	get_native_variant_data(native_data_rh, rsc_rh);	if(native_data_lh->color && native_data_rh->color) {		do_merge = TRUE;		merged_node_list = node_list_and(			native_data_lh->color->details->candidate_nodes,			native_data_rh->color->details->candidate_nodes, TRUE);				} else if(native_data_lh->color) {		do_merge = TRUE;		merged_node_list = node_list_and(			native_data_lh->color->details->candidate_nodes,			native_data_rh->allowed_nodes, TRUE);	} else if(native_data_rh->color) {		do_merge = TRUE;		merged_node_list = node_list_and(			native_data_lh->allowed_nodes,			native_data_rh->color->details->candidate_nodes, TRUE);	}			if(update_lh) {		crm_free(native_data_lh->color);		rsc_lh->runnable = rsc_rh->runnable;		native_data_lh->color    = copy_color(native_data_rh->color);	}	if(update_rh) {		crm_free(native_data_rh->color);		rsc_rh->runnable = rsc_lh->runnable;		native_data_rh->color    = copy_color(native_data_lh->color);	}	CRM_DEV_ASSERT(update_rh || update_lh);	if(crm_assert_failed == FALSE && do_merge) {		crm_debug("Merging candidate nodes");		old_list = native_data_rh->color->details->candidate_nodes;		native_data_rh->color->details->candidate_nodes = merged_node_list;		pe_free_shallow(old_list);	}			crm_debug("Finished processing pecs_must constraint");}