@Override public Collection<Alarm> getAlarms(ISnmpSession session, DeviceId deviceId) { Set<Alarm> alarms = new HashSet<>(); NetworkDevice networkDevice = new NetworkDevice(CLASS_REGISTRY, session.getAddress().getHostAddress()); try { session.walkDevice(networkDevice, Arrays.asList(new OID[]{ CLASS_REGISTRY.getClassToOidMap().get(IfTable.class)})); IfTable interfaceTable = (IfTable) networkDevice.getRootObject() .getEntity(CLASS_REGISTRY.getClassToOidMap().get(IfTable.class)); if (interfaceTable != null) { interfaceTable.getEntries().values().stream().forEach((ifEntry) -> { //TODO will raise alarm for each interface as a demo. // if (ifEntry.getIfAdminStatus() == 1 && ifEntry.getIfOperStatus() == 2){ alarms.add(new DefaultAlarm.Builder(deviceId, "Link Down.", Alarm.SeverityLevel.CRITICAL, System.currentTimeMillis()) .forSource(AlarmEntityId.alarmEntityId("port:" + ifEntry.getIfDescr())).build()); // } log.info("Interface: " + ifEntry); }); } } catch (IOException ex) { log.error("Error reading alarms for device {}.", deviceId, ex); } return alarms; } }
@Override public Collection<Alarm> getAlarms(ISnmpSession session, DeviceId deviceID) { log.info("Getting alarms for BTI 7000 device at {}", deviceID); Set<Alarm> alarms = new HashSet<>(); NetworkDevice networkDevice = new NetworkDevice(CLASS_REGISTRY, session.getAddress().getHostAddress()); try { session.walkDevice(networkDevice, Arrays.asList( new OID[]{CLASS_REGISTRY.getClassToOidMap().get(ActAlarmTable.class)})); IActAlarmTable deviceAlarms = (IActAlarmTable) networkDevice.getRootObject() .getEntity(CLASS_REGISTRY.getClassToOidMap().get(ActAlarmTable.class)); if ((deviceAlarms != null) && (deviceAlarms.getActAlarmEntry() != null) && (!deviceAlarms.getActAlarmEntry().isEmpty())) { deviceAlarms.getActAlarmEntry().values().stream().forEach((alarm) -> { DefaultAlarm.Builder alarmBuilder = new DefaultAlarm.Builder( deviceID, alarm.getActAlarmDescription(), mapAlarmSeverity(alarm.getActAlarmSeverity()), getLocalDateAndTime(alarm.getActAlarmDateAndTime(), null, null).getTime()) .forSource(AlarmEntityId.alarmEntityId("other:" + alarm.getActAlarmInstanceIdx())); alarms.add(alarmBuilder.build()); }); } log.info("Conditions retrieved: {}", deviceAlarms); } catch (IOException ex) { log.error("Error reading alarms for device {}.", deviceID, ex); } return alarms; }