unpack_rsc_dependancy(xmlNodePtr xml_obj,
unpack_rsc_dependancy(crm_data_t * xml_obj,
unpack_rsc_dependancy(xmlNodePtr xml_obj,		  GListPtr rsc_list,		  GListPtr *ordering_constraints){	enum con_strength strength_e = pecs_ignore;	const char *id_lh    = xmlGetProp(xml_obj, XML_CONS_ATTR_FROM);	const char *id       = xmlGetProp(xml_obj, XML_ATTR_ID);	const char *id_rh    = xmlGetProp(xml_obj, XML_CONS_ATTR_TO);	const char *type     = xmlGetProp(xml_obj, XML_ATTR_TYPE);	resource_t *rsc_lh   = pe_find_resource(rsc_list, id_lh);	resource_t *rsc_rh   = pe_find_resource(rsc_list, id_rh); 	if(rsc_lh == NULL) {		crm_err("No resource (con=%s, rsc=%s)", id, id_lh);		return FALSE;	} else if(rsc_rh == NULL) {		crm_err("No resource (con=%s, rsc=%s)", id, id_rh);		return FALSE;	}		if(safe_str_eq(type, XML_STRENGTH_VAL_MUST)) {		strength_e = pecs_must;			} else if(safe_str_eq(type, XML_STRENGTH_VAL_SHOULD)) {		crm_err("Type %s is no longer supported", type);		strength_e = pecs_must;			} else if(safe_str_eq(type, XML_STRENGTH_VAL_SHOULDNOT)) {		crm_err("Type %s is no longer supported", type);		strength_e = pecs_must_not;			} else if(safe_str_eq(type, XML_STRENGTH_VAL_MUSTNOT)) {		strength_e = pecs_must_not;	} else {		crm_err("Unknown value for %s: %s", XML_ATTR_TYPE, type);		return FALSE;	}	return rsc_dependancy_new(id, strength_e, rsc_lh, rsc_rh);}