MastershipService.relinquishRole returns CompletableFuture + Block deviceDiconnected until role relinquish is complete

Change-Id: I081df48fc05fdca2e452a937a093d5caa16091ed
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipService.java b/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
index 450bcc5..79eef94 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
@@ -55,8 +55,9 @@
      * for this device, no master selection will occur.
      *
      * @param deviceId the identifier of the device
+     * @return future that is completed when relinquish is complete
      */
-    void relinquishMastership(DeviceId deviceId);
+    CompletableFuture<Void> relinquishMastership(DeviceId deviceId);
 
     /**
      * Returns the current master for a given device.
diff --git a/core/api/src/test/java/org/onosproject/mastership/MastershipServiceAdapter.java b/core/api/src/test/java/org/onosproject/mastership/MastershipServiceAdapter.java
index aff67cd..7db9b38 100644
--- a/core/api/src/test/java/org/onosproject/mastership/MastershipServiceAdapter.java
+++ b/core/api/src/test/java/org/onosproject/mastership/MastershipServiceAdapter.java
@@ -38,7 +38,8 @@
     }
 
     @Override
-    public void relinquishMastership(DeviceId deviceId) {
+    public CompletableFuture<Void> relinquishMastership(DeviceId deviceId) {
+        return null;
     }
 
     @Override