crm_debug("Sending ACK: %s", cl_get_string(reply, XML_ATTR_REFERENCE));
send_direct_ack(lrm_op_t* op, const char *rsc_id){	HA_Message *reply = NULL;	crm_data_t *update, *iter;	crm_data_t *fragment;	CRM_DEV_ASSERT(op != NULL);	if(crm_assert_failed) {		return;	}	if(op->rsc_id == NULL) {		CRM_DEV_ASSERT(rsc_id != NULL);		op->rsc_id = crm_strdup(rsc_id);	}		crm_info("ACK'ing resource op: %s for %s", op->op_type, op->rsc_id);		update = create_xml_node(NULL, XML_CIB_TAG_STATE);	set_uuid(fsa_cluster_conn, update, XML_ATTR_UUID, fsa_our_uname);	crm_xml_add(update,  XML_ATTR_UNAME, fsa_our_uname);	iter = create_xml_node(update, XML_CIB_TAG_LRM);	iter = create_xml_node(iter,   XML_LRM_TAG_RESOURCES);	iter = create_xml_node(iter,   XML_LRM_TAG_RESOURCE);	crm_xml_add(iter, XML_ATTR_ID, op->rsc_id);	build_operation_update(iter, op, __FUNCTION__, 0);		fragment = create_cib_fragment(update, XML_CIB_TAG_STATUS);	reply = create_request(CRM_OP_INVOKE_LRM, fragment, NULL,			       CRM_SYSTEM_TENGINE, CRM_SYSTEM_LRMD, NULL);	crm_log_xml_debug_2(update, "ACK Update");	crm_log_message_adv(LOG_DEBUG_3, "ACK Reply", reply);		if(relay_message(reply, TRUE) == FALSE) {		crm_log_message_adv(LOG_ERR, "Unable to route reply", reply);		crm_msg_del(reply);	}	free_xml(fragment);	free_xml(update);}