Andrea Campanella
Committed by Gerrit Code Review

Refactoring ID creation for netconf and REST

Change-Id: I4165ad53e19c86d9d9b304d09e24dcfeec2b9ddf
...@@ -40,6 +40,7 @@ public class NetconfDeviceInfo { ...@@ -40,6 +40,7 @@ public class NetconfDeviceInfo {
40 private IpAddress ipAddress; 40 private IpAddress ipAddress;
41 private int port; 41 private int port;
42 private File keyFile; 42 private File keyFile;
43 + private DeviceId deviceId;
43 44
44 45
45 /** 46 /**
...@@ -143,13 +144,14 @@ public class NetconfDeviceInfo { ...@@ -143,13 +144,14 @@ public class NetconfDeviceInfo {
143 * @return DeviceId 144 * @return DeviceId
144 */ 145 */
145 public DeviceId getDeviceId() { 146 public DeviceId getDeviceId() {
146 - 147 + if (deviceId == null) {
147 - try { 148 + try {
148 - return DeviceId.deviceId(new URI(this.toString())); 149 + deviceId = DeviceId.deviceId(new URI("netconf", ipAddress.toString() + ":" + port, null));
149 - } catch (URISyntaxException e) { 150 + } catch (URISyntaxException e) {
150 - log.debug("Unable to build deviceID for device {} ", this, e); 151 + throw new IllegalArgumentException("Unable to build deviceID for device " + toString(), e);
152 + }
151 } 153 }
152 - return null; 154 + return deviceId;
153 } 155 }
154 156
155 @Override 157 @Override
......
...@@ -81,8 +81,7 @@ public class NetconfControllerImpl implements NetconfController { ...@@ -81,8 +81,7 @@ public class NetconfControllerImpl implements NetconfController {
81 @Override 81 @Override
82 public NetconfDevice getNetconfDevice(IpAddress ip, int port) { 82 public NetconfDevice getNetconfDevice(IpAddress ip, int port) {
83 for (DeviceId info : netconfDeviceMap.keySet()) { 83 for (DeviceId info : netconfDeviceMap.keySet()) {
84 - if (IpAddress.valueOf(info.uri().getHost()).equals(ip) && 84 + if (info.uri().getSchemeSpecificPart().equals(ip.toString() + ":" + port)) {
85 - info.uri().getPort() == port) {
86 return netconfDeviceMap.get(info); 85 return netconfDeviceMap.get(info);
87 } 86 }
88 } 87 }
...@@ -102,7 +101,7 @@ public class NetconfControllerImpl implements NetconfController { ...@@ -102,7 +101,7 @@ public class NetconfControllerImpl implements NetconfController {
102 101
103 @Override 102 @Override
104 public void removeDevice(NetconfDeviceInfo deviceInfo) { 103 public void removeDevice(NetconfDeviceInfo deviceInfo) {
105 - if (netconfDeviceMap.containsKey(deviceInfo.getDeviceId())) { 104 + if (!netconfDeviceMap.containsKey(deviceInfo.getDeviceId())) {
106 log.warn("Device {} is not present", deviceInfo); 105 log.warn("Device {} is not present", deviceInfo);
107 } else { 106 } else {
108 stopDevice(deviceInfo); 107 stopDevice(deviceInfo);
......
...@@ -22,6 +22,8 @@ import org.apache.commons.lang3.StringUtils; ...@@ -22,6 +22,8 @@ import org.apache.commons.lang3.StringUtils;
22 import org.onlab.packet.IpAddress; 22 import org.onlab.packet.IpAddress;
23 import org.onosproject.net.DeviceId; 23 import org.onosproject.net.DeviceId;
24 24
25 +import java.net.URI;
26 +import java.net.URISyntaxException;
25 import java.util.Objects; 27 import java.util.Objects;
26 28
27 /** 29 /**
...@@ -74,7 +76,13 @@ public class DefaultRestSBDevice implements RestSBDevice { ...@@ -74,7 +76,13 @@ public class DefaultRestSBDevice implements RestSBDevice {
74 76
75 @Override 77 @Override
76 public DeviceId deviceId() { 78 public DeviceId deviceId() {
77 - return DeviceId.deviceId(REST + COLON + ip + COLON + port); 79 + try {
80 + return DeviceId.deviceId(new URI(REST, ip + COLON + port, null));
81 + } catch (URISyntaxException e) {
82 + throw new IllegalArgumentException("Cannot create deviceID " +
83 + REST + COLON + ip +
84 + COLON + port, e);
85 + }
78 } 86 }
79 87
80 @Override 88 @Override
......
1 { 1 {
2 "devices":{ 2 "devices":{
3 - "netconf:mininet@10.1.9.24:830":{ 3 + "netconf:10.1.9.24:830":{
4 "basic":{ 4 "basic":{
5 "driver":"ovs-netconf" 5 "driver":"ovs-netconf"
6 } 6 }
......