crm_err("NACK'ing resource op");
crm_info("NACK'ing resource op: %s for %s", op->op_type, op->rsc_id);
nack_rsc_op(lrm_op_t* op, HA_Message *msg){	HA_Message *reply = NULL;	crm_data_t *update, *iter;	crm_data_t *fragment;	CRM_DEV_ASSERT(op != NULL);	if(crm_assert_failed) {		return;	}	CRM_DEV_ASSERT(msg != NULL);	if(crm_assert_failed) {		return;	}	crm_err("NACK'ing resource op");		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);	op->rc = 99;	op->op_status = LRM_OP_ERROR;	build_operation_update(iter, op, __FUNCTION__, 0);	fragment = create_cib_fragment(update, NULL);	reply = create_reply(msg, fragment);	crm_log_xml_info(update, "NACK Update");	crm_log_message_adv(LOG_INFO, "NACK'd msg", msg);	crm_log_message_adv(LOG_INFO, "NACK 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);}