public static AlarmEntityId alarmEntityId(final String string) { return alarmEntityId(URI.create(string)); }
public static AlarmEntityId alarmEntityId(final URI uri) { checkArgument(SCHEMES.contains(uri.getScheme()), "Unexpected scheme"); return new AlarmEntityId(uri); } }
@Override public Set<Alarm> getAlarms(DeviceId deviceId, AlarmEntityId source) { return ImmutableSet.copyOf(getAlarms(deviceId).stream().filter( a -> source.equals(a.source())).collect(Collectors.toSet())); }
@Override public void process(long sid, ObjectNode payload) { log.debug("sid={}, payload ={}", sid, payload); String id = string(payload, ID, "(none)"); Alarm alarm = AlarmServiceUtil.lookupAlarm(AlarmId.alarmId(Long.parseLong(id))); ObjectNode rootNode = objectNode(); ObjectNode data = objectNode(); rootNode.set(DETAILS, data); if (alarm == null) { rootNode.put(RESULT, "Item with id '" + id + "' not found"); log.warn("attempted to get item detail for id '{}'", id); } else { rootNode.put(RESULT, "Found item with id '" + id + "'"); data.put(ID, alarm.id().fingerprint()); data.put(DESCRIPTION, alarm.description()); data.put(DEVICE_ID_STR, alarm.deviceId().toString()); data.put(SOURCE, alarm.source().toString()); long timeRaised = alarm.timeRaised(); data.put(TIME_RAISED, formatTime(timeRaised) ); data.put(TIME_UPDATED, formatTime(alarm.timeUpdated())); data.put(TIME_CLEARED, formatTime(alarm.timeCleared())); data.put(SEVERITY, alarm.severity().toString()); } log.debug("send ={}", rootNode); sendMessage(ALARM_TABLE_DETAIL_RESP, 0, rootNode); } }
@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; }