order = (order_constraint_t*) crm_malloc(sizeof(order_constraint_t));  order->id        = order_id++; order->strength  = strength_e;  if(rsc_lh->priority < rsc_rh->priority) { order->lh_action = rsc_rh->start; order->rh_action = rsc_lh->start; } else { order->lh_action = rsc_lh->start; order->rh_action = rsc_rh->start; }  *action_constraints = g_list_append(*action_constraints, order);
unpack_rsc_to_rsc(xmlNodePtr xml_obj,		  GListPtr rsc_list,		  GListPtr *action_constraints){	enum con_strength strength_e = 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); 	if(rsc_lh == NULL) {		crm_err("No resource (con=%s, rsc=%s)", id, id_lh);		return FALSE;	}		if(safe_str_eq(strength, XML_STRENGTH_VAL_MUST)) {		strength_e = must;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_SHOULD)) {		strength_e = should;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_SHOULDNOT)) {		strength_e = should_not;			} else if(safe_str_eq(strength, XML_STRENGTH_VAL_MUSTNOT)) {		strength_e = 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		return create_ordering(			id, strength_e, rsc_lh, rsc_rh, action_constraints);	}	/* 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	 */	order_constraint_t *order = (order_constraint_t*)		crm_malloc(sizeof(order_constraint_t));		order->id        = order_id++;	order->strength  = strength_e;	if(rsc_lh->priority >= rsc_rh->priority) {		order->lh_action = rsc_rh->stop;		order->rh_action = rsc_lh->start;	} else {		order->lh_action = rsc_lh->stop;		order->rh_action = rsc_rh->start;	}		*action_constraints = g_list_append(*action_constraints, order);	return create_rsc_to_rsc(id, strength_e, rsc_lh, rsc_rh);}