action_t *before, *after;
unpack_rsc_to_rsc(xmlNodePtr xml_obj,		  GListPtr rsc_list,		  GListPtr *action_constraints){	enum con_strength strength_e = pecs_ignore;	const char *id_lh    = xmlGetProp(xml_obj, "from");	const char *id       = xmlGetProp(xml_obj, XML_ATTR_ID);	const char *id_rh    = xmlGetProp(xml_obj, "to");	const char *strength = xmlGetProp(xml_obj, "strength");	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);	action_t *before, *after; 	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(strength, XML_STRENGTH_VAL_MUST)) {		strength_e = pecs_must;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_SHOULD)) {		strength_e = pecs_should;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_SHOULDNOT)) {		strength_e = pecs_should_not;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_MUSTNOT)) {		strength_e = pecs_must_not;	} else {		crm_err("Unknown value for %s: %s", "strength", strength);		return FALSE;	}	if(safe_str_eq(type, "ordering")) {		// make an action_cons instead		rsc2rsc_new(id, strength_e, start_before, rsc_lh, rsc_rh);		order_new(rsc_lh->stop, rsc_rh->stop, strength_e,			  action_constraints);		order_new(rsc_rh->start, rsc_lh->start, strength_e,			  action_constraints);		return TRUE;	} 			/* make sure the lower priority resource stops before	 *  the higher is started, otherwise they may be both running	 *  on the same node when the higher is replacing the lower	 */	if(rsc_lh->priority >= rsc_rh->priority) {		before = rsc_rh->stop;		after  = rsc_lh->start;	} else {		before = rsc_lh->stop;		after  = rsc_rh->start;	}		order_new(before, after, strength_e, action_constraints);	/* make sure the lower priority resource starts after	 *  the higher is started	 */	if(rsc_lh->priority < rsc_rh->priority) {		before = rsc_rh->start;		after  = rsc_lh->start;	} else {		before = rsc_lh->start;		after  = rsc_rh->start;	}	order_new(before, after, strength_e,action_constraints);		return rsc2rsc_new(id, strength_e, same_node, rsc_lh, rsc_rh);}