Fix: add the kubevirt port to the store only if it is not existed

Remove all flows before remove bridge and ports

Change-Id: I8027bc19b70dce10612f8bc32da6062937299d89
(cherry picked from commit e66ed69033b65ad8ec1c6e1405f87b9be304cfd7)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFlowRuleManager.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFlowRuleManager.java
index fd0669a..6fe457a 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFlowRuleManager.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFlowRuleManager.java
@@ -35,6 +35,7 @@
 import org.onosproject.net.flow.DefaultFlowRule;
 import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.FlowEntry;
 import org.onosproject.net.flow.FlowRule;
 import org.onosproject.net.flow.FlowRuleOperations;
 import org.onosproject.net.flow.FlowRuleOperationsContext;
@@ -55,6 +56,7 @@
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.stream.StreamSupport;
 
 import static org.onlab.util.Tools.groupedThreads;
 import static org.onosproject.kubevirtnetworking.api.Constants.ACL_EGRESS_TABLE;
@@ -213,6 +215,13 @@
                 true);
     }
 
+    @Override
+    public void purgeRules(DeviceId deviceId) {
+        Iterable<FlowEntry> fes = flowRuleService.getFlowEntries(deviceId);
+        flowRuleService.removeFlowRules(StreamSupport.stream(
+                    fes.spliterator(), false).toArray(FlowEntry[]::new));
+    }
+
     private void applyRule(FlowRule flowRule, boolean install) {
         FlowRuleOperations.Builder flowOpsBuilder = FlowRuleOperations.builder();