From ada511f800854cdd6ba51a64e444f425f1a06a0d Mon Sep 17 00:00:00 2001 From: Yi Tseng Date: Thu, 18 May 2017 14:46:04 -0700 Subject: [PATCH] [ONOS-6488] Fix failure when reinstall a VPLS When removes and reinstalls a VPLS the VPLS operation manager doesn't update intents because it didn't check if the intent from store is installed or withdrawn. Purge intents every time when removes interface or VPLS to clean the intent store is a possible solution. Change-Id: Ie06fb11e915b8f82f6753c8e47177ac4dc53dd17 --- .../java/org/onosproject/vpls/VplsOperationManager.java | 8 ++++---- .../org/onosproject/vpls/store/DistributedVplsStore.java | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/VplsOperationManager.java b/apps/vpls/src/main/java/org/onosproject/vpls/VplsOperationManager.java index 4c0262d758..8d4d1dbcbf 100644 --- a/apps/vpls/src/main/java/org/onosproject/vpls/VplsOperationManager.java +++ b/apps/vpls/src/main/java/org/onosproject/vpls/VplsOperationManager.java @@ -304,13 +304,12 @@ public class VplsOperationManager implements VplsOperationService { // Error consumer VplsOperation vplsOperation = vplsOperationException.vplsOperation(); - log.debug("VPLS operation failed: {}", vplsOperation); + log.warn(OP_EXEC_ERR, + vplsOperation.toString(), + vplsOperationException.getMessage()); VplsData vplsData = vplsOperation.vpls(); vplsData.state(VplsData.VplsState.FAILED); vplsStore.updateVpls(vplsData); - log.error(OP_EXEC_ERR, - vplsOperation.toString(), - vplsOperationException.getMessage()); runningOperations.remove(vplsName); }); log.debug("Applying operation: {}", operation); @@ -544,6 +543,7 @@ public class VplsOperationManager implements VplsOperationService { private void removeVplsIntents() { Set intentsToWithdraw = getCurrentIntents(); applyIntentsSync(intentsToWithdraw, Direction.REMOVE); + intentsToWithdraw.forEach(intentService::purge); } /** diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/store/DistributedVplsStore.java b/apps/vpls/src/main/java/org/onosproject/vpls/store/DistributedVplsStore.java index 6d5845761b..6b50508dec 100644 --- a/apps/vpls/src/main/java/org/onosproject/vpls/store/DistributedVplsStore.java +++ b/apps/vpls/src/main/java/org/onosproject/vpls/store/DistributedVplsStore.java @@ -100,6 +100,7 @@ public class DistributedVplsStore @Deactivate protected void deactive() { vplsDataStore.removeListener(vplsDataListener); + networkConfigService.removeConfig(appId); log.info("Stopped"); }