ONOS-5917 SNMP Alarm Provider

Change-Id: I9eb39021584f3b1a5baed9dfa638569818901197
diff --git a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
index 8ddbb6b..c02218e 100644
--- a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
+++ b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
@@ -38,6 +38,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -73,6 +74,7 @@
     }
 
     @Override
+    @Deprecated
     public ISnmpSession getSession(DeviceId deviceId) throws IOException {
         if (!sessionMap.containsKey(deviceId)) {
             SnmpDevice device = snmpDeviceMap.get(deviceId);
@@ -112,16 +114,32 @@
     }
 
     @Override
+    public SnmpDevice getDevice(URI uri) {
+            //this assumes that only one device is associated with one deviceId
+            return snmpDeviceMap.entrySet()
+                    .stream().filter(p -> p.getValue()
+                    .getSnmpHost().equals(uri.toString()))
+                    .map(Map.Entry::getValue).findFirst().orElse(null);
+    }
+
+    @Override
     public void removeDevice(DeviceId did) {
         snmpDeviceMap.remove(did);
     }
 
     @Override
+    @Deprecated // in 1.14.0
     public void addDevice(DeviceId did, SnmpDevice device) {
         snmpDeviceMap.put(did, device);
     }
 
     @Override
+    public void addDevice(SnmpDevice device) {
+        log.info("Adding device {}", device.deviceId());
+        snmpDeviceMap.put(device.deviceId(), device);
+    }
+
+    @Override
     public DefaultAlarm buildWalkFailedAlarm(DeviceId deviceId) {
         long timeRaised = System.currentTimeMillis();
         return new DefaultAlarm.Builder(