Fixed a bug that optical intent compilers never release resources reserved during compilation.
Removed tempoary code from optical app (ONOS-2129).
Change-Id: Iee0343964f886196922469eaabe4a72c3f404888
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
index fcdb033..c9d6e56 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
@@ -44,6 +44,7 @@
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.impl.phase.FinalIntentProcessPhase;
import org.onosproject.net.intent.impl.phase.IntentProcessPhase;
+import org.onosproject.net.newresource.ResourceService;
import org.slf4j.Logger;
import java.util.Collection;
@@ -108,6 +109,9 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected FlowRuleService flowRuleService;
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected ResourceService resourceService;
+
private ExecutorService batchExecutor;
private ExecutorService workerExecutor;
@@ -238,6 +242,16 @@
@Override
public void notify(IntentEvent event) {
post(event);
+ switch (event.type()) {
+ case WITHDRAWN:
+ // release resources allocated to withdrawn intent
+ if (!resourceService.release(event.subject().id())) {
+ log.error("Failed to release resources allocated to {}", event.subject().id());
+ }
+ break;
+ default:
+ break;
+ }
}
@Override