in collector/snmp/src/main/java/org/apache/karaf/decanter/collector/snmp/SnmpTrap.java [84:128]
public void processPdu(CommandResponderEvent event) {
PDU pdu = event.getPDU();
if (pdu != null) {
try {
if ((pdu.getType() != PDU.TRAP) && (pdu.getType() != PDU.V1TRAP) && (pdu.getType() != PDU.REPORT) && (pdu.getType() != PDU.RESPONSE)) {
// respond the inform message
pdu.setErrorIndex(0);
pdu.setErrorStatus(0);
pdu.setType(PDU.RESPONSE);
StatusInformation statusInformation = new StatusInformation();
StateReference reference = event.getStateReference();
event.getMessageDispatcher().returnResponsePdu(event.getMessageProcessingModel(),
event.getSecurityModel(),
event.getSecurityName(),
event.getSecurityModel(),
pdu,
event.getMaxSizeResponsePDU(),
reference,
statusInformation);
}
Map<String, Object> data = new HashMap<>();
data.put("type", "snmp.trap");
data.put("securityName", new OctetString(event.getSecurityName()));
data.put("peerAddress", event.getPeerAddress());
PropertiesPreparator.prepare(data, configuration);
// PDU v1 specific variables
if (pdu.getType() == PDU.V1TRAP) {
PDUv1 v1pdu = (PDUv1) pdu;
data.put("enterprise", v1pdu.getEnterprise().toString());
data.put("agentAddress", v1pdu.getAgentAddress().toString());
data.put("genericTrap", v1pdu.getGenericTrap());
data.put("specificTrap", v1pdu.getSpecificTrap());
data.put("timestamp", v1pdu.getTimestamp());
}
// all variables
for (VariableBinding variableBinding : pdu.getVariableBindings()) {
data.put(variableBinding.getOid().toString(), variableBinding.getVariable().toString());
}
// send event
dispatcher.postEvent(new Event("decanter/collector/snmp", data));
} catch (Exception e) {
LOGGER.warn("Can't send SNMP event", e);
}
}
}