[ONOS-3775] Building alarms from NETCONF notifications
Change-Id: I80d960193ce957fa640fde0d1e7b4422d60c7fe4
diff --git a/providers/netconf/alarm/src/main/java/org/onosproject/provider/netconf/alarm/NetconfAlarmProvider.java b/providers/netconf/alarm/src/main/java/org/onosproject/provider/netconf/alarm/NetconfAlarmProvider.java
index 5a86dd0..ec74eb6 100644
--- a/providers/netconf/alarm/src/main/java/org/onosproject/provider/netconf/alarm/NetconfAlarmProvider.java
+++ b/providers/netconf/alarm/src/main/java/org/onosproject/provider/netconf/alarm/NetconfAlarmProvider.java
@@ -25,9 +25,7 @@
import org.onosproject.incubator.net.faultmanagement.alarm.Alarm;
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmProvider;
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmProviderService;
-import org.onosproject.incubator.net.faultmanagement.alarm.AlarmService;
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmProviderRegistry;
-import org.onosproject.incubator.net.faultmanagement.alarm.DefaultAlarm;
import org.onosproject.net.DeviceId;
import org.onosproject.net.provider.AbstractProvider;
import org.onosproject.net.provider.ProviderId;
@@ -41,8 +39,10 @@
import org.onosproject.netconf.ctl.NetconfDeviceOutputEventListenerImpl;
import org.slf4j.Logger;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import static org.slf4j.LoggerFactory.getLogger;
@@ -62,9 +62,6 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected NetconfController controller;
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected AlarmService alarmService;
-
protected AlarmProviderService providerService;
private Map<DeviceId, InternalNotificationListener> idNotificationListenerMap = Maps.newHashMap();
@@ -94,8 +91,8 @@
providerRegistry.unregister(this);
idNotificationListenerMap.forEach((id, listener) -> {
controller.getNetconfDevice(id)
- .getSession()
- .removeDeviceOutputListener(listener);
+ .getSession()
+ .removeDeviceOutputListener(listener);
});
controller.removeDeviceListener(deviceListener);
providerService = null;
@@ -123,10 +120,11 @@
public void event(NetconfDeviceOutputEvent event) {
if (event.type() == NetconfDeviceOutputEvent.Type.DEVICE_NOTIFICATION) {
DeviceId deviceId = event.getDeviceInfo().getDeviceId();
- Alarm newAlarm = new DefaultAlarm.Builder(deviceId, event.getMessagePayload(),
- Alarm.SeverityLevel.WARNING, 0).build();
- Collection<Alarm> alarms = Collections.singleton(newAlarm);
- triggerProbe(deviceId, alarms);
+ NetconfAlarmTranslator translator = new NetconfAlarmTranslator();
+ String message = event.getMessagePayload();
+ InputStream in = new ByteArrayInputStream(message.getBytes(StandardCharsets.UTF_8));
+ Collection<Alarm> newAlarms = translator.translateToAlarm(deviceId, in);
+ triggerProbe(deviceId, newAlarms);
}
}
}