Enable to query the control metrics from remote node

Change-Id: Ifef1c6eafd7cc79ed99be51f7faa26d97aeb2f67
diff --git a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneMonitorTest.java b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneMonitorTest.java
index 62502f9..39198af 100644
--- a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneMonitorTest.java
+++ b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneMonitorTest.java
@@ -31,6 +31,7 @@
 
 import java.util.Optional;
 import java.util.Set;
+import java.util.concurrent.ExecutionException;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
@@ -109,11 +110,17 @@
 
     private void testUpdateMetricWithoutId(ControlMetricType cmt, MetricValue mv) {
         ControlMetric cm = new ControlMetric(cmt, mv);
-        monitor.updateMetric(cm, UPDATE_INTERVAL, Optional.ofNullable(null));
+        monitor.updateMetric(cm, UPDATE_INTERVAL, Optional.empty());
     }
 
-    private void testLoadMetricWithoutId(ControlMetricType cmt, MetricValue mv) {
-        assertThat(monitor.getLocalLoad(cmt, Optional.ofNullable(null)).latest(), is(mv.getLoad()));
+    private void testLoadMetric(NodeId nodeId, ControlMetricType cmt, MetricValue mv) {
+        try {
+            assertThat(monitor.getLoad(nodeId, cmt, Optional.empty()).get().latest(), is(mv.getLoad()));
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } catch (ExecutionException e) {
+            e.printStackTrace();
+        }
     }
 
     private void testUpdateMetricWithResource(ControlMetricType cmt, MetricValue mv, String resourceName) {
@@ -121,8 +128,14 @@
         monitor.updateMetric(cm, UPDATE_INTERVAL, resourceName);
     }
 
-    private void testLoadMetricWithResource(ControlMetricType cmt, MetricValue mv, String resourceName) {
-        assertThat(monitor.getLocalLoad(cmt, resourceName).latest(), is(mv.getLoad()));
+    private void testLoadMetricWithResource(NodeId nodeId, ControlMetricType cmt, MetricValue mv, String resourceName) {
+        try {
+            assertThat(monitor.getLoad(nodeId, cmt, resourceName).get().latest(), is(mv.getLoad()));
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } catch (ExecutionException e) {
+            e.printStackTrace();
+        }
     }
 
     private void testUpdateMetricWithId(ControlMetricType cmt, MetricValue mv, DeviceId did) {
@@ -130,8 +143,14 @@
         monitor.updateMetric(cm, UPDATE_INTERVAL, Optional.of(did));
     }
 
-    private void testLoadMetricWithId(ControlMetricType cmt, MetricValue mv, DeviceId did) {
-        assertThat(monitor.getLocalLoad(cmt, Optional.of(did)).latest(), is(mv.getLoad()));
+    private void testLoadMetricWithId(NodeId nodeId, ControlMetricType cmt, MetricValue mv, DeviceId did) {
+        try {
+            assertThat(monitor.getLoad(nodeId, cmt, Optional.of(did)).get().latest(), is(mv.getLoad()));
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } catch (ExecutionException e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -142,7 +161,7 @@
         MetricValue mv = new MetricValue.Builder().load(30).add();
 
         CPU_METRICS.forEach(cmt -> testUpdateMetricWithoutId(cmt, mv));
-        CPU_METRICS.forEach(cmt -> testLoadMetricWithoutId(cmt, mv));
+        CPU_METRICS.forEach(cmt -> testLoadMetric(nodeId, cmt, mv));
     }
 
     /**
@@ -153,7 +172,7 @@
         MetricValue mv = new MetricValue.Builder().load(40).add();
 
         MEMORY_METRICS.forEach(cmt -> testUpdateMetricWithoutId(cmt, mv));
-        MEMORY_METRICS.forEach(cmt -> testLoadMetricWithoutId(cmt, mv));
+        MEMORY_METRICS.forEach(cmt -> testLoadMetric(nodeId, cmt, mv));
     }
 
     /**
@@ -169,7 +188,7 @@
                 testUpdateMetricWithResource(cmt, mv, disk)));
 
         set.forEach(disk -> DISK_METRICS.forEach(cmt ->
-                testLoadMetricWithResource(cmt, mv, disk)));
+                testLoadMetricWithResource(nodeId, cmt, mv, disk)));
     }
 
     /**
@@ -185,7 +204,7 @@
                 testUpdateMetricWithResource(cmt, mv, network)));
 
         set.forEach(network -> NETWORK_METRICS.forEach(cmt ->
-                testLoadMetricWithResource(cmt, mv, network)));
+                testLoadMetricWithResource(nodeId, cmt, mv, network)));
     }
 
     /**
@@ -201,7 +220,7 @@
                 testUpdateMetricWithId(cmt, mv, devId)));
 
         set.forEach(devId -> CONTROL_MESSAGE_METRICS.forEach(cmt ->
-                testLoadMetricWithId(cmt, mv, devId)));
+                testLoadMetricWithId(nodeId, cmt, mv, devId)));
     }
 
     /**
diff --git a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/message/ControlPlaneMonitorServiceAdaptor.java b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/message/ControlPlaneMonitorServiceAdaptor.java
index dbc991b..087b1ab 100644
--- a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/message/ControlPlaneMonitorServiceAdaptor.java
+++ b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/message/ControlPlaneMonitorServiceAdaptor.java
@@ -16,7 +16,7 @@
 package org.onosproject.cpman.impl.message;
 
 import org.onosproject.cluster.NodeId;
-import org.onosproject.cpman.ControlLoad;
+import org.onosproject.cpman.ControlLoadSnapshot;
 import org.onosproject.cpman.ControlMetric;
 import org.onosproject.cpman.ControlMetricType;
 import org.onosproject.cpman.ControlPlaneMonitorService;
@@ -26,6 +26,7 @@
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Test adapter control plane monitoring service.
@@ -44,27 +45,32 @@
     }
 
     @Override
-    public ControlLoad getLocalLoad(ControlMetricType type,
-                                    Optional<DeviceId> deviceId) {
+    public CompletableFuture<ControlLoadSnapshot> getLoad(NodeId nodeId,
+                                                          ControlMetricType type,
+                                                          Optional<DeviceId> deviceId) {
         return null;
     }
 
     @Override
-    public ControlLoad getLocalLoad(ControlMetricType type, String resourceName) {
+    public CompletableFuture<ControlLoadSnapshot> getLoad(NodeId nodeId,
+                                                          ControlMetricType type,
+                                                          String resourceName) {
         return null;
     }
 
     @Override
-    public CompletableFuture<ControlLoad> getRemoteLoad(NodeId nodeId,
-                                                        ControlMetricType type,
-                                                        Optional<DeviceId> deviceId) {
+    public CompletableFuture<ControlLoadSnapshot> getLoad(NodeId nodeId,
+                                                          ControlMetricType type,
+                                                          int duration, TimeUnit unit,
+                                                          Optional<DeviceId> deviceId) {
         return null;
     }
 
     @Override
-    public CompletableFuture<ControlLoad> getRemoteLoad(NodeId nodeId,
-                                                        ControlMetricType type,
-                                                        String resourceName) {
+    public CompletableFuture<ControlLoadSnapshot> getLoad(NodeId nodeId,
+                                                          ControlMetricType type,
+                                                          int duration, TimeUnit unit,
+                                                          String resourceName) {
         return null;
     }