crm_debug("no rules for constraint %s", id); 
crm_debug_2("no rules for constraint %s", id); 
unpack_rsc_location(	crm_data_t * xml_obj,	GListPtr rsc_list, GListPtr node_list, GListPtr *placement_constraints){	gboolean were_rules = FALSE;	const char *id_lh   = crm_element_value(xml_obj, "rsc");	const char *id      = crm_element_value(xml_obj, XML_ATTR_ID);	resource_t *rsc_lh = pe_find_resource(rsc_list, id_lh);	if(rsc_lh == NULL) {		pe_warn("No resource (con=%s, rsc=%s)", id, id_lh);		return FALSE;	}				xml_child_iter(		xml_obj, rule, XML_TAG_RULE,		gboolean first_expr = TRUE;		gboolean can_run    = FALSE;		gboolean do_and     = TRUE;		gboolean rule_has_expressions;		const char *rule_id = crm_element_value(rule, XML_ATTR_ID);		const char *score   = crm_element_value(rule, XML_RULE_ATTR_SCORE);		const char *boolean = crm_element_value(rule, XML_RULE_ATTR_BOOLEAN_OP);		GListPtr match_L    = NULL;		GListPtr old_list   = NULL;		float score_f       = 0.0;		rsc_to_node_t *new_con = NULL;		were_rules = TRUE;		if(score == NULL) {			score_f = 0.0;					} else if(safe_str_eq(score, MINUS_INFINITY_S)) {			score_f = -INFINITY;		} else if(safe_str_eq(score, INFINITY_S)) {			score_f = INFINITY;		} else {			score_f = atof(score);		}				if(safe_str_eq(boolean, "or")) {			do_and = FALSE;		}		if(score_f >= 0.0) {			can_run = TRUE;		}		new_con = rsc2node_new(rule_id, rsc_lh, score_f,				       can_run, NULL, placement_constraints);		if(new_con == NULL) {			continue;		}				crm_debug_4("processing rule: %s",			  crm_element_value(rule, XML_ATTR_ID));		rule_has_expressions = FALSE;		xml_child_iter(			rule, expr, XML_TAG_EXPRESSION,			const char *attr  = crm_element_value(				expr, XML_EXPR_ATTR_ATTRIBUTE);			const char *op    = crm_element_value(				expr, XML_EXPR_ATTR_OPERATION);			const char *value = crm_element_value(				expr, XML_EXPR_ATTR_VALUE);			const char *type  = crm_element_value(				expr, XML_EXPR_ATTR_TYPE);						rule_has_expressions = TRUE;			crm_debug_4("processing expression: %s",				  crm_element_value(expr, XML_ATTR_ID));			match_L = apply_node_expression(				attr, op, value, type, node_list);						if(first_expr) {				new_con->node_list_rh =	node_list_dup(					match_L, FALSE);				first_expr = FALSE;				continue;			}			old_list = new_con->node_list_rh;			if(do_and) {				crm_debug_4("do_and");								new_con->node_list_rh = node_list_and(					old_list, match_L, FALSE);			} else {				crm_debug_4("do_or");								new_con->node_list_rh = node_list_or(					old_list, match_L, FALSE);			}			pe_free_shallow_adv(match_L,  FALSE);			pe_free_shallow_adv(old_list, TRUE);			);		if(rule_has_expressions == FALSE && symmetric_cluster == FALSE) {			/* feels like a hack */			crm_debug_3("Rule %s had no expressions,"				  " adding all nodes", crm_element_value(rule, XML_ATTR_ID));			new_con->node_list_rh = node_list_dup(node_list,FALSE);		}				if(new_con->node_list_rh == NULL) {			crm_debug("No matching nodes for constraint/rule %s/%s",				 id, crm_element_value(rule, XML_ATTR_ID));		}				crm_action_debug_3(print_rsc_to_node("Added", new_con, FALSE));		);	if(were_rules == FALSE) {		crm_debug("no rules for constraint %s", id);	}		return TRUE;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/cb367b83aedbd6450c6d8998457130369032700e/unpack.c/buggy/crm/pengine/unpack.c