Remove old path intents associated with application intents overwritten by application
Change-Id: Ie04bee578043588f628bf9c6f15b433a949cb0a4
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntime.java b/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntime.java
index 6ff92db..abd68d1 100644
--- a/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntime.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntime.java
@@ -107,6 +107,19 @@
pathIntentOpList.add(Operator.REMOVE, new Intent(oldPathIntentId));
}
+ // remove old path-intent if exists
+ Intent oldIntent = appIntents.getIntent(spIntent.getId());
+ if (oldIntent != null) {
+ ShortestPathIntent oldSpIntent = (ShortestPathIntent)oldIntent;
+ String pathIntentId = oldSpIntent.getPathIntentId();
+ if (pathIntentId != null) {
+ Intent targetPathIntent = pathIntents.getIntent(pathIntentId);
+ if (targetPathIntent != null) {
+ pathIntentOpList.add(Operator.REMOVE, targetPathIntent);
+ }
+ }
+ }
+
// create new path-intent
PathIntent pathIntent = new PathIntent(newPathIntentId, path, bandwidth, spIntent);
pathIntent.setState(IntentState.INST_REQ);