X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=vpnmanager%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Fvpnmanager%2FVpnOpStatusListener.java;h=502d2308a44258bb9b324cad493ebcddb9955287;hb=2f0569ed75ef8a1fb60f992d19c8bbdf92ff45bf;hp=bb8f13ef9ab6f5bee7115eb7e3e0c9436b89eabc;hpb=fffad3ab6e2bd0c6179ce5391a5d716746645aa1;p=netvirt.git diff --git a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnOpStatusListener.java b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnOpStatusListener.java index bb8f13ef9a..502d2308a4 100644 --- a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnOpStatusListener.java +++ b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnOpStatusListener.java @@ -9,7 +9,6 @@ package org.opendaylight.netvirt.vpnmanager; import static java.util.Collections.emptyList; -import com.google.common.base.Optional; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -17,14 +16,12 @@ import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; +import java.util.concurrent.ExecutionException; import java.util.concurrent.locks.ReentrantLock; -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.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase; import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.genius.infra.Datastore; import org.opendaylight.genius.infra.ManagedNewTransactionRunner; @@ -33,9 +30,13 @@ import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.genius.utils.JvmGlobalLocks; import org.opendaylight.genius.utils.SystemPropertyReader; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; +import org.opendaylight.infrautils.utils.concurrent.Executors; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.netvirt.bgpmanager.api.IBgpManager; import org.opendaylight.netvirt.fibmanager.api.IFibManager; import org.opendaylight.netvirt.vpnmanager.api.VpnExtraRouteHelper; +import org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3nexthop.rev150409.L3nexthop; @@ -52,7 +53,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton -public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase { +public class VpnOpStatusListener extends AbstractAsyncDataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(VpnOpStatusListener.class); private final DataBroker dataBroker; private final ManagedNewTransactionRunner txRunner; @@ -69,7 +70,9 @@ public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase getWildCardPath() { - return InstanceIdentifier.create(VpnInstanceOpData.class).child(VpnInstanceOpDataEntry.class); + @PreDestroy + public void close() { + super.close(); + Executors.shutdownAndAwaitTermination(getExecutorService()); } - @Override - protected VpnOpStatusListener getDataTreeChangeListener() { - return VpnOpStatusListener.this; - } @Override - protected void remove(InstanceIdentifier identifier, VpnInstanceOpDataEntry value) { + public void remove(InstanceIdentifier identifier, VpnInstanceOpDataEntry value) { LOG.info("remove: Ignoring vpn Op {} with rd {}", value.getVpnInstanceName(), value.getVrfId()); } @Override @SuppressWarnings("checkstyle:IllegalCatch") - protected void update(InstanceIdentifier identifier, + public void update(InstanceIdentifier identifier, VpnInstanceOpDataEntry original, VpnInstanceOpDataEntry update) { LOG.info("update: Processing update for vpn {} with rd {}", update.getVpnInstanceName(), update.getVrfId()); if (update.getVpnState() == VpnInstanceOpDataEntry.VpnState.PendingDelete @@ -147,11 +147,11 @@ public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase vpnToExtraroute = VpnExtraRouteHelper.getVpnToExtrarouteVpnIdentifier(vpnName); - Optional optVpnToExtraroute = Optional.absent(); + Optional optVpnToExtraroute = Optional.empty(); try { optVpnToExtraroute = SingleTransactionDataBroker.syncReadOptional(dataBroker, LogicalDatastoreType.OPERATIONAL, vpnToExtraroute); - } catch (ReadFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.error("update: Failed to read VpnToExtraRoute for vpn {}", vpnName); } if (optVpnToExtraroute.isPresent()) { @@ -161,11 +161,11 @@ public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase optPrefixToIntf = Optional.absent(); + Optional optPrefixToIntf = Optional.empty(); try { optPrefixToIntf = SingleTransactionDataBroker.syncReadOptional(dataBroker, LogicalDatastoreType.OPERATIONAL, VpnUtil.getPrefixToInterfaceIdentifier(vpnId)); - } catch (ReadFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.error("update: Failed to read PrefixToInterface for vpn {}", vpnName); } if (optPrefixToIntf.isPresent()) { @@ -174,11 +174,11 @@ public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase vpnNextHops = InstanceIdentifier.builder(L3nexthop.class).child( VpnNexthops.class, new VpnNexthopsKey(vpnId)).build(); - Optional optL3nexthopForVpnId = Optional.absent(); + Optional optL3nexthopForVpnId = Optional.empty(); try { optL3nexthopForVpnId = SingleTransactionDataBroker.syncReadOptional(dataBroker, LogicalDatastoreType.OPERATIONAL, vpnNextHops); - } catch (ReadFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.error("update: Failed to read VpnNextHops for vpn {}", vpnName); } if (optL3nexthopForVpnId.isPresent()) { @@ -318,7 +318,7 @@ public class VpnOpStatusListener extends AsyncDataTreeChangeListenerBase identifier, + public void add(final InstanceIdentifier identifier, final VpnInstanceOpDataEntry value) { LOG.debug("add: Ignoring vpn Op {} with rd {}", value.getVpnInstanceName(), value.getVrfId()); }