Refactor: install rules in a separated thread to avoid thread blocking

Change-Id: I10ff88fb56f9358ec948f01176d6fe20d91e37c0
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
index 40413d7..92eab4f 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
@@ -306,11 +306,11 @@
 
         @Override
         public boolean isRelevant(DeviceEvent event) {
-            Device device = event.subject();
-            if (!mastershipService.isLocalMaster(device.id())) {
+            if (!mastershipService.isLocalMaster(event.subject().id())) {
                 // do not allow to proceed without mastership
                 return false;
             }
+
             Port port = event.port();
             if (port == null) {
                 return false;
@@ -390,8 +390,10 @@
 
         private void processCompleteNode(OpenstackNode osNode) {
             deviceService.getPorts(osNode.intgBridge()).stream()
-                    .filter(port -> vnicType(port.annotations().value(PORT_NAME)).equals(Constants.VnicType.NORMAL) ||
-                            vnicType(port.annotations().value(PORT_NAME)).equals(Constants.VnicType.DIRECT))
+                    .filter(port -> vnicType(port.annotations().value(PORT_NAME))
+                                    .equals(Constants.VnicType.NORMAL) ||
+                            vnicType(port.annotations().value(PORT_NAME))
+                                    .equals(Constants.VnicType.DIRECT))
                     .filter(Port::isEnabled)
                     .forEach(port -> {
                         log.debug("Instance port {} is detected from {}",