X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=vpnmanager%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Fvpnmanager%2FVpnUtil.java;h=2c47b7e560a68590faf3917f92e92e380dcc6937;hb=8ce872b0b929e39d41f94ce2313f789403533b6a;hp=92a2bb6c000e6c8a060f3ccb46fce6556639b962;hpb=d2e141d4e4bf73515591850d29452f075d0fc65a;p=netvirt.git diff --git a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java index 92a2bb6c00..2c47b7e560 100644 --- a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java +++ b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java @@ -966,8 +966,8 @@ public final class VpnUtil { new LearntVpnVipToPortKey(fixedIp, vpnName)).build(); } - void removeLearntVpnVipToPort(String vpnName, String fixedIp, - @Nullable TypedWriteTransaction writeOperTxn) { + public void removeLearntVpnVipToPort(String vpnName, String fixedIp, + @Nullable TypedWriteTransaction writeOperTxn) { final InstanceIdentifier id = buildLearntVpnVipToPortIdentifier(vpnName, fixedIp); final ReentrantLock lock = lockFor(vpnName, fixedIp); lock.lock(); @@ -984,7 +984,7 @@ public final class VpnUtil { } } - protected static void removeVpnPortFixedIpToPort(DataBroker broker, String vpnName, String fixedIp, + public static void removeVpnPortFixedIpToPort(DataBroker broker, String vpnName, String fixedIp, @Nullable TypedWriteTransaction writeConfigTxn) { final InstanceIdentifier id = buildVpnPortipToPortIdentifier(vpnName, fixedIp); final ReentrantLock lock = lockFor(vpnName, fixedIp); @@ -1071,11 +1071,29 @@ public final class VpnUtil { VpnUtil.removeVpnPortFixedIpToPort(dataBroker, vpnName, prefix, null); } + public void removeMipAdjacency(String vpnName, String vpnInterface, String prefix, + TypedWriteTransaction writeConfigTxn) { + String ip = VpnUtil.getIpPrefix(prefix); + LOG.trace("Removing {} adjacency from Old VPN Interface {} ", ip, vpnInterface); + InstanceIdentifier vpnIfId = VpnUtil.getVpnInterfaceIdentifier(vpnInterface); + InstanceIdentifier path = vpnIfId.augmentation(Adjacencies.class); + //TODO: Remove synchronized? + + Optional adjacencies = read(LogicalDatastoreType.OPERATIONAL, path); + if (adjacencies.isPresent()) { + InstanceIdentifier adjacencyIdentifier = getAdjacencyIdentifier(vpnInterface, prefix); + writeConfigTxn.delete(adjacencyIdentifier); + LOG.error("removeMipAdjacency: Successfully Deleted Adjacency {} from interface {} vpn {}", ip, + vpnInterface, vpnName); + } + } + public void removeMipAdjacency(String vpnInterface, String ipAddress) { String prefix = VpnUtil.getIpPrefix(ipAddress); InstanceIdentifier adjacencyIdentifier = getAdjacencyIdentifier(vpnInterface, prefix); try { - SingleTransactionDataBroker.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION, adjacencyIdentifier); + SingleTransactionDataBroker.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION, + adjacencyIdentifier); } catch (TransactionCommitFailedException e) { if (e.getCause() instanceof ModifiedNodeDoesNotExistException) { LOG.debug("vpnInterface {} is already deleted. prefix={}", vpnInterface, prefix);