X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=natservice%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Fnatservice%2Finternal%2FSubnetmapListener.java;h=485bceb816beb0e54f2c1766de83c6e44107eadd;hb=2f0569ed75ef8a1fb60f992d19c8bbdf92ff45bf;hp=dde911a3a916b304210a3f4f446de8c3ee75488a;hpb=82fc8f6178fa492fc7aa52219a56f85f78316492;p=netvirt.git diff --git a/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/SubnetmapListener.java b/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/SubnetmapListener.java index dde911a3a9..485bceb816 100644 --- a/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/SubnetmapListener.java +++ b/natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/SubnetmapListener.java @@ -8,12 +8,13 @@ package org.opendaylight.netvirt.natservice.internal; -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.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.opendaylight.netvirt.neutronvpn.rev150602.Subnetmaps; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -21,54 +22,54 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton -public class SubnetmapListener extends AsyncDataTreeChangeListenerBase { +public class SubnetmapListener extends AbstractAsyncDataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(SubnetmapListener.class); private final DataBroker dataBroker; private final ExternalNetworkGroupInstaller externalNetworkGroupInstaller; + private final NatServiceCounters natServiceCounters; @Inject public SubnetmapListener(final DataBroker dataBroker, - final ExternalNetworkGroupInstaller externalNetworkGroupInstaller) { - super(Subnetmap.class, SubnetmapListener.class); + final ExternalNetworkGroupInstaller externalNetworkGroupInstaller, + NatServiceCounters natServiceCounters) { + super(dataBroker, LogicalDatastoreType.CONFIGURATION, + InstanceIdentifier.create(Subnetmaps.class).child(Subnetmap.class), + Executors.newListeningSingleThreadExecutor("SubnetmapListener", LOG)); this.dataBroker = dataBroker; this.externalNetworkGroupInstaller = externalNetworkGroupInstaller; + this.natServiceCounters = natServiceCounters; } - @Override - @PostConstruct public void init() { - registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker); + LOG.info("{} init", getClass().getSimpleName()); } @Override - protected InstanceIdentifier getWildCardPath() { - return InstanceIdentifier.create(Subnetmaps.class).child(Subnetmap.class); + @PreDestroy + public void close() { + super.close(); + Executors.shutdownAndAwaitTermination(getExecutorService()); } @Override - protected void remove(InstanceIdentifier identifier, Subnetmap subnetmap) { + public void remove(InstanceIdentifier identifier, Subnetmap subnetmap) { LOG.trace("remove key: {} value: {}", subnetmap.key(), subnetmap); - NatServiceCounters.subnetmap_remove.inc(); + natServiceCounters.subnetmapRemove(); externalNetworkGroupInstaller.removeExtNetGroupEntries(subnetmap); } @Override - protected void update(InstanceIdentifier identifier, + public void update(InstanceIdentifier identifier, Subnetmap subnetmapBefore, Subnetmap subnetmapAfter) { LOG.trace("update key: {}, original: {}, update: {}", subnetmapAfter.key(), subnetmapBefore, subnetmapAfter); - NatServiceCounters.subnetmap_update.inc(); + natServiceCounters.subnetmapUpdate(); externalNetworkGroupInstaller.installExtNetGroupEntries(subnetmapAfter); } @Override - protected void add(InstanceIdentifier identifier, Subnetmap subnetmap) { + public void add(InstanceIdentifier identifier, Subnetmap subnetmap) { LOG.trace("add key: {} value: {}", subnetmap.key(), subnetmap); - NatServiceCounters.subnetmap_add.inc(); + natServiceCounters.subnetmapAdd(); externalNetworkGroupInstaller.installExtNetGroupEntries(subnetmap); } - - @Override - protected SubnetmapListener getDataTreeChangeListener() { - return this; - } }