AsyncLeaderElector APIs in support for mastership balancing

Change-Id: Ia235c6a18c54490dc49ca13e2caebf70b750dbc7
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/PartitionedAsyncLeaderElector.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/PartitionedAsyncLeaderElector.java
index e364a7e..27c92ec 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/PartitionedAsyncLeaderElector.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/PartitionedAsyncLeaderElector.java
@@ -70,6 +70,18 @@
     }
 
     @Override
+    public CompletableFuture<Boolean> promote(String topic, NodeId nodeId) {
+        return getLeaderElector(topic).promote(topic, nodeId);
+    }
+
+    @Override
+    public CompletableFuture<Void> evict(NodeId nodeId) {
+        return CompletableFuture.allOf(getLeaderElectors().stream()
+                                                          .map(le -> le.evict(nodeId))
+                                                          .toArray(CompletableFuture[]::new));
+    }
+
+    @Override
     public CompletableFuture<Leadership> getLeadership(String topic) {
         return getLeaderElector(topic).getLeadership(topic);
     }