/** * Method to construct {@link FlowFile} attributes from a {@link TreeEvent} * @param treeEvent a {@link TreeEvent} * @param flowFile instance of the {@link FlowFile} to update * @param processSession instance of {@link ProcessSession} * @return updated {@link FlowFile} */ public static FlowFile updateFlowFileAttributesWithTreeEventProperties(TreeEvent treeEvent, FlowFile flowFile, ProcessSession processSession) { Map<String, String> attributes = new HashMap<String, String>(); addWalkOidValues(attributes, treeEvent.getVariableBindings()); flowFile = processSession.putAllAttributes(flowFile, attributes); return flowFile; }
public void finished(TreeEvent e) { if ((e.getVariableBindings() != null) && (e.getVariableBindings().length > 0)) { next(e); } System.out.println(); System.out.println("Total requests sent: "+counts.requests); System.out.println("Total objects received: "+counts.objects); System.out.println("Total walk time: "+ (System.currentTimeMillis()-startTime)+" milliseconds"); if (e.isError()) { System.err.println("The following error occurred during walk:"); System.err.println(e.getErrorMessage()); } finished = true; synchronized(this) { this.notify(); } }
private SnmpUriResponse createResponse(TreeEvent event) { SnmpUriResponse response = new SnmpUriResponse(SnmpUriResponse.Type.TIMEOUT); if (event.getStatus() == TreeEvent.STATUS_OK) { VariableBinding[] vbs = event.getVariableBindings(); int errorStatus = event.getStatus(); response = new SnmpUriResponse(Collections.singletonList(vbs), errorStatus); if (errorStatus == PDU.noError) { response.setResponseType(SnmpUriResponse.Type.NEXT); } } else if (event.getStatus() == TreeEvent.STATUS_EXCEPTION) { response = new SnmpUriResponse(SnmpUriResponse.Type.IO_ERROR, event.getException().getMessage()); } else if (event.getStatus() == TreeEvent.STATUS_REPORT) { response = new SnmpUriResponse(SnmpUriResponse.Type.SECURITY_ERROR, (event.getReportPDU().size()>0 ? event.getReportPDU().get(0).toString() : "<empty report PDU>")); } else if (event.getStatus() == TreeEvent.STATUS_WRONG_ORDER) { response = new SnmpUriResponse(SnmpUriResponse.Type.LEXICOGRAPHIC_ORDER_ERROR); } return response; }
public SnmpUriResponse browse(URI url) throws UnknownHostException { SnmpUriResponse response = new SnmpUriResponse(PDU.genErr); Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); switch (request.getType()) { case GET: pdu.setType(PDU.GET); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case NEXT: pdu.setType(PDU.GETNEXT); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case SUBTREE: TreeUtils treeUtils = new TreeUtils(snmp, pduFactory); List<TreeEvent> treeEventList = treeUtils.walk(request.getTarget(), request.getOIDs()); List<VariableBinding[]> vbs = new ArrayList<VariableBinding[]>(treeEventList.size()); int errorStatus = PDU.noError; for (TreeEvent treeEvent : treeEventList) { vbs.add(treeEvent.getVariableBindings()); errorStatus = treeEvent.getStatus(); } response = new SnmpUriResponse(vbs, errorStatus); break; } return response; }
public void send() { try { session.send(request, target, null, this); } catch (IOException iox) { listener.finished(new TreeEvent(this, userObject, iox)); } }
@Override public boolean next(TreeEvent event) { if (!finished) { SnmpUriResponse response = createResponse(event); finished |= callback.onResponse(response, url, event.getUserObject()); } return !finished; }
public void finished(TreeEvent e) { if ((e.getVariableBindings() != null) && (e.getVariableBindings().length > 0)) { next(e); } System.out.println(); System.out.println("Total requests sent: "+counts.requests); System.out.println("Total objects received: "+counts.objects); System.out.println("Total walk time: "+ (System.nanoTime()-startTime)/SnmpConstants.MILLISECOND_TO_NANOSECOND+" milliseconds"); if (e.isError()) { System.err.println("The following error occurred during walk:"); System.err.println(e.getErrorMessage()); } finished = true; synchronized(this) { this.notify(); } }
private SnmpUriResponse createResponse(TreeEvent event) { SnmpUriResponse response = new SnmpUriResponse(SnmpUriResponse.Type.TIMEOUT); if (event.getStatus() == TreeEvent.STATUS_OK) { VariableBinding[] vbs = event.getVariableBindings(); int errorStatus = event.getStatus(); response = new SnmpUriResponse(Collections.singletonList(vbs), errorStatus); if (errorStatus == PDU.noError) { response.setResponseType(SnmpUriResponse.Type.NEXT); } } else if (event.getStatus() == TreeEvent.STATUS_EXCEPTION) { response = new SnmpUriResponse(SnmpUriResponse.Type.IO_ERROR, event.getException().getMessage()); } else if (event.getStatus() == TreeEvent.STATUS_REPORT) { response = new SnmpUriResponse(SnmpUriResponse.Type.SECURITY_ERROR, (event.getReportPDU().size()>0 ? event.getReportPDU().get(0).toString() : "<empty report PDU>")); } else if (event.getStatus() == TreeEvent.STATUS_WRONG_ORDER) { response = new SnmpUriResponse(SnmpUriResponse.Type.LEXICOGRAPHIC_ORDER_ERROR); } return response; }
public SnmpUriResponse browse(URI url) throws UnknownHostException { SnmpUriResponse response = new SnmpUriResponse(PDU.genErr); Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); switch (request.getType()) { case GET: pdu.setType(PDU.GET); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case NEXT: pdu.setType(PDU.GETNEXT); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case SUBTREE: TreeUtils treeUtils = new TreeUtils(snmp, pduFactory); List<TreeEvent> treeEventList = treeUtils.walk(request.getTarget(), request.getOIDs()); List<VariableBinding[]> vbs = new ArrayList<VariableBinding[]>(treeEventList.size()); int errorStatus = PDU.noError; for (TreeEvent treeEvent : treeEventList) { vbs.add(treeEvent.getVariableBindings()); errorStatus = treeEvent.getStatus(); } response = new SnmpUriResponse(vbs, errorStatus); break; } return response; }
public void send() { try { session.send(request, target, null, this); } catch (IOException iox) { listener.finished(new TreeEvent(this, userObject, iox)); } }
@Override public boolean next(TreeEvent event) { if (!finished) { SnmpUriResponse response = createResponse(event); finished |= callback.onResponse(response, url, event.getUserObject()); } return !finished; }
public void finished(TreeEvent e) { if ((e.getVariableBindings() != null) && (e.getVariableBindings().length > 0)) { next(e); } err.println(); err.println("Total requests sent: " + counts.requests); err.println("Total objects received: " + counts.objects); err.println("Total walk time: " + (System.currentTimeMillis() - startTime) + " milliseconds"); if (e.isError()) { err.println("The following error occurred during walk:"); err.println(e.getErrorMessage()); //e.getException().printStackTrace(); } finished = true; synchronized (this) { this.notify(); } }
if((events != null) && !events.isEmpty() && (events.get(0).getVariableBindings() != null)) { FlowFile flowFile = processSession.create(); for (TreeEvent treeEvent : events) {
public void send() { try { session.send(request, target, null, this); } catch (IOException iox) { listener.finished(new TreeEvent(this, userObject, iox)); } }
@Override public void finished(TreeEvent event) { if (!finished) { SnmpUriResponse response = createResponse(event); if (response.getResponseType() == SnmpUriResponse.Type.NEXT) { response.setResponseType(SnmpUriResponse.Type.FINAL); } callback.onResponse(response, url, event.getUserObject()); finished = true; } }
continue; if (event.isError()) { LOG.error("Error in event: {}", event.getErrorMessage()); continue; VariableBinding[] varBindings = event.getVariableBindings(); if (varBindings == null || varBindings.length == 0) { continue;
public boolean next(TreeEvent e) { counts.requests++; if (e.getVariableBindings() != null) { VariableBinding[] vbs = e.getVariableBindings(); counts.objects += vbs.length; for (int i=0; i<vbs.length; i++) { if (snapshot != null) { snapshot.add(vbs[i]); } System.out.println(vbs[i].toString()); } } return true; }
PDU respPDU = event.getResponse(); if (respPDU == null) { listener.finished(new TreeEvent(this, userObject, RetrievalEvent.STATUS_TIMEOUT)); listener.finished(new TreeEvent(this, userObject, new VariableBinding[0])); listener.finished(new TreeEvent(this, userObject, respPDU.getErrorStatus())); listener.finished(new TreeEvent(this, userObject, respPDU)); listener.finished(new TreeEvent(this, userObject, RetrievalEvent.STATUS_WRONG_ORDER)); finished = true; listener.next(new TreeEvent(this, userObject, vbs)); l.clear(); listener.finished(new TreeEvent(this, userObject, vbs)); if (listener.next(new TreeEvent(this, userObject, vbs))) { int lastRowIndex = ((respPDU.size()/rootOIDs.length)-1) * rootOIDs.length; request.clear(); listener.finished(new TreeEvent(this, userObject, new VariableBinding[0])); listener.finished(new TreeEvent(this, userObject, vbs));
@Override public void finished(TreeEvent event) { if (!finished) { SnmpUriResponse response = createResponse(event); if (response.getResponseType() == SnmpUriResponse.Type.NEXT) { response.setResponseType(SnmpUriResponse.Type.FINAL); } callback.onResponse(response, url, event.getUserObject()); finished = true; } }
public boolean next(TreeEvent e) { counts.requests++; if (e.getVariableBindings() != null) { VariableBinding[] vbs = e.getVariableBindings(); counts.objects += vbs.length; for (VariableBinding vb : vbs) { if (snapshot != null) { snapshot.add(vb); } out.println(vb.toString()); } } return true; }