From 32000d35b79aaa195b05837b84ddd1ac79b93dba Mon Sep 17 00:00:00 2001 From: mskala Date: Fri, 14 Jul 2017 16:27:06 +0200 Subject: [PATCH] [ONOS-6806] Add getAvailableDeviceCount method to DeviceService Change-Id: Ieda7e66c1a1d25aa92b55542ecfe59652dac3bc5 --- .../java/org/onosproject/net/device/DeviceService.java | 9 +++++++++ .../org/onosproject/net/device/DeviceServiceAdapter.java | 5 +++++ .../onosproject/net/utils/ForwardingDeviceService.java | 5 +++++ .../org/onosproject/net/device/impl/DeviceManager.java | 6 ++++++ .../onosproject/net/device/impl/DeviceManagerTest.java | 8 ++++++-- 5 files changed, 31 insertions(+), 2 deletions(-) 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 1cb90e8d04..b1ab0e6b5c 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 @@ -38,6 +38,15 @@ public interface DeviceService */ int getDeviceCount(); + /** + * Returns the number of currently available devices known to the system. + * + * @return number of available devices + */ + default int getAvailableDeviceCount() { + return getDeviceCount(); + } + /** * Returns a collection of the currently known infrastructure * devices. diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceServiceAdapter.java b/core/api/src/main/java/org/onosproject/net/device/DeviceServiceAdapter.java index 9c6887c872..146a93a30f 100644 --- a/core/api/src/main/java/org/onosproject/net/device/DeviceServiceAdapter.java +++ b/core/api/src/main/java/org/onosproject/net/device/DeviceServiceAdapter.java @@ -55,6 +55,11 @@ public class DeviceServiceAdapter implements DeviceService { return 0; } + @Override + public int getAvailableDeviceCount() { + return 0; + } + @Override public Iterable getDevices() { return Collections.emptyList(); diff --git a/core/api/src/main/java/org/onosproject/net/utils/ForwardingDeviceService.java b/core/api/src/main/java/org/onosproject/net/utils/ForwardingDeviceService.java index e1f8110010..60ae84e585 100644 --- a/core/api/src/main/java/org/onosproject/net/utils/ForwardingDeviceService.java +++ b/core/api/src/main/java/org/onosproject/net/utils/ForwardingDeviceService.java @@ -62,6 +62,11 @@ public abstract class ForwardingDeviceService implements DeviceService { return delegate.getDeviceCount(); } + @Override + public int getAvailableDeviceCount() { + return delegate.getAvailableDeviceCount(); + } + @Override public Iterable getDevices() { return delegate.getDevices(); 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 cc80502334..c0bf128788 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 @@ -208,6 +208,12 @@ public class DeviceManager return store.getDeviceCount(); } + @Override + public int getAvailableDeviceCount() { + checkPermission(DEVICE_READ); + return store.getAvailableDeviceCount(); + } + @Override public Iterable getDevices() { checkPermission(DEVICE_READ); diff --git a/core/net/src/test/java/org/onosproject/net/device/impl/DeviceManagerTest.java b/core/net/src/test/java/org/onosproject/net/device/impl/DeviceManagerTest.java index 941944fa3c..84028c4a53 100644 --- a/core/net/src/test/java/org/onosproject/net/device/impl/DeviceManagerTest.java +++ b/core/net/src/test/java/org/onosproject/net/device/impl/DeviceManagerTest.java @@ -144,6 +144,7 @@ public class DeviceManagerTest { assertNotNull("one device expected", it.next()); assertFalse("only one device expected", it.hasNext()); assertEquals("incorrect device count", 1, service.getDeviceCount()); + assertEquals("incorrect available device count", 1, service.getAvailableDeviceCount()); assertTrue("device should be available", service.isAvailable(DID1)); } @@ -165,6 +166,7 @@ public class DeviceManagerTest { validateEvents(DEVICE_AVAILABILITY_CHANGED); assertEquals("incorrect device count", 2, service.getDeviceCount()); + assertEquals("incorrect available device count", 2, service.getAvailableDeviceCount()); } @Test @@ -225,8 +227,8 @@ public class DeviceManagerTest { assertEquals("wrong port count", 2, service.getPorts(DID1).size()); Port port = service.getPort(DID1, P1); - assertEquals("incorrect port", P1, service.getPort(DID1, P1).number()); - assertEquals("incorrect state", true, service.getPort(DID1, P1).isEnabled()); + assertEquals("incorrect port", P1, port.number()); + assertEquals("incorrect state", true, port.isEnabled()); } @Test @@ -234,10 +236,12 @@ public class DeviceManagerTest { connectDevice(DID1, SW1); connectDevice(DID2, SW2); assertEquals("incorrect device count", 2, service.getDeviceCount()); + assertEquals("incorrect available device count", 2, service.getAvailableDeviceCount()); admin.removeDevice(DID1); assertNull("device should not be found", service.getDevice(DID1)); assertNotNull("device should be found", service.getDevice(DID2)); assertEquals("incorrect device count", 1, service.getDeviceCount()); + assertEquals("incorrect available device count", 1, service.getAvailableDeviceCount()); }