port statistics defect fix
Change-Id: I4fc97388af17ad2e83d02bbd3fb350a021e34455
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 1720e2e..7e513e0 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -306,7 +306,7 @@
log.debug("Netconf device {} removed from Netconf subController", deviceId);
} else {
log.warn("Netconf device {} does not exist in the store, " +
- "it may already have been removed", deviceId);
+ "it may already have been removed", deviceId);
}
}
}
@@ -351,13 +351,13 @@
}
private void checkAndUpdateDevice(DeviceId deviceId, DeviceDescription deviceDescription) {
- if (deviceService.getDevice(deviceId) == null) {
+ Device device = deviceService.getDevice(deviceId);
+ if (device == null) {
log.warn("Device {} has not been added to store, " +
"maybe due to a problem in connectivity", deviceId);
} else {
boolean isReachable = isReachable(deviceId);
if (isReachable && !deviceService.isAvailable(deviceId)) {
- Device device = deviceService.getDevice(deviceId);
if (device.is(DeviceDescriptionDiscovery.class)) {
if (mastershipService.isLocalMaster(deviceId)) {
DeviceDescriptionDiscovery deviceDescriptionDiscovery =
@@ -381,16 +381,29 @@
} else {
log.warn("No DeviceDescriptionDiscovery behaviour for device {} " +
"using DefaultDeviceDescription", deviceId);
- providerService.deviceConnected(
- deviceId, new DefaultDeviceDescription(
+ providerService.deviceConnected(
+ deviceId, new DefaultDeviceDescription(
deviceDescription, true, deviceDescription.annotations()));
}
} else if (!isReachable && deviceService.isAvailable(deviceId)) {
providerService.deviceDisconnected(deviceId);
+ } else if (isReachable && deviceService.isAvailable(deviceId)) {
+ updatePortStatistics(device);
}
}
}
+ private void updatePortStatistics(Device device) {
+ if (device.is(PortStatisticsDiscovery.class)) {
+ PortStatisticsDiscovery d = device.as(PortStatisticsDiscovery.class);
+ providerService.updatePortStatistics(device.id(),
+ d.discoverPortStatistics());
+ } else {
+ log.warn("No port statistics getter behaviour for device {}",
+ device.id());
+ }
+ }
+
private boolean descriptionEquals(Device device, DeviceDescription updatedDeviceDescription) {
return Objects.equal(device.id().uri(), updatedDeviceDescription.deviceUri())
&& Objects.equal(device.type(), updatedDeviceDescription.type())
@@ -482,15 +495,7 @@
}
// Port statistics discovery
- if (device.is(PortStatisticsDiscovery.class)) {
- PortStatisticsDiscovery d =
- device.as(PortStatisticsDiscovery.class);
- providerService.updatePortStatistics(deviceId,
- d.discoverPortStatistics());
- } else {
- log.warn("No port statistics getter behaviour for device {}",
- deviceId);
- }
+ updatePortStatistics(device);
}
/**