X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=natservice%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Fnatservice%2Finternal%2FNatVpnMapsChangeListener.java;h=f30f9aefbc2e1f93d4e50e5d83cea4fb2a512c58;hb=cf1ea9172b94fc17e45391b62bf4ca24ac5c5fe0;hp=6d71511c30e1e4ee94b5d125d8a003905e946211;hpb=4b9b5cf1cc8a44c347af60fd24082b9f16d5d1d5;p=netvirt.git diff --git a/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatVpnMapsChangeListener.java b/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatVpnMapsChangeListener.java index 6d71511c30..f30f9aefbc 100644 --- a/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatVpnMapsChangeListener.java +++ b/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatVpnMapsChangeListener.java @@ -9,20 +9,22 @@ package org.opendaylight.netvirt.natservice.internal; import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; -import com.google.common.base.Optional; +import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase; import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.mdsalutil.MDSALUtil; +import org.opendaylight.infrautils.utils.concurrent.Executors; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes; @@ -39,7 +41,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton -public class NatVpnMapsChangeListener extends AsyncDataTreeChangeListenerBase { +public class NatVpnMapsChangeListener extends AbstractAsyncDataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(NatVpnMapsChangeListener.class); private final DataBroker dataBroker; private final ManagedNewTransactionRunner txRunner; @@ -52,7 +54,9 @@ public class NatVpnMapsChangeListener extends AsyncDataTreeChangeListenerBase getWildCardPath() { - return InstanceIdentifier.create(VpnMaps.class).child(VpnMap.class); + @PreDestroy + public void close() { + super.close(); + Executors.shutdownAndAwaitTermination(getExecutorService()); } @Override - protected void add(InstanceIdentifier identifier, VpnMap vpnMap) { + public void add(InstanceIdentifier identifier, VpnMap vpnMap) { Uuid vpnUuid = vpnMap.getVpnId(); String vpnName = vpnUuid.getValue(); if (vpnMap.getRouterIds() != null) { - vpnMap.getRouterIds().stream() + vpnMap.getRouterIds().values().stream() .filter(router -> !(Objects.equals(router.getRouterId(), vpnUuid))) .forEach(router -> { String routerName = router.getRouterId().getValue(); @@ -88,11 +91,11 @@ public class NatVpnMapsChangeListener extends AsyncDataTreeChangeListenerBase identifier, VpnMap vpnMap) { + public void remove(InstanceIdentifier identifier, VpnMap vpnMap) { Uuid vpnUuid = vpnMap.getVpnId(); String vpnName = vpnUuid.getValue(); if (vpnMap.getRouterIds() != null) { - vpnMap.getRouterIds().stream() + vpnMap.getRouterIds().values().stream() .filter(router -> !(Objects.equals(router.getRouterId(), vpnUuid))) .forEach(router -> { String routerName = router.getRouterId().getValue(); @@ -103,12 +106,12 @@ public class NatVpnMapsChangeListener extends AsyncDataTreeChangeListenerBase identifier, VpnMap original, VpnMap updated) { + public void update(InstanceIdentifier identifier, VpnMap original, VpnMap updated) { Uuid vpnUuid = updated.getVpnId(); String vpnName = vpnUuid.getValue(); - List updatedRouterIdList = updated.getRouterIds(); - List originalRouterIdList = original.getRouterIds(); + List updatedRouterIdList = new ArrayList(updated.getRouterIds().values()); + List originalRouterIdList = new ArrayList(original.getRouterIds().values()); List routersAddedList = null; List routersRemovedList = null; @@ -147,11 +150,6 @@ public class NatVpnMapsChangeListener extends AsyncDataTreeChangeListenerBase