flowFile = SNMPUtils.addAttribute(SNMPUtils.SNMP_PROP_PREFIX + "error", error, flowFile, processSession); processSession.transfer(processSession.penalize(flowFile), REL_FAILURE); this.getLogger().error("Failed while executing SNMP Set [{}] via " + this.targetResource + ". Error = {}", new Object[]{response.getRequest().getVariableBindings(), error});
public void onResponse(ResponseEvent event) { // Always cancel async request when response has been received // otherwise a memory leak is created! Not canceling a request // immediately can be useful when sending a request to a broadcast // address. ((Snmp)event.getSource()).cancel(event.getRequest(), this); // check for valid response if (event.getRequest() == null || event.getResponse() == null) { // ignore null requests/responses logger.debug("Received invalid snmp event. Request: {} / Response: {}", event.getRequest(), event.getResponse()); return; } // now prepare the message and send it sendSnmpDataMessage(event.getRequest(), event.getResponse()); }
public void onResponse(ResponseEvent event) { // Always cancel async request when response has been received // otherwise a memory leak is created! Not canceling a request // immediately can be useful when sending a request to a broadcast address. ((Snmp)event.getSource()).cancel(event.getRequest(), this); // check for valid response if (event.getRequest() == null || event.getResponse() == null) { // ignore null requests/responses LOG.debug("Received invalid SNMP event. Request: " + event.getRequest() + " / Response: " + event.getResponse()); return; } PDU pdu = event.getResponse(); processPDU(pdu); }
/** * TODO: Merge this logic with {@link Snmp4JWalker.Snmp4JResponseListener} #processResponse(PDU response) */ private static SnmpValue[] processResponse(Snmp4JAgentConfig agentConfig, ResponseEvent responseEvent) throws IOException { SnmpValue[] retvalues = { null }; if (responseEvent.getResponse() == null) { LOG.warn("processResponse: Timeout. Agent: {}, requestID={}", agentConfig, responseEvent.getRequest().getRequestID()); } else if (responseEvent.getError() != null) { LOG.warn("processResponse: Error during get operation. Error: {}, requestID={}", responseEvent.getError().getLocalizedMessage(), responseEvent.getError(), responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().getType() == PDU.REPORT) { LOG.warn("processResponse: Error during get operation. Report returned with varbinds: {}, requestID={}", responseEvent.getResponse().getVariableBindings(), responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().getVariableBindings().size() < 1) { LOG.warn("processResponse: Received PDU with 0 varbinds. Agent: {}, requestID={}", agentConfig, responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().get(0).getSyntax() == SMIConstants.SYNTAX_NULL) { LOG.info("processResponse: Null value returned in varbind: {}. Agent: {}, requestID={}", responseEvent.getResponse().get(0), agentConfig, responseEvent.getRequest().getRequestID()); } else { retvalues = convertResponseToValues(responseEvent); LOG.debug("processResponse: SNMP operation successful, value: {}", (Object)retvalues); } return retvalues; }
/** * TODO: Merge this logic with {@link Snmp4JWalker.Snmp4JResponseListener} #processResponse(PDU response) */ private static SnmpValue[] processResponse(Snmp4JAgentConfig agentConfig, ResponseEvent responseEvent) throws IOException { SnmpValue[] retvalues = { null }; if (responseEvent.getResponse() == null) { LOG.warn("processResponse: Timeout. Agent: {}, requestID={}", agentConfig, responseEvent.getRequest().getRequestID()); } else if (responseEvent.getError() != null) { LOG.warn("processResponse: Error during get operation. Error: {}, requestID={}", responseEvent.getError().getLocalizedMessage(), responseEvent.getError(), responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().getType() == PDU.REPORT) { LOG.warn("processResponse: Error during get operation. Report returned with varbinds: {}, requestID={}", responseEvent.getResponse().getVariableBindings(), responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().getVariableBindings().size() < 1) { LOG.warn("processResponse: Received PDU with 0 varbinds. Agent: {}, requestID={}", agentConfig, responseEvent.getRequest().getRequestID()); } else if (responseEvent.getResponse().get(0).getSyntax() == SMIConstants.SYNTAX_NULL) { LOG.info("processResponse: Null value returned in varbind: {}. Agent: {}, requestID={}", responseEvent.getResponse().get(0), agentConfig, responseEvent.getRequest().getRequestID()); } else { retvalues = convertResponseToValues(responseEvent); LOG.debug("processResponse: SNMP operation successful, value: {}", (Object)retvalues); } return retvalues; }
@Override public void onResponse(ResponseEvent responseEvent) { // need to cancel the request here otherwise SNMP4J Keeps it around forever... go figure m_session.cancel(responseEvent.getRequest(), this); // Check to see if we got an interrupted exception if (responseEvent.getError() instanceof InterruptedException) { LOG.debug("Interruption event. We have probably tried to close the session due to an error", responseEvent.getError()); // Check to see if the response is null, indicating a timeout } else if (responseEvent.getResponse() == null) { handleTimeout(getName()+": snmpTimeoutError for: " + getAddress()); // Check to see if we got any kind of error } else if (responseEvent.getError() != null){ handleError(getName()+": snmpInternalError: " + responseEvent.getError() + " for: " + getAddress(), responseEvent.getError()); // If we have a PDU in the response, process it } else { try { processResponse(responseEvent.getResponse()); } catch (final SnmpException e) { handleFatalError(e); } } }
@Override public void onResponse(ResponseEvent responseEvent) { // need to cancel the request here otherwise SNMP4J Keeps it around forever... go figure m_session.cancel(responseEvent.getRequest(), this); // Check to see if we got an interrupted exception if (responseEvent.getError() instanceof InterruptedException) { LOG.debug("Interruption event. We have probably tried to close the session due to an error", responseEvent.getError()); // Check to see if the response is null, indicating a timeout } else if (responseEvent.getResponse() == null) { handleTimeout(getName()+": snmpTimeoutError for: " + getAddress()); // Check to see if we got any kind of error } else if (responseEvent.getError() != null){ handleError(getName()+": snmpInternalError: " + responseEvent.getError() + " for: " + getAddress(), responseEvent.getError()); // If we have a PDU in the response, process it } else { try { processResponse(responseEvent.getResponse()); } catch (final SnmpException e) { handleFatalError(e); } } }
public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; boolean anyMatchInChunk = false; int startCol = ((Integer) event.getUserObject()).intValue(); PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size();
@SuppressWarnings("unchecked") public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; ColumnsOfRequest colsOfRequest = (ColumnsOfRequest) event.getUserObject(); boolean receivedInOrder = removePending(colsOfRequest.getRequestSerial()); PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size(); OID requested = event.getRequest().get(c).getOid(); if (id.compareTo(requested) <= 0) { if (!row.orderError) {
@SuppressWarnings("unchecked") public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; ColumnsOfRequest colsOfRequest = (ColumnsOfRequest) event.getUserObject(); boolean receivedInOrder = removePending(colsOfRequest.getRequestSerial()); PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size(); OID requested = event.getRequest().get(c).getOid(); if (id.compareTo(requested) <= 0) { if (!row.orderError) {
public void onResponse(ResponseEvent responseEvent) { // need to cancel the request here otherwise SNMP4J Keeps it around forever... go figure m_session.cancel(responseEvent.getRequest(), this); // Check to see if we got an interrupted exception if (responseEvent.getError() instanceof InterruptedException) { if (log().isDebugEnabled()) { log().debug("Interruption event. We have probably tried to close the session due to an error: " + responseEvent.getError(), responseEvent.getError()); } // Check to see if the response is null, indicating a timeout } else if (responseEvent.getResponse() == null) { handleTimeout(getName()+": snmpTimeoutError for: " + getAddress()); // Check to see if we got any kind of error } else if (responseEvent.getError() != null){ handleError(getName()+": snmpInternalError: " + responseEvent.getError() + " for: " + getAddress(), responseEvent.getError()); // If we have a PDU in the response, process it } else { processResponse(responseEvent.getResponse()); } }
public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); PDU respPDU = event.getResponse(); if (respPDU == null) {
public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); PDU respPDU = event.getResponse(); if (respPDU == null) {
public synchronized void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size();
public synchronized void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size();
public void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); PDU respPDU = event.getResponse(); if (respPDU == null) {
public synchronized void onResponse(ResponseEvent event) { session.cancel(event.getRequest(), this); if (finished) { return; PDU request = event.getRequest(); PDU response = event.getResponse(); int cols = request.size();
flowFile = SNMPUtils.addAttribute(SNMPUtils.SNMP_PROP_PREFIX + "error", error, flowFile, processSession); processSession.transfer(processSession.penalize(flowFile), REL_FAILURE); this.getLogger().error("Failed while executing SNMP Set [{}] via " + this.targetResource + ". Error = {}", new Object[]{response.getRequest().getVariableBindings(), error});