FlowRule subsystem bugfixes
- RULE_ADDED will be posted when the Flow was confirmed by stats,
even if they were installed as a batch
- Properly handle batch in Simple store
Change-Id: I0a0e15b29ff9c0d56d5a646e0751511d73c8f552
diff --git a/core/net/src/test/java/org/onlab/onos/net/flow/impl/FlowRuleManagerTest.java b/core/net/src/test/java/org/onlab/onos/net/flow/impl/FlowRuleManagerTest.java
index b986d6d..f67d992 100644
--- a/core/net/src/test/java/org/onlab/onos/net/flow/impl/FlowRuleManagerTest.java
+++ b/core/net/src/test/java/org/onlab/onos/net/flow/impl/FlowRuleManagerTest.java
@@ -148,7 +148,7 @@
int i = 0;
System.err.println("events :" + listener.events);
for (FlowRuleEvent e : listener.events) {
- assertTrue("unexpected event", e.type().equals(events[i]));
+ assertEquals("unexpected event", events[i], e.type());
i++;
}
@@ -178,15 +178,13 @@
RULE_ADDED, RULE_ADDED);
addFlowRule(1);
+ System.err.println("events :" + listener.events);
assertEquals("should still be 2 rules", 2, flowCount());
providerService.pushFlowMetrics(DID, ImmutableList.of(fe1));
validateEvents(RULE_UPDATED);
}
-
- // TODO: If preserving iteration order is a requirement, redo FlowRuleStore.
- //backing store is sensitive to the order of additions/removals
private boolean validateState(Map<FlowRule, FlowEntryState> expected) {
Map<FlowRule, FlowEntryState> expectedToCheck = new HashMap<>(expected);
Iterable<FlowEntry> rules = service.getFlowEntries(DID);
@@ -539,17 +537,17 @@
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
- return true;
+ return false;
}
@Override
public boolean isCancelled() {
- return true;
+ return false;
}
@Override
public boolean isDone() {
- return false;
+ return true;
}
@Override
@@ -562,12 +560,14 @@
public CompletedBatchOperation get(long timeout, TimeUnit unit)
throws InterruptedException,
ExecutionException, TimeoutException {
- return null;
+ return new CompletedBatchOperation(true, Collections.<FlowRule>emptySet());
}
@Override
public void addListener(Runnable task, Executor executor) {
- // TODO: add stuff.
+ if (isDone()) {
+ executor.execute(task);
+ }
}
}