Addressing review comments of patch-3
Addressing review comments of patch-2
Fixing javadoc warnings
Pushing changes for onos-5146 - Added 2 new APIs in DeviceService.java to get port specific PortStatistics by specifying Device ID & Port Number. Also implemented the APIs in SimpleDeviceStore etc. This will be a very useful API for app developers who are intersted to query port specific port statistics
Change-Id: I8f3e5a443eb5b50237a679999311b48609e54a44
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/OpticalDeviceServiceView.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/OpticalDeviceServiceView.java
index da4da82..b97d313 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/OpticalDeviceServiceView.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/OpticalDeviceServiceView.java
@@ -24,6 +24,7 @@
import org.onosproject.net.device.DeviceEvent;
import org.onosproject.net.device.DeviceListener;
import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.device.PortStatistics;
import org.onosproject.net.optical.OpticalDevice;
import org.onosproject.net.utils.ForwardingDeviceService;
import org.slf4j.Logger;
@@ -148,6 +149,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
return augment(super.getPort(deviceId, portNumber));
}
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
index e6cd2d7..ce988c5 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
@@ -113,6 +113,28 @@
List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId);
/**
+ * Returns the port specific port statistics associated with the device and port.
+ *
+ * @param deviceId device identifier
+ * @param portNumber port identifier
+ * @return port statistics of specified port
+ */
+ default PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ /**
+ * Returns the port specific port delta statistics associated with the device and port.
+ *
+ * @param deviceId device identifier
+ * @param portNumber port identifier
+ * @return port delta statistics of specified port
+ */
+ default PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ /**
* Returns the port with the specified number and hosted by the given device.
*
* @param deviceId device identifier
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
index e010202..626097d 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
@@ -152,6 +152,17 @@
List<PortStatistics> getPortStatistics(DeviceId deviceId);
/**
+ * Returns the port statistics of the specified device and port.
+ *
+ * @param deviceId device identifier
+ * @param portNumber port identifier
+ * @return port statistics of specific port of the device
+ */
+ default PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ /**
* Returns the list of delta port statistics of the specified device.
*
* @param deviceId device identifier
@@ -160,6 +171,17 @@
List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId);
/**
+ * Returns the port delta statistics of the specified device and port.
+ *
+ * @param deviceId device identifier
+ * @param portNumber port identifier
+ * @return port statistics of specific port of the device
+ */
+ default PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ /**
* Returns the specified device port.
*
* @param deviceId device identifier
diff --git a/core/api/src/test/java/org/onosproject/net/device/DeviceServiceAdapter.java b/core/api/src/test/java/org/onosproject/net/device/DeviceServiceAdapter.java
index 9ffa2bd..bc9411d 100644
--- a/core/api/src/test/java/org/onosproject/net/device/DeviceServiceAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/device/DeviceServiceAdapter.java
@@ -92,6 +92,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
return null;
}
diff --git a/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java b/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
index 9859892..b09b35f 100644
--- a/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
@@ -101,11 +101,21 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId) {
return null;
}
@Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
return null;
}
diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
index 4218d47..04d376c 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
@@ -514,6 +514,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId) {
Map<PortNumber, PortStatistics> portStats = devicePortDeltaStats.get(deviceId);
if (portStats == null) {
@@ -523,6 +533,16 @@
}
@Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortDeltaStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public boolean isAvailable(DeviceId deviceId) {
return availableDevices.contains(deviceId);
}
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index cd3c543..5b92489 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -228,6 +228,22 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ checkPermission(DEVICE_READ);
+ checkNotNull(deviceId, DEVICE_ID_NULL);
+ checkNotNull(portNumber, PORT_NUMBER_NULL);
+ return store.getStatisticsForPort(deviceId, portNumber);
+ }
+
+ @Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ checkPermission(DEVICE_READ);
+ checkNotNull(deviceId, DEVICE_ID_NULL);
+ checkNotNull(portNumber, PORT_NUMBER_NULL);
+ return store.getDeltaStatisticsForPort(deviceId, portNumber);
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
checkPermission(DEVICE_READ);
checkNotNull(deviceId, DEVICE_ID_NULL);
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
index c291b4b..c64fa0a 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
@@ -679,6 +679,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId) {
Map<PortNumber, PortStatistics> portStats = devicePortDeltaStats.get(deviceId);
if (portStats == null) {
@@ -688,6 +698,16 @@
}
@Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortDeltaStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public boolean isAvailable(DeviceId deviceId) {
return availableDevices.contains(deviceId);
}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
index 02f65e4..faf7e50 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
@@ -998,6 +998,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId) {
Map<PortNumber, PortStatistics> portStats = devicePortDeltaStats.get(deviceId);
if (portStats == null) {
@@ -1007,6 +1017,16 @@
}
@Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ Map<PortNumber, PortStatistics> portStatsMap = devicePortDeltaStats.get(deviceId);
+ if (portStatsMap == null) {
+ return null;
+ }
+ PortStatistics portStats = portStatsMap.get(portNumber);
+ return portStats;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
Map<PortNumber, Port> ports = devicePorts.get(deviceId);
return ports == null ? null : ports.get(portNumber);
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkDeviceService.java b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkDeviceService.java
index 5dfdd57..c466502 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkDeviceService.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkDeviceService.java
@@ -47,6 +47,7 @@
private static final String NETWORK_NULL = "Network ID cannot be null";
private static final String TYPE_NULL = "Type cannot be null";
private static final String DEVICE_NULL = "Device cannot be null";
+ private static final String PORT_NUMBER_NULL = "PortNumber cannot be null";
private final VirtualNetwork network;
private final VirtualNetworkService manager;
@@ -135,6 +136,22 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ checkNotNull(deviceId, DEVICE_NULL);
+ checkNotNull(deviceId, PORT_NUMBER_NULL);
+ // TODO not supported at the moment.
+ return null;
+ }
+
+ @Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ checkNotNull(deviceId, DEVICE_NULL);
+ checkNotNull(deviceId, PORT_NUMBER_NULL);
+ // TODO not supported at the moment.
+ return null;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
checkNotNull(deviceId, DEVICE_NULL);
diff --git a/protocols/netconf/ctl/src/test/java/org/onosproject/netconf/ctl/NetconfDeviceServiceMock.java b/protocols/netconf/ctl/src/test/java/org/onosproject/netconf/ctl/NetconfDeviceServiceMock.java
index e19677d..a13636b 100644
--- a/protocols/netconf/ctl/src/test/java/org/onosproject/netconf/ctl/NetconfDeviceServiceMock.java
+++ b/protocols/netconf/ctl/src/test/java/org/onosproject/netconf/ctl/NetconfDeviceServiceMock.java
@@ -83,6 +83,16 @@
}
@Override
+ public PortStatistics getStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
+ public PortStatistics getDeltaStatisticsForPort(DeviceId deviceId, PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public Port getPort(DeviceId deviceId, PortNumber portNumber) {
return null;
}