Fix: install flow rules to corresponding GW by listening fip events

Change-Id: Iece92a37181b1c4bf71a55ffd00b8bb080ae2fa9
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
index 0319d40..e938a90 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
@@ -97,7 +97,7 @@
 import static org.onosproject.openstacknetworking.api.Constants.PRIORITY_ARP_GATEWAY_RULE;
 import static org.onosproject.openstacknetworking.impl.HostBasedInstancePort.ANNOTATION_NETWORK_ID;
 import static org.onosproject.openstacknetworking.impl.HostBasedInstancePort.ANNOTATION_PORT_ID;
-import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getGwByComputeDevId;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getGwByInstancePort;
 import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.GATEWAY;
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -243,7 +243,9 @@
                 return;
             }
 
-            OpenstackNode gw = getGwByTargetMac(osNodeService.completeNodes(GATEWAY), targetMac);
+            InstancePort instPort = instancePortService.instancePort(targetMac);
+
+            OpenstackNode gw = getGwByInstancePort(osNodeService.completeNodes(GATEWAY), instPort);
 
             if (gw == null) {
                 return;
@@ -443,8 +445,9 @@
             }
 
             MacAddress targetMac = MacAddress.valueOf(macString);
+            InstancePort instPort = instancePortService.instancePort(targetMac);
 
-            OpenstackNode gw = getGwByTargetMac(gateways, targetMac);
+            OpenstackNode gw = getGwByInstancePort(gateways, instPort);
 
             if (gw == null) {
                 return;
@@ -483,17 +486,6 @@
         }
     }
 
-    // a helper method
-    private OpenstackNode getGwByTargetMac(Set<OpenstackNode> gateways,
-                                           MacAddress targetMac) {
-        InstancePort instPort = instancePortService.instancePort(targetMac);
-        OpenstackNode gw = null;
-        if (instPort != null && instPort.deviceId() != null) {
-            gw = getGwByComputeDevId(gateways, instPort.deviceId());
-        }
-        return gw;
-    }
-
     /**
      * An internal router event listener, intended to install/uninstall
      * ARP rules for forwarding packets created from floating IPs.