X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=itm%2Fitm-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Fitm%2Fconfighelpers%2FItmExternalTunnelDeleteWorker.java;h=81f6aaefbe0a6bbd8fd36c7b98bc715e26b1a961;hb=de28c9eeb14ae5e5f65bc4621f3802ee4f831d49;hp=13a6329ed7ab0e754db5dbc0b992ca072eaca3d0;hpb=84d7f74b3676cd9ddacae9543559a5dc2cf2fcc3;p=vpnservice.git diff --git a/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmExternalTunnelDeleteWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmExternalTunnelDeleteWorker.java index 13a6329e..81f6aaef 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmExternalTunnelDeleteWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmExternalTunnelDeleteWorker.java @@ -16,8 +16,13 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.vpnservice.itm.impl.ItmUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.tunnels.DPNTEPsInfo; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.tunnels.dpn.teps.info.TunnelEndPoints; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeBase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.op.rev150701.ExternalTunnelList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.op.rev150701.dpn.endpoints.DPNTEPsInfo; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.op.rev150701.dpn.endpoints.dpn.teps.info.TunnelEndPoints; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.op.rev150701.external.tunnel.list.ExternalTunnel; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.op.rev150701.external.tunnel.list.ExternalTunnelKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.IdManagerService; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,7 +32,7 @@ import com.google.common.util.concurrent.ListenableFuture; public class ItmExternalTunnelDeleteWorker { private static final Logger logger = LoggerFactory.getLogger(ItmExternalTunnelDeleteWorker.class ) ; - public static List> deleteTunnels(DataBroker dataBroker, List dpnTepsList,IpAddress extIp ) { + public static List> deleteTunnels(DataBroker dataBroker, IdManagerService idManagerService, List dpnTepsList,IpAddress extIp, Class tunType ) { logger.trace( " Delete Tunnels towards DC Gateway with Ip {}", extIp ) ; List> futures = new ArrayList<>(); WriteTransaction t = dataBroker.newWriteOnlyTransaction(); @@ -38,10 +43,19 @@ public class ItmExternalTunnelDeleteWorker { } for( DPNTEPsInfo teps : dpnTepsList) { TunnelEndPoints firstEndPt = teps.getTunnelEndPoints().get(0) ; - String interfaceName = firstEndPt.getInterfaceName() ; - String trunkInterfaceName = ItmUtils.getTrunkInterfaceName(interfaceName, firstEndPt.getIpAddress().getIpv4Address().getValue(), extIp.getIpv4Address().getValue()) ; - InstanceIdentifier trunkIdentifier = ItmUtils.buildId(trunkInterfaceName); - t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier); + if( firstEndPt.getTunnelType().equals(tunType)) { + String interfaceName = firstEndPt.getInterfaceName() ; + String trunkInterfaceName = ItmUtils.getTrunkInterfaceName(idManagerService, interfaceName,firstEndPt.getIpAddress().getIpv4Address().getValue(), extIp.getIpv4Address().getValue()) ; + InstanceIdentifier trunkIdentifier = ItmUtils.buildId(trunkInterfaceName); + t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier); + + InstanceIdentifier path = InstanceIdentifier.create( + ExternalTunnelList.class) + .child(ExternalTunnel.class, new ExternalTunnelKey(extIp, teps.getDPNID())); + t.delete(LogicalDatastoreType.CONFIGURATION, path); + // Release the Ids for the trunk interface + ItmUtils.releaseId(idManagerService, trunkInterfaceName); + } } futures.add(t.submit()) ; return futures ;