Enhance the RM logic for Kubevirt Networking App

Change-Id: I84fa678c75ba1e738c68c72ffbc89c54e5309997
(cherry picked from commit 842b3031e5b82a95d1f292fc952e8f091cc1e20b)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
index d59a260..419672f 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
@@ -398,48 +398,41 @@
         }
 
         private void processRouterGatewayNodeChanged(KubevirtRouter router, String disAssociatedGateway) {
-
-            kubevirtRouterService.floatingIps()
-                    .stream()
-                    .filter(fip -> fip.routerName().equals(router.name())).forEach(fip -> {
-                        KubevirtNode oldGw = kubevirtNodeService.node(disAssociatedGateway);
-                        if (oldGw == null) {
-                            return;
-                        }
-
+            kubevirtRouterService.floatingIpsByRouter(router.name())
+                    .forEach(fip -> {
                         KubevirtNode newGw = kubevirtNodeService.node(router.electedGateway());
                         if (newGw == null) {
                             return;
                         }
-
-                        setFloatingIpRulesForFip(router, fip, oldGw, false);
-
                         setFloatingIpRulesForFip(router, fip, newGw, true);
                         processGarpPacketForFloatingIp(fip, newGw);
+                        KubevirtNode oldGw = kubevirtNodeService.node(disAssociatedGateway);
 
-            });
+                        if (oldGw == null) {
+                            return;
+                        }
+                        setFloatingIpRulesForFip(router, fip, oldGw, false);
+                    });
         }
 
         private void processGatewayNodeAttachment(KubevirtRouter router, String gatewayName) {
-            kubevirtRouterService.floatingIps().forEach(fip -> {
-                if (fip.routerName().equals(router.name())) {
-                    KubevirtNode gw = kubevirtNodeService.node(gatewayName);
-                    if (gw != null) {
-                        setFloatingIpRulesForFip(router, fip, gw, true);
-                    }
-                }
-            });
+            kubevirtRouterService.floatingIpsByRouter(router.name())
+                    .forEach(fip -> {
+                        KubevirtNode gw = kubevirtNodeService.node(gatewayName);
+                        if (gw != null) {
+                            setFloatingIpRulesForFip(router, fip, gw, true);
+                        }
+                    });
         }
 
         private void processGatewayNodeDetachment(KubevirtRouter router, String gatewayName) {
-            kubevirtRouterService.floatingIps().forEach(fip -> {
-                if (fip.routerName().equals(router.name())) {
-                    KubevirtNode gw = kubevirtNodeService.node(gatewayName);
-                    if (gw != null) {
-                        setFloatingIpRulesForFip(router, fip, gw, false);
-                    }
-                }
-            });
+            kubevirtRouterService.floatingIpsByRouter(router.name())
+                    .forEach(fip -> {
+                        KubevirtNode gw = kubevirtNodeService.node(gatewayName);
+                        if (gw != null) {
+                            setFloatingIpRulesForFip(router, fip, gw, false);
+                        }
+                    });
         }
 
         private void processFloatingIpAssociation(KubevirtRouter router, KubevirtFloatingIp floatingIp) {