Intents are now removed after being withdrawn.
Change-Id: I7574fe94add00abf58c71c6122bb3dc5aafa0f79
diff --git a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
index fb6aa40..da2fe70 100644
--- a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
@@ -694,6 +694,10 @@
if (event != null) {
eventDispatcher.post(event);
}
+
+ if (newState == WITHDRAWN) {
+ store.removeIntent(intent.id());
+ }
}
Map<Intent, IntentState> stateMap() {
diff --git a/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java b/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
index dc7383b..20240d4 100644
--- a/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
+++ b/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
@@ -155,7 +155,8 @@
listener.setLatch(1, Type.WITHDRAWN);
service.withdraw(intent);
listener.await(Type.WITHDRAWN);
- assertEquals(1L, service.getIntentCount());
+ delay(10); //FIXME this is a race
+ assertEquals(0L, service.getIntentCount());
assertEquals(0L, flowRuleService.getFlowRuleCount());
}
@@ -176,7 +177,8 @@
listener.await(Type.INSTALLED);
listener.await(Type.WITHDRAWN);
- assertEquals(1L, service.getIntentCount());
+ delay(10); //FIXME this is a race
+ assertEquals(0L, service.getIntentCount());
assertEquals(0L, flowRuleService.getFlowRuleCount());
}
@@ -198,7 +200,8 @@
service.replace(intent.id(), intent2);
listener.await(Type.WITHDRAWN);
listener.await(Type.INSTALLED);
- assertEquals(2L, service.getIntentCount());
+ delay(10); //FIXME this is a race
+ assertEquals(1L, service.getIntentCount());
assertEquals(1L, manager.flowRuleService.getFlowRuleCount());
assertEquals(intent2.number().intValue(),
flowRuleService.flows.iterator().next().priority());