From: Robert Varga Date: Tue, 4 Aug 2020 12:33:29 +0000 (+0200) Subject: Convert itm-impl to use mdsal-binding-util X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=fa6b69ffcca21a7951f0cfe7c15b877048dcecb7;p=genius.git Convert itm-impl to use mdsal-binding-util ITM is using ManagedNewTransactionRunner from a deprecated location, migrate it to use mdsal-binding-util. This necessitates splitting the future for TunnelTopologyStateListener.removePortFromBridge() because it was performing a cross-datastore transaction. JIRA: GENIUS-291 Change-Id: Id15fd9dfeb3b47f50dae79f7a4e3bddb1435f4f2 Signed-off-by: Robert Varga Signed-off-by: Chetan Arakere Gowdru --- diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DPNTEPsInfoCache.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DPNTEPsInfoCache.java index 421181070..9b025503f 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DPNTEPsInfoCache.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DPNTEPsInfoCache.java @@ -13,8 +13,6 @@ import java.util.List; import java.util.Optional; import javax.inject.Inject; import javax.inject.Singleton; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.genius.itm.itmdirecttunnels.workers.TunnelStateAddWorker; @@ -27,6 +25,8 @@ import org.opendaylight.infrautils.caches.CacheProvider; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acquired; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.DpnEndpoints; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DpnTepStateCache.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DpnTepStateCache.java index 42d626485..028ff6edb 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DpnTepStateCache.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DpnTepStateCache.java @@ -17,8 +17,6 @@ import java.util.concurrent.ConcurrentMap; import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; @@ -35,6 +33,8 @@ import org.opendaylight.infrautils.caches.CacheProvider; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acquired; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepCommandHelper.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepCommandHelper.java index 969ac1189..6a1094583 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepCommandHelper.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepCommandHelper.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.cli; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; @@ -28,12 +28,12 @@ import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; import org.apache.commons.lang3.StringUtils; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.RetryingManagedNewTransactionRunner; import org.opendaylight.genius.itm.cache.UnprocessedTunnelsStateCache; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; @@ -531,8 +531,7 @@ public class TepCommandHelper { .setTunnelType(tunType) .withKey(new TransportZoneKey(transportZoneName)).build();*/ - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.put(LogicalDatastoreType.CONFIGURATION, - path, transportZones)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.put(path, transportZones)).get(); } diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepDeleteDatastore.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepDeleteDatastore.java index e6baccaf2..0da0f6de6 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepDeleteDatastore.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepDeleteDatastore.java @@ -14,11 +14,11 @@ import java.util.ArrayList; import java.util.List; import org.apache.karaf.shell.commands.Command; import org.apache.karaf.shell.console.OsgiCommandSupport; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.api.IITMProvider; import org.opendaylight.genius.itm.impl.ItmUtils; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java index 160c7fca2..3a2b8dbfe 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java @@ -13,12 +13,12 @@ import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutionException; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelDeleteWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelDeleteWorker.java index 0d650b1c9..fa8a7af41 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelDeleteWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelDeleteWorker.java @@ -14,11 +14,11 @@ import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutionException; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.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.genius.interfacemanager.rev160406.TunnelTypeBase; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java index 1804a7178..4eb7376f5 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java @@ -8,7 +8,7 @@ package org.opendaylight.genius.itm.confighelpers; import static java.util.Collections.singletonList; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.ListenableFuture; import java.time.Duration; @@ -21,11 +21,6 @@ import java.util.Optional; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.OfEndPointCache; import org.opendaylight.genius.itm.cache.OvsBridgeRefEntryCache; @@ -37,6 +32,11 @@ import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.Direc import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; @@ -117,8 +117,9 @@ public final class ItmInternalTunnelAddWorker { monitorInterval = tunnelMonitoringConfig.getMonitorInterval(); } - public List> buildAllTunnels(IMdsalApiManager mdsalManager, List cfgdDpnList, - Collection meshedDpnList) { + public List> buildAllTunnels(IMdsalApiManager mdsalManager, + List cfgdDpnList, + Collection meshedDpnList) { LOG.trace("Building tunnels with DPN List {} " , cfgdDpnList); if (null == cfgdDpnList || cfgdDpnList.isEmpty()) { LOG.error(" Build Tunnels was invoked with empty list"); @@ -306,7 +307,7 @@ public final class ItmInternalTunnelAddWorker { } @Override - public List> call() { + public List> call() { return singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { //The logical tunnel interface be created only when the first tunnel interface on each OVS is created InternalTunnel tunnel = ItmUtils.ITM_CACHE.getInternalTunnel(logicTunnelGroupName); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelDeleteWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelDeleteWorker.java index aedadd856..e09a15772 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelDeleteWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelDeleteWorker.java @@ -8,7 +8,7 @@ package org.opendaylight.genius.itm.confighelpers; import static java.util.Collections.singletonList; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.ListenableFuture; import java.util.Collection; @@ -21,11 +21,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.genius.cloudscaler.api.TombstonedNodeManager; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.OfEndPointCache; @@ -40,6 +35,11 @@ import org.opendaylight.genius.itm.utils.DpnTepInterfaceInfo; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; @@ -121,7 +121,7 @@ public class ItmInternalTunnelDeleteWorker { } @SuppressWarnings("checkstyle:IllegalCatch") - public List> deleteTunnels(IMdsalApiManager mdsalManager, + public List> deleteTunnels(IMdsalApiManager mdsalManager, Collection dpnTepsList, Collection meshedDpnList) { LOG.trace("TEPs to be deleted {} " , dpnTepsList); return Collections.singletonList(txRunner.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION, tx -> { @@ -350,7 +350,7 @@ public class ItmInternalTunnelDeleteWorker { } @Override - public List> call() { + public List> call() { Collection tunnels = ItmUtils.ITM_CACHE.getAllInternalTunnel(); //The logical tunnel interface be removed only when the last tunnel interface on each OVS is deleted @@ -371,16 +371,16 @@ public class ItmInternalTunnelDeleteWorker { } } if (emptyTunnelGroup && foundLogicGroupIface) { - return singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> { + return singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { LOG.debug("MULTIPLE_VxLAN_TUNNELS: remove the logical tunnel group {} because a last tunnel" + " interface on srcDpnId {} dstDpnId {} is removed", logicTunnelName, srcDpnId, dstDpnId); InstanceIdentifier trunkIdentifier = ItmUtils.buildId(logicTunnelName); - tx.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier); + tx.delete(trunkIdentifier); ItmUtils.ITM_CACHE.removeInterface(logicTunnelName); InstanceIdentifier path = InstanceIdentifier.create(TunnelList.class) .child(InternalTunnel.class, new InternalTunnelKey(dstDpnId, srcDpnId, TunnelTypeLogicalGroup.class)); - tx.delete(LogicalDatastoreType.CONFIGURATION, path); + tx.delete(path); ItmUtils.ITM_CACHE.removeInternalTunnel(logicTunnelName); })); } else if (!emptyTunnelGroup) { diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorIntervalWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorIntervalWorker.java index 94c91750c..39c535a4d 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorIntervalWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorIntervalWorker.java @@ -11,12 +11,12 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnelBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorIntervalBuilder; @@ -25,7 +25,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ItmMonitorIntervalWorker implements Callable>> { - private static final Logger LOG = LoggerFactory.getLogger(ItmMonitorIntervalWorker.class) ; private final DataBroker dataBroker; @@ -43,13 +42,13 @@ public class ItmMonitorIntervalWorker implements Callable> call() { + public List> call() { LOG.debug("Invoking Tunnel Monitor Worker tzone = {} Interval= {}",tzone,interval); return toggleTunnelMonitoring(); } - private List> toggleTunnelMonitoring() { - List> futures = new ArrayList<>(); + private List> toggleTunnelMonitoring() { + List> futures = new ArrayList<>(); List tunnelList = ItmUtils.getInternalTunnelInterfaces(dataBroker); LOG.debug("ItmMonitorIntervalWorker toggleTunnelMonitoring: List of tunnel interfaces: {}" , tunnelList); InstanceIdentifier iid = InstanceIdentifier.create(TunnelMonitorInterval.class); @@ -61,7 +60,7 @@ public class ItmMonitorIntervalWorker implements Callable tx) { if (tunnelInterfaceName != null) { LOG.debug("tunnel {} will have monitor interval {}", tunnelInterfaceName, interval); tx.merge(ItmUtils.buildTunnelId(tunnelInterfaceName), diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorToggleWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorToggleWorker.java index 23d52e0c6..b603679d7 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorToggleWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorToggleWorker.java @@ -11,12 +11,12 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnelBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase; @@ -47,19 +47,20 @@ public class ItmMonitorToggleWorker implements Callable> call() { + @Override + public List> call() { LOG.debug("ItmMonitorToggleWorker invoked with tzone = {} enabled {}",tzone,enabled); return toggleTunnelMonitoring(); } - private List> toggleTunnelMonitoring() { + private List> toggleTunnelMonitoring() { List tunnelList = ItmUtils.getInternalTunnelInterfaces(dataBroker); LOG.debug("toggleTunnelMonitoring: TunnelList size {}", tunnelList.size()); InstanceIdentifier iid = InstanceIdentifier.create(TunnelMonitorParams.class); TunnelMonitorParams monitorParams = new TunnelMonitorParamsBuilder() .setEnabled(enabled).setMonitorProtocol(monitorProtocol).build(); LOG.debug("toggleTunnelMonitoring: Updating Operational DS"); - List> futures = new ArrayList<>(); + List> futures = new ArrayList<>(); futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, tx -> tx.merge(iid, monitorParams))); futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorWorker.java index da1aabadf..b4ecadf6d 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorWorker.java @@ -13,14 +13,14 @@ import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.OvsBridgeRefEntryCache; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval; @@ -84,21 +84,20 @@ public class ItmMonitorWorker implements Callable> call() { + public List> call() { LOG.debug("ItmMonitorWorker invoked with tzone = {} enabled {}", tzone, enabled); - List> futures = new ArrayList<>(); - return toggleTunnelMonitoring(futures); + return toggleTunnelMonitoring(); } - private List> toggleTunnelMonitoring(List> futures) { + private List> toggleTunnelMonitoring() { + List> futures = new ArrayList<>(); futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, tx -> updateOperationalDS(tx))); Collection dpnsTepsCollection = dpnTepStateCache.getAllPresent(); LOG.debug("toggleTunnelMonitoring: DpnsTepsList size {}", dpnsTepsCollection.size()); if (dpnsTepsCollection.isEmpty()) { LOG.info("There are no teps configured"); - } - else { + } else { futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> { for (DpnsTeps dpnTeps : dpnsTepsCollection) { diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java index a5a62a2fa..e575f0baf 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.confighelpers; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; @@ -15,12 +15,12 @@ import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.DcGatewayIpList; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -55,8 +55,8 @@ public class ItmTepAddWorker implements Callable> call() { - List> futures = new ArrayList<>() ; + public List> call() { + List> futures = new ArrayList<>() ; this.meshedDpnList = ItmUtils.getDpnTEPsInfos(dataBroker); LOG.debug("Invoking Internal Tunnel build method with Configured DpnList {} ; Meshed DpnList {} ", cfgdDpnList, meshedDpnList); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepRemoveWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepRemoveWorker.java index 96dbda114..6cfc327bc 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepRemoveWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepRemoveWorker.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.confighelpers; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; @@ -17,11 +17,11 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.Callable; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.dpn.teps.info.TunnelEndPoints; @@ -66,8 +66,8 @@ public class ItmTepRemoveWorker implements Callable> call() { - List> futures = new ArrayList<>() ; + public List> call() { + List> futures = new ArrayList<>() ; this.meshedDpnList = dpnTEPsInfoCache.getAllPresent(); futures.addAll(itmInternalTunnelDeleteWorker.deleteTunnels(mdsalManager, delDpnList, meshedDpnList)); LOG.debug("Invoking Internal Tunnel delete method with DpnList to be deleted {} ; Meshed DpnList {} ", diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedAddWorker.java index 9fe2a1c6e..ffe5242b0 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedAddWorker.java @@ -12,9 +12,9 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVteps; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVtepsKey; import org.slf4j.Logger; @@ -35,7 +35,7 @@ public class ItmTepsNotHostedAddWorker implements Callable> call() throws Exception { + public List> call() throws Exception { LOG.trace("Add TEP into TepsNotHosted list task is picked from DataStoreJobCoordinator for execution."); // Add TEP to TepsNotHosted list. diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedMoveWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedMoveWorker.java index 643376672..c196b1cae 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedMoveWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedMoveWorker.java @@ -11,8 +11,8 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps; import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; @@ -33,7 +33,7 @@ public class ItmTepsNotHostedMoveWorker implements Callable> call() throws Exception { + public List> call() throws Exception { LOG.trace("Move TEP from TepsNotHosted list to NBI configured TZ task is picked from " + "DataStoreJobCoordinator for execution."); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedRemoveWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedRemoveWorker.java index 1de3b4477..aaf057a2f 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedRemoveWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedRemoveWorker.java @@ -11,9 +11,9 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; @@ -39,7 +39,7 @@ public class ItmTepsNotHostedRemoveWorker implements Callable> call() throws Exception { + public List> call() throws Exception { LOG.trace("Remove TEP from TepsNotHosted list task is picked from DataStoreJobCoordinator for execution."); // Remove TEP from TepsNotHosted list. diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTunnelAggregationHelper.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTunnelAggregationHelper.java index ed64bdc95..c3ff62f0a 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTunnelAggregationHelper.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTunnelAggregationHelper.java @@ -5,11 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.genius.itm.confighelpers; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; -import static org.opendaylight.genius.infra.Datastore.OPERATIONAL; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.OPERATIONAL; import com.google.common.util.concurrent.ListenableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -24,13 +23,6 @@ import java.util.concurrent.ExecutionException; import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.Datastore.Operational; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedReadTransaction; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.interfacemanager.globals.IfmConstants; import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo; import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceAdminState; @@ -41,6 +33,13 @@ import org.opendaylight.genius.mdsalutil.MDSALUtil; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.Datastore.Operational; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedReadTransaction; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.Tunnel; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus; @@ -439,8 +438,8 @@ public class ItmTunnelAggregationHelper { } @Override - public List> call() { - List> futures = new ArrayList<>(); + public List> call() { + List> futures = new ArrayList<>(); futures.add(txRunner.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION, confTx -> { if (ifaceAction == MOD_GROUP_TUNNEL) { updateTunnelAggregationGroup(confTx, parentEntry); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java index 96e61f12a..d1d2dd884 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java @@ -14,13 +14,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.mdsalutil.MDSALUtil; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones; @@ -64,10 +64,11 @@ public final class OvsdbTepAddConfigHelper { * @param txRunner ManagedTransactionRunner object */ - public static List> addTepReceivedFromOvsdb(String tepIp, String strDpnId, String tzName, - boolean ofTunnel, DataBroker dataBroker, - ManagedNewTransactionRunner txRunner) - throws Exception { + public static List> addTepReceivedFromOvsdb(String tepIp, String strDpnId, + String tzName, boolean ofTunnel, + DataBroker dataBroker, + ManagedNewTransactionRunner txRunner) + throws Exception { Uint64 dpnId = Uint64.ZERO; if (strDpnId != null && !strDpnId.isEmpty()) { @@ -116,7 +117,7 @@ public final class OvsdbTepAddConfigHelper { } } - List> futures = new ArrayList<>(); + List> futures = new ArrayList<>(); final Uint64 id = dpnId; final String name = tzName; futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, @@ -266,7 +267,7 @@ public final class OvsdbTepAddConfigHelper { addVtepInITMConfigDS(vtepList, ipAdd, tzName, dpnId, ofTunnel, tx); } - private static List> addUnknownTzTepIntoTepsNotHostedAndReturnFutures(String tzName, + private static List> addUnknownTzTepIntoTepsNotHostedAndReturnFutures(String tzName, IpAddress tepIpAddress, Uint64 id, boolean ofTunnel, DataBroker dataBroker, ManagedNewTransactionRunner txRunner) { return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddWorker.java index e81ed01e5..6559e7999 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddWorker.java @@ -10,9 +10,9 @@ package org.opendaylight.genius.itm.confighelpers; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +37,7 @@ public class OvsdbTepAddWorker implements Callable> call() throws Exception { + public List> call() throws Exception { LOG.trace("Add TEP task is picked from DataStoreJobCoordinator for execution."); // add TEP received from southbound OVSDB into ITM config DS. return OvsdbTepAddConfigHelper.addTepReceivedFromOvsdb(tepIp, strDpid, tzName, ofTunnel, dataBroker, txRunner); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java index 82920fd2a..07880c57f 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java @@ -13,13 +13,13 @@ import java.util.List; import java.util.Map; import java.util.Objects; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.mdsalutil.MDSALUtil; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones; @@ -58,11 +58,10 @@ public final class OvsdbTepRemoveConfigHelper { * @param dataBroker data broker handle to perform operations on config/operational datastore * @param txRunner ManagedNewTransactionRunner object */ - - public static List> removeTepReceivedFromOvsdb(String tepIp, String strDpnId, String tzName, - DataBroker dataBroker, - ManagedNewTransactionRunner txRunner) { - List> futures = new ArrayList<>(); + public static List> removeTepReceivedFromOvsdb(String tepIp, String strDpnId, + String tzName, DataBroker dataBroker, + ManagedNewTransactionRunner txRunner) { + List> futures = new ArrayList<>(); Uint64 dpnId = Uint64.ZERO; LOG.trace("Remove TEP: TEP-IP: {}, TZ name: {}, DPID: {}", tepIp, tzName, strDpnId); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveWorker.java index 6f3e6442b..0d0a62c90 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveWorker.java @@ -10,9 +10,9 @@ package org.opendaylight.genius.itm.confighelpers; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import java.util.concurrent.Callable; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,7 +35,7 @@ public class OvsdbTepRemoveWorker implements Callable> call() throws Exception { + public List> call() throws Exception { LOG.trace("Remove TEP task is picked from DataStoreJobCoordinator for execution."); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java index f75c8dcb9..e4807fa66 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java @@ -30,8 +30,6 @@ import java.util.concurrent.ExecutionException; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; import org.opendaylight.genius.interfacemanager.globals.IfmConstants; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; @@ -51,6 +49,8 @@ import org.opendaylight.genius.mdsalutil.matches.MatchTunnelId; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.Tunnel; @@ -157,9 +157,9 @@ public final class ItmUtils { private ItmUtils() { } - public static final FutureCallback DEFAULT_WRITE_CALLBACK = new FutureCallback<>() { + public static final FutureCallback DEFAULT_WRITE_CALLBACK = new FutureCallback<>() { @Override - public void onSuccess(Void result) { + public void onSuccess(Object result) { LOG.debug("Success in Datastore write operation"); } @@ -189,6 +189,7 @@ public final class ItmUtils { //ITM cleanup:portname and vlanId are removed, causes change in generated //interface name: This has upgrade impact + @Deprecated public static String getInterfaceName(final Uint64 datapathid, final String portName, final Integer vlanId) { return datapathid + ":" + portName + ":" + vlanId; } @@ -1049,7 +1050,7 @@ public final class ItmUtils { if (transportZonesOptional.isPresent()) { TransportZones tzones = transportZonesOptional.get(); for (TransportZone tzone : tzones.getTransportZone()) { - List vtepList = new ArrayList(tzone.nonnullVteps().values()); + List vtepList = new ArrayList<>(tzone.nonnullVteps().values()); if (vtepList != null && !vtepList.isEmpty()) { for (Vteps vtep : vtepList) { if (vtep.getDpnId().equals(dpid)) { diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TerminationPointStateListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TerminationPointStateListener.java index e7506d8b0..df365ebe2 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TerminationPointStateListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TerminationPointStateListener.java @@ -7,6 +7,8 @@ */ package org.opendaylight.genius.itm.itmdirecttunnels.listeners; +import static org.opendaylight.mdsal.binding.util.Datastore.OPERATIONAL; + import com.google.common.util.concurrent.ListenableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collections; @@ -16,8 +18,6 @@ import java.util.Optional; import java.util.concurrent.Callable; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.cache.BfdStateCache; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.TunnelStateCache; @@ -27,7 +27,10 @@ import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.Direc import org.opendaylight.genius.utils.clustering.EntityOwnershipUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore.Operational; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.tools.listener.AbstractClusteredSyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; @@ -141,7 +144,7 @@ public class TerminationPointStateListener && stateTnl.get().getOperState() != tunnelState) { LOG.debug("updating tunnel state for interface {} as {}", interfaceName, stateTnl.get().getOperState()); - return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit( + return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL, tx -> updateOpState(tx, interfaceName, tunnelState))); } return Collections.emptyList(); @@ -171,13 +174,14 @@ public class TerminationPointStateListener * update operational state of interface based on events like tunnel * monitoring */ - private static void updateOpState(WriteTransaction transaction, String interfaceName, TunnelOperStatus operStatus) { + private static void updateOpState(TypedWriteTransaction<@NonNull Operational> tx, String interfaceName, + TunnelOperStatus operStatus) { StateTunnelListKey stateTnlKey = new StateTunnelListKey(interfaceName); InstanceIdentifier stateTnlII = ItmUtils.buildStateTunnelListId(stateTnlKey); LOG.debug("updating tep interface state as {} for {}", operStatus.name(), interfaceName); StateTunnelListBuilder stateTnlBuilder = new StateTunnelListBuilder().withKey(stateTnlKey); stateTnlBuilder.setOperState(operStatus); - transaction.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, stateTnlII, stateTnlBuilder.build()); + tx.mergeParentStructureMerge(stateTnlII, stateTnlBuilder.build()); } private class RendererTunnelStateUpdateWorker implements Callable>> { diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelInventoryStateListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelInventoryStateListener.java index a701c2370..f6d5f0001 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelInventoryStateListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelInventoryStateListener.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.itmdirecttunnels.listeners; -import static org.opendaylight.genius.infra.Datastore.OPERATIONAL; +import static org.opendaylight.mdsal.binding.util.Datastore.OPERATIONAL; import com.google.common.util.concurrent.ListenableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -20,10 +20,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.Datastore.Operational; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.TunnelStateCache; @@ -43,6 +39,10 @@ import org.opendaylight.genius.itm.utils.TunnelStateInfoBuilder; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acquired; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore.Operational; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.serviceutils.tools.listener.AbstractClusteredSyncDataTreeChangeListener; @@ -299,7 +299,7 @@ public class TunnelInventoryStateListener extends @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "https://github.com/spotbugs/spotbugs/issues/811") - private List> updateState(String interfaceName, + private List> updateState(String interfaceName, FlowCapableNodeConnector flowCapableNodeConnectorNew, FlowCapableNodeConnector flowCapableNodeConnectorOld) { LOG.debug("Updating interface state for port: {}", interfaceName); @@ -401,13 +401,13 @@ public class TunnelInventoryStateListener extends @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "https://github.com/spotbugs/spotbugs/issues/811") - private List> removeInterfaceStateConfiguration(NodeConnectorId nodeConnectorId, - String interfaceName, - FlowCapableNodeConnector - flowCapableNodeConnector) { + private List> removeInterfaceStateConfiguration(NodeConnectorId nodeConnectorId, + String interfaceName, + FlowCapableNodeConnector + flowCapableNodeConnector) { - List> futures = new ArrayList<>(); + List> futures = new ArrayList<>(); Uint64 dpId = DirectTunnelUtils.getDpnFromNodeConnectorId(nodeConnectorId); // In a genuine port delete scenario, the reason will be there in the incoming event, for all remaining // cases treat the event as DPN disconnect, if old and new ports are same. Else, this is a VM migration @@ -462,7 +462,7 @@ public class TunnelInventoryStateListener extends } @Override - public List> call() { + public List> call() { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. return updateState(interfaceName, fcNodeConnectorNew, fcNodeConnectorOld); @@ -489,7 +489,7 @@ public class TunnelInventoryStateListener extends } @Override - public List> call() { + public List> call() { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. return removeInterfaceStateConfiguration(nodeConnectorId, interfaceName, flowCapableNodeConnector); @@ -510,7 +510,7 @@ public class TunnelInventoryStateListener extends } @Override - public List> call() throws Exception { + public List> call() throws Exception { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. EVENT_LOGGER.debug("ITM-TunnelInventoryState, Compute Re-connected, ADD received for {} ", tunnelName); @@ -526,8 +526,8 @@ public class TunnelInventoryStateListener extends @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "https://github.com/spotbugs/spotbugs/issues/811") - private List> handleInterfaceStateOnReconnect(String interfaceName) { - List> futures = new ArrayList<>(); + private List> handleInterfaceStateOnReconnect(String interfaceName) { + List> futures = new ArrayList<>(); futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL, tx -> { DpnTepInterfaceInfo dpnTepInfo = dpnTepStateCache.getTunnelFromCache(interfaceName); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelTopologyStateListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelTopologyStateListener.java index 08b8e50bf..a6767bc35 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelTopologyStateListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelTopologyStateListener.java @@ -16,15 +16,18 @@ import java.util.Optional; import java.util.concurrent.Callable; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.OvsBridgeEntryCache; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.Datastore.Operational; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.tools.listener.AbstractClusteredSyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel; @@ -134,81 +137,80 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh */ @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "https://github.com/spotbugs/spotbugs/issues/811") - private List> updateOvsBridgeRefEntry(InstanceIdentifier bridgeIid, - OvsdbBridgeAugmentation bridgeNew, - OvsdbBridgeAugmentation bridgeOld) { + private List> updateOvsBridgeRefEntry( + InstanceIdentifier bridgeIid, + OvsdbBridgeAugmentation bridgeNew, OvsdbBridgeAugmentation bridgeOld) { - return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> { - Uint64 dpnIdNew = directTunnelUtils.getDpnId(bridgeNew.getDatapathId()); - Uint64 dpnIdOld = directTunnelUtils.getDpnId(bridgeOld.getDatapathId()); + return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, + tx -> { + Uint64 dpnIdNew = directTunnelUtils.getDpnId(bridgeNew.getDatapathId()); + Uint64 dpnIdOld = directTunnelUtils.getDpnId(bridgeOld.getDatapathId()); - LOG.debug("updating bridge references for bridge: {}, dpnNew: {}, dpnOld: {}", bridgeNew, - dpnIdNew, dpnIdOld); - //delete bridge reference entry for the old dpn in interface meta operational DS - deleteOvsBridgeRefEntry(dpnIdOld, tx); + LOG.debug("updating bridge references for bridge: {}, dpnNew: {}, dpnOld: {}", bridgeNew, + dpnIdNew, dpnIdOld); + //delete bridge reference entry for the old dpn in interface meta operational DS + deleteOvsBridgeRefEntry(dpnIdOld, tx); - // create bridge reference entry in interface meta operational DS - createOvsBridgeRefEntry(dpnIdNew, bridgeIid, tx); + // create bridge reference entry in interface meta operational DS + createOvsBridgeRefEntry(dpnIdNew, bridgeIid, tx); - // handle pre-provisioning of tunnels for the newly connected dpn - Optional bridgeEntry = null; - bridgeEntry = ovsBridgeEntryCache.get(dpnIdNew); - if (bridgeEntry.isPresent()) { - addAllPortsToBridge(bridgeEntry.get(), bridgeIid, bridgeNew); - } - })); + // handle pre-provisioning of tunnels for the newly connected dpn + Optional bridgeEntry = null; + bridgeEntry = ovsBridgeEntryCache.get(dpnIdNew); + if (bridgeEntry.isPresent()) { + addAllPortsToBridge(bridgeEntry.get(), bridgeIid, bridgeNew); + } + })); } - public List> removePortFromBridge(InstanceIdentifier bridgeIid, - OvsdbBridgeAugmentation bridgeOld) { + public List> removePortFromBridge( + InstanceIdentifier bridgeIid, OvsdbBridgeAugmentation bridgeOld) { Uint64 dpnId = directTunnelUtils.getDpnId(bridgeOld.getDatapathId()); if (dpnId == null) { LOG.warn("Got Null DPID for Bridge: {}", bridgeOld); return Collections.emptyList(); } - return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> { + return List.of(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, tx -> { LOG.debug("removing bridge references for bridge: {}, dpn: {}", bridgeOld, dpnId); EVENT_LOGGER.debug("ITM-TunnelTopologyState, REMOVE {} completed", bridgeOld.getBridgeName().getValue()); //delete bridge reference entry in interface meta operational DS deleteOvsBridgeRefEntry(dpnId, tx); - + }), txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> { // the bridge reference is copied to dpn-tunnel interfaces map, so that whenever a northbound delete // happens when bridge is not connected, we need the bridge reference to clean up the topology config DS addBridgeRefToBridgeTunnelEntry(dpnId, new OvsdbBridgeRef(bridgeIid), tx); })); } - private void createOvsBridgeRefEntry(Uint64 dpnId, InstanceIdentifier bridgeIid, WriteTransaction tx) { - LOG.debug("Creating bridge ref entry for dpn: {} bridge: {}", - dpnId, bridgeIid); + private void createOvsBridgeRefEntry(Uint64 dpnId, InstanceIdentifier bridgeIid, + TypedWriteTransaction<@NonNull Operational> tx) { + LOG.debug("Creating bridge ref entry for dpn: {} bridge: {}", dpnId, bridgeIid); OvsBridgeRefEntryKey bridgeRefEntryKey = new OvsBridgeRefEntryKey(dpnId); InstanceIdentifier bridgeEntryId = DirectTunnelUtils.getOvsBridgeRefEntryIdentifier(bridgeRefEntryKey); OvsBridgeRefEntryBuilder tunnelDpnBridgeEntryBuilder = new OvsBridgeRefEntryBuilder().withKey(bridgeRefEntryKey).setDpid(dpnId) .setOvsBridgeReference(new OvsdbBridgeRef(bridgeIid)); - tx.mergeParentStructurePut(LogicalDatastoreType.OPERATIONAL, bridgeEntryId, - tunnelDpnBridgeEntryBuilder.build()); + tx.mergeParentStructurePut(bridgeEntryId, tunnelDpnBridgeEntryBuilder.build()); } - private void deleteOvsBridgeRefEntry(Uint64 dpnId, WriteTransaction tx) { - LOG.debug("Deleting bridge ref entry for dpn: {}", - dpnId); + private void deleteOvsBridgeRefEntry(Uint64 dpnId, TypedWriteTransaction<@NonNull Operational> tx) { + LOG.debug("Deleting bridge ref entry for dpn: {}", dpnId); OvsBridgeRefEntryKey bridgeRefEntryKey = new OvsBridgeRefEntryKey(dpnId); InstanceIdentifier bridgeEntryId = DirectTunnelUtils.getOvsBridgeRefEntryIdentifier(bridgeRefEntryKey); - tx.delete(LogicalDatastoreType.OPERATIONAL, bridgeEntryId); + tx.delete(bridgeEntryId); } - private void addBridgeRefToBridgeTunnelEntry(Uint64 dpId, OvsdbBridgeRef ovsdbBridgeRef, WriteTransaction tx) { + private void addBridgeRefToBridgeTunnelEntry(Uint64 dpId, OvsdbBridgeRef ovsdbBridgeRef, + TypedWriteTransaction<@NonNull Configuration> tx) { OvsBridgeEntryKey bridgeEntryKey = new OvsBridgeEntryKey(dpId); InstanceIdentifier bridgeEntryInstanceIdentifier = DirectTunnelUtils.getOvsBridgeEntryIdentifier(bridgeEntryKey); OvsBridgeEntryBuilder bridgeEntryBuilder = new OvsBridgeEntryBuilder().withKey(bridgeEntryKey) .setOvsBridgeReference(ovsdbBridgeRef); - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, bridgeEntryInstanceIdentifier, - bridgeEntryBuilder.build()); + tx.mergeParentStructureMerge(bridgeEntryInstanceIdentifier, bridgeEntryBuilder.build()); } /* @@ -251,7 +253,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh } @Override - public List> call() throws Exception { + public List> call() throws Exception { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. if (bridgeNew.getDatapathId() == null) { @@ -264,16 +266,17 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh EVENT_LOGGER.debug("TunnelTopologyState, ADD bridge {} for {}", bridgeNew.getBridgeName(), dpnId); // create bridge reference entry in interface meta operational DS - return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> { - createOvsBridgeRefEntry(dpnId, bridgeIid, tx); - // handle pre-provisioning of tunnels for the newly connected dpn - Optional bridgeEntry = ovsBridgeEntryCache.get(dpnId); - if (!bridgeEntry.isPresent()) { - LOG.debug("Bridge entry not found in config DS for dpn: {}", dpnId); - } else { - addAllPortsToBridge(bridgeEntry.get(), bridgeIid, bridgeNew); - } - })); + return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, + tx -> { + createOvsBridgeRefEntry(dpnId, bridgeIid, tx); + // handle pre-provisioning of tunnels for the newly connected dpn + Optional bridgeEntry = ovsBridgeEntryCache.get(dpnId); + if (!bridgeEntry.isPresent()) { + LOG.debug("Bridge entry not found in config DS for dpn: {}", dpnId); + } else { + addAllPortsToBridge(bridgeEntry.get(), bridgeIid, bridgeNew); + } + })); } } @@ -288,7 +291,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh } @Override - public List> call() throws Exception { + public List> call() throws Exception { // If another renderer needs to be supported, check can be performed here // to call the respective helpers. return removePortFromBridge(instanceIdentifier, bridgeNew); @@ -308,7 +311,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh } @Override - public List> call() throws Exception { + public List> call() throws Exception { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. return updateOvsBridgeRefEntry(instanceIdentifier, bridgeNew, bridgeOld); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/renderer/ovs/utilities/DirectTunnelUtils.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/renderer/ovs/utilities/DirectTunnelUtils.java index 85018bf2d..d879309a1 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/renderer/ovs/utilities/DirectTunnelUtils.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/renderer/ovs/utilities/DirectTunnelUtils.java @@ -24,9 +24,6 @@ import java.util.regex.Pattern; import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.interfacemanager.globals.IfmConstants; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ITMBatchingUtils; @@ -49,6 +46,9 @@ import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchTunnelSourceIp; import org.opendaylight.genius.utils.clustering.EntityOwnershipUtils; import org.opendaylight.infrautils.utils.concurrent.NamedLocks; import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acquired; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorker.java index 5807db58c..42210e065 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorker.java @@ -11,8 +11,6 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.genius.interfacemanager.globals.IfmConstants; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ITMBatchingUtils; @@ -20,6 +18,8 @@ import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.genius.itm.utils.DpnTepInterfaceInfo; import org.opendaylight.genius.itm.utils.TunnelStateInfo; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.IfIndexesTunnelMap; @@ -56,7 +56,7 @@ public final class TunnelStateAddWorker { this.txRunner = txRunner; } - public List> addState(TunnelStateInfo tunnelStateInfo) + public List> addState(TunnelStateInfo tunnelStateInfo) throws ExecutionException, InterruptedException, OperationFailedException { // When this method is invoked, all parameters necessary should be available diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorkerForNodeConnector.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorkerForNodeConnector.java index 3b1875cb0..2963639d4 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorkerForNodeConnector.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorkerForNodeConnector.java @@ -23,7 +23,7 @@ public class TunnelStateAddWorkerForNodeConnector implements Callable> call() throws Exception { + public List> call() throws Exception { // If another renderer(for eg : OVS) needs to be supported, check can be performed here // to call the respective helpers. return tunnelStateAddWorker.addState(tunnelStateInfo); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java index ec2e7c7f1..20cab60ba 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.genius.itm.listeners; import com.google.common.util.concurrent.FluentFuture; @@ -24,9 +23,6 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.genius.cloudscaler.api.TombstonedNodeManager; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.itm.cache.DpnTepStateCache; @@ -51,6 +47,9 @@ import org.opendaylight.genius.itm.recovery.impl.ItmServiceRecoveryHandler; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.srm.RecoverableListener; import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TunnelMonitorIntervalListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TunnelMonitorIntervalListener.java index 70cecb0d3..8ba821d78 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TunnelMonitorIntervalListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TunnelMonitorIntervalListener.java @@ -11,8 +11,6 @@ import java.util.Optional; import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.cache.OvsBridgeRefEntryCache; @@ -22,6 +20,8 @@ import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.tools.listener.AbstractSyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/monitoring/ItmTunnelEventListener.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/monitoring/ItmTunnelEventListener.java index 6f0573631..c2ae84877 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/monitoring/ItmTunnelEventListener.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/monitoring/ItmTunnelEventListener.java @@ -18,14 +18,14 @@ import javax.inject.Inject; import javax.inject.Singleton; import javax.management.JMException; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.cache.UnprocessedTunnelsStateCache; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.tools.listener.AbstractSyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelOperStatus; @@ -373,7 +373,7 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener> call() throws Exception { + public List> call() throws Exception { // Process any unprocessed interface bfd updates LOG.debug(" Tunnel events are processed out order for {} hence updating it from cache", add.getTunnelInterfaceName()); diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/EosChangeEventHandler.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/EosChangeEventHandler.java index c2c292928..3b727c433 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/EosChangeEventHandler.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/EosChangeEventHandler.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.recovery.impl; -import static org.opendaylight.genius.infra.Datastore.OPERATIONAL; +import static org.opendaylight.mdsal.binding.util.Datastore.OPERATIONAL; import java.util.ArrayList; import java.util.Collection; @@ -18,15 +18,15 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutionException; import javax.inject.Inject; import javax.inject.Singleton; -import org.opendaylight.genius.infra.Datastore.Operational; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.cache.TunnelStateCache; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.itm.itmdirecttunnels.renderer.ovs.utilities.DirectTunnelUtils; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.binding.util.Datastore.Operational; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelOperStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java index a967ffff2..fa07f4daf 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java @@ -19,8 +19,6 @@ import javax.inject.Singleton; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.genius.cloudscaler.api.TombstonedNodeManager; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.itm.cache.DpnTepStateCache; @@ -41,6 +39,8 @@ import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.genius.utils.clustering.EntityOwnershipUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.serviceutils.srm.ServiceRecoveryInterface; import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry; diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTzInstanceRecoveryHandler.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTzInstanceRecoveryHandler.java index fa35b1ad4..055ae961b 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTzInstanceRecoveryHandler.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTzInstanceRecoveryHandler.java @@ -7,6 +7,8 @@ */ package org.opendaylight.genius.itm.recovery.impl; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; + import java.time.Duration; import java.util.ArrayList; import java.util.Collection; @@ -18,8 +20,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.itm.cache.DpnTepStateCache; import org.opendaylight.genius.itm.globals.ITMConstants; @@ -27,6 +27,8 @@ import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.utils.clustering.EntityOwnershipUtils; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.serviceutils.srm.ServiceRecoveryInterface; @@ -125,8 +127,8 @@ public class ItmTzInstanceRecoveryHandler extends if (tz != null) { LOG.trace("deleting transportzone instance {}", entityId); jobCoordinator.enqueueJob(entityId, () -> Collections.singletonList( - txRunner.callWithNewWriteOnlyTransactionAndSubmit( - tx -> tx.delete(LogicalDatastoreType.CONFIGURATION, tzII))), ITMConstants.JOB_MAX_RETRIES); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.delete(tzII))), + ITMConstants.JOB_MAX_RETRIES); AtomicInteger eventCallbackCount = new AtomicInteger(0); if (!tunnelList.isEmpty()) { tunnelList.forEach(tunnelInterface -> { @@ -156,8 +158,7 @@ public class ItmTzInstanceRecoveryHandler extends if (registeredEvents.intValue() == sizeOfTunnelList || sizeOfTunnelList == 0) { LOG.trace("recreating transportzone instance {}", entityId); jobCoordinator.enqueueJob(entityId, () -> Collections.singletonList( - txRunner.callWithNewWriteOnlyTransactionAndSubmit( - tx -> tx.merge(LogicalDatastoreType.CONFIGURATION, tzII, tz))), + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.merge(tzII, tz))), ITMConstants.JOB_MAX_RETRIES); } } diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java index db71fa6a4..93a418558 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java @@ -7,7 +7,7 @@ */ package org.opendaylight.genius.itm.rpc; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import static org.opendaylight.serviceutils.tools.rpc.FutureRpcResults.fromListenableFuture; import static org.opendaylight.yangtools.yang.common.RpcResultBuilder.failed; @@ -33,12 +33,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; -import org.opendaylight.genius.infra.RetryingManagedNewTransactionRunner; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.interfacemanager.interfaces.InterfaceManagerService; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; @@ -62,6 +56,12 @@ import org.opendaylight.genius.mdsalutil.actions.ActionSetFieldTunnelId; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.genius.mdsalutil.matches.MatchTunnelId; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; +import org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.serviceutils.tools.rpc.FutureRpcResults; @@ -366,14 +366,14 @@ public class ItmManagerRpcService implements ItmRpcService { final Uint64 destDpnId = Uint64.valueOf(input.getDestinationNode()); LOG.debug("setBfdParamOnTunnel srcDpnId: {}, destDpnId: {}", srcDpnId, destDpnId); final SettableFuture> result = SettableFuture.create(); - FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { + FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { enableBFD(tx, srcDpnId, destDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval().toJava()); enableBFD(tx, destDpnId, srcDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval().toJava()); }); - future.addCallback(new FutureCallback() { + future.addCallback(new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -416,7 +416,7 @@ public class ItmManagerRpcService implements ItmRpcService { //Ignore the Futures for now final SettableFuture> result = SettableFuture.create(); Collection meshedDpnList = dpnTEPsInfoCache.getAllPresent(); - FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, + FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { ItmExternalTunnelDeleteWorker.deleteTunnels(meshedDpnList, input.getDestinationIp(), input.getTunnelType(), tx); @@ -425,8 +425,8 @@ public class ItmManagerRpcService implements ItmRpcService { tx.delete(extPath); } ); - future.addCallback(new FutureCallback() { - @Override public void onSuccess(Void voidInstance) { + future.addCallback(new FutureCallback() { + @Override public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -448,13 +448,13 @@ public class ItmManagerRpcService implements ItmRpcService { //Ignore the Futures for now final SettableFuture> result = SettableFuture.create(); List cfgDpnList = ItmUtils.getDpnTepListFromDpnId(dpnTEPsInfoCache, input.getDpnId()); - FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, + FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> ItmExternalTunnelDeleteWorker.deleteTunnels(cfgDpnList, input.getDestinationIp(), input.getTunnelType(), tx)); - future.addCallback(new FutureCallback() { + future.addCallback(new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -474,15 +474,14 @@ public class ItmManagerRpcService implements ItmRpcService { BuildExternalTunnelFromDpnsInput input) { //Ignore the Futures for now final SettableFuture> result = SettableFuture.create(); - FluentFuture extTunnelResultList = + FluentFuture extTunnelResultList = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> externalTunnelAddWorker.buildTunnelsFromDpnToExternalEndPoint(input.getDpnId(), input.getDestinationIp(),input.getTunnelType(), tx)); - extTunnelResultList.addCallback(new FutureCallback() { - + extTunnelResultList.addCallback(new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -511,15 +510,15 @@ public class ItmManagerRpcService implements ItmRpcService { new DcGatewayIpBuilder().setIpAddress(input.getDestinationIp()) .setTunnnelType(input.getTunnelType()).build(); - FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, + FluentFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { externalTunnelAddWorker.buildTunnelsToExternalEndPoint(meshedDpnList, input.getDestinationIp(), input.getTunnelType(), tx); tx.mergeParentStructurePut(extPath, dcGatewayIp); } ); - future.addCallback(new FutureCallback() { - @Override public void onSuccess(Void voidInstance) { + future.addCallback(new FutureCallback() { + @Override public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -577,12 +576,12 @@ public class ItmManagerRpcService implements ItmRpcService { Uint64.fromLongBits(ITMConstants.COOKIE_ITM.longValue() + serviceId.toJava()), mkMatches, input.getInstruction()); - ListenableFuture installFlowResult = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, + ListenableFuture installFlowResult = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> mdsalManager.addFlow(tx, input.getDpnId(), terminatingServiceTableFlow)); - Futures.addCallback(installFlowResult, new FutureCallback() { + Futures.addCallback(installFlowResult, new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -606,14 +605,14 @@ public class ItmManagerRpcService implements ItmRpcService { input.getDpnId(), input.getServiceId()); final SettableFuture> result = SettableFuture.create(); - ListenableFuture removeFlowResult = txRunner.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION, + ListenableFuture removeFlowResult = txRunner.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION, tx -> mdsalManager.removeFlow(tx, input.getDpnId(), getFlowRef(NwConstants.INTERNAL_TUNNEL_TABLE, input.getServiceId()), NwConstants.INTERNAL_TUNNEL_TABLE)); - Futures.addCallback(removeFlowResult, new FutureCallback() { + Futures.addCallback(removeFlowResult, new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -747,10 +746,10 @@ public class ItmManagerRpcService implements ItmRpcService { new TransportZoneKey(transportZone)) .child(DeviceVteps.class, deviceVtepKey) .build(); - FluentFuture future = + FluentFuture future = retryingTxRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.delete(path)); - future.addCallback(new FutureCallback() { - @Override public void onSuccess(Void voidInstance) { + future.addCallback(new FutureCallback() { + @Override public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -820,13 +819,13 @@ public class ItmManagerRpcService implements ItmRpcService { DeviceVteps deviceVtep = new DeviceVtepsBuilder().withKey(deviceVtepKey).setIpAddress(hwIp) .setNodeId(nodeId).setTopologyId(input.getTopologyId()).build(); //TO DO: add retry if it fails - FluentFuture future = retryingTxRunner + FluentFuture future = retryingTxRunner .callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.mergeParentStructurePut(path, deviceVtep)); - future.addCallback(new FutureCallback() { + future.addCallback(new FutureCallback() { - @Override public void onSuccess(Void voidInstance) { + @Override public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -899,7 +898,7 @@ public class ItmManagerRpcService implements ItmRpcService { .setIpAddress(hwIp) .setNodeId(nodeId.get(0)).setTopologyId(input.getTopologyId()).build(); LOG.trace("writing hWvtep{}", deviceVtep); - FluentFuture future = + FluentFuture future = retryingTxRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { tx.mergeParentStructurePut(path, deviceVtep); @@ -919,9 +918,9 @@ public class ItmManagerRpcService implements ItmRpcService { tx.mergeParentStructurePut(path2, deviceVtep2); } }); - future.addCallback(new FutureCallback() { + future.addCallback(new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } @@ -965,7 +964,7 @@ public class ItmManagerRpcService implements ItmRpcService { return result; } String transportZone = tzones.getTransportZone().get(0).getZoneName(); - FluentFuture future = + FluentFuture future = retryingTxRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { DeviceVtepsKey deviceVtepKey = new DeviceVtepsKey(hwIp, nodeId.get(0)); @@ -985,10 +984,10 @@ public class ItmManagerRpcService implements ItmRpcService { } ); - future.addCallback(new FutureCallback() { + future.addCallback(new FutureCallback() { @Override - public void onSuccess(Void voidInstance) { + public void onSuccess(Object voidInstance) { result.set(RpcResultBuilder.success().build()); } diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java index b54c62345..b2e7afcc8 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java @@ -23,9 +23,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; import org.opendaylight.genius.itm.cache.UnprocessedNodeConnectorEndPointCache; import org.opendaylight.genius.itm.confighelpers.HwVtep; @@ -39,6 +36,9 @@ import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelDeleteTest.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelDeleteTest.java index bb6f61899..aa318b754 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelDeleteTest.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelDeleteTest.java @@ -27,15 +27,15 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.itm.confighelpers.HwVtep; import org.opendaylight.genius.itm.confighelpers.ItmExternalTunnelDeleteWorker; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmManagerRpcServiceTest.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmManagerRpcServiceTest.java index 06981acab..17e5a5598 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmManagerRpcServiceTest.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmManagerRpcServiceTest.java @@ -22,7 +22,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.genius.interfacemanager.interfaces.InterfaceManagerService; import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache; @@ -42,6 +41,7 @@ import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmManagerRpcServiceTest.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmManagerRpcServiceTest.java index 6b348c2a7..2fac0cf52 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmManagerRpcServiceTest.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmManagerRpcServiceTest.java @@ -25,9 +25,6 @@ import org.junit.rules.MethodRule; import org.opendaylight.genius.datastoreutils.testutils.JobCoordinatorEventsWaiter; import org.opendaylight.genius.datastoreutils.testutils.JobCoordinatorTestModule; import org.opendaylight.genius.datastoreutils.testutils.TestableDataTreeChangeListenerModule; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; -import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.itm.rpc.ItmManagerRpcService; import org.opendaylight.genius.itm.tests.xtend.ExpectedDeviceVtepsObjects; @@ -37,6 +34,9 @@ import org.opendaylight.infrautils.caches.testutils.CacheModule; import org.opendaylight.infrautils.inject.guice.testutils.GuiceRule; import org.opendaylight.infrautils.testutils.LogRule; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; 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.genius.interfacemanager.rev160406.TunnelTypeMplsOverGre; diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java index e3e4e684d..0abc40c06 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java @@ -7,8 +7,8 @@ */ package org.opendaylight.genius.itm.tests; -import static org.opendaylight.genius.infra.Datastore.CONFIGURATION; import static org.opendaylight.mdsal.binding.testutils.AssertDataObjects.assertEqualBeans; +import static org.opendaylight.mdsal.binding.util.Datastore.CONFIGURATION; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.ListenableFuture; @@ -29,7 +29,6 @@ import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.genius.datastoreutils.testutils.JobCoordinatorEventsWaiter; import org.opendaylight.genius.datastoreutils.testutils.JobCoordinatorTestModule; import org.opendaylight.genius.datastoreutils.testutils.TestableDataTreeChangeListenerModule; -import org.opendaylight.genius.infra.RetryingManagedNewTransactionRunner; import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmProvider; import org.opendaylight.genius.itm.impl.ItmUtils; @@ -40,6 +39,7 @@ import org.opendaylight.infrautils.caches.testutils.CacheModule; import org.opendaylight.infrautils.inject.guice.testutils.GuiceRule; import org.opendaylight.infrautils.testutils.LogRule; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; @@ -118,8 +118,7 @@ public class ItmTepAutoConfigTest { // write into config DS - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.merge(LogicalDatastoreType.CONFIGURATION, - iid,itmConfigObj)); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.merge(iid, itmConfigObj)); coordinatorEventsWaiter.awaitEventsConsumption(); // read from config DS @@ -138,8 +137,7 @@ public class ItmTepAutoConfigTest { //txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, // tx -> tx.put(iid, itmConfigObj, true)); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.merge(LogicalDatastoreType.CONFIGURATION, - iid,itmConfigObj)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.merge(iid, itmConfigObj)).get(); coordinatorEventsWaiter.awaitEventsConsumption(); @@ -174,8 +172,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(TunnelTypeGre.class) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -215,8 +213,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(TunnelTypeVxlan.class) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -235,8 +233,8 @@ public class ItmTepAutoConfigTest { defTzTunnelType = ITMConstants.TUNNEL_TYPE_GRE; - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(TunnelTypeGre.class) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -267,8 +265,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(TunnelTypeGre.class) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -300,8 +298,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(TunnelTypeVxlan.class) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -314,7 +312,7 @@ public class ItmTepAutoConfigTest { IpPrefix subnetMaskObj = ItmUtils.getDummySubnet(); // add TEP into default-TZ - ListenableFuture futures = + ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.DEF_TZ_TEP_IP, ItmTestConstants.DEF_BR_DPID, ITMConstants.DEFAULT_TRANSPORT_ZONE, false, dataBroker, txRunner); @@ -350,15 +348,15 @@ public class ItmTepAutoConfigTest { // create TZA InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); // check TZ is created with correct TZ name Assert.assertEquals(ItmTestConstants.TZ_NAME, dataBroker.newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get().getZoneName()); // add tep - ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NB_TZ_TEP_IP, + ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NB_TZ_TEP_IP, ItmTestConstants.DEF_BR_DPID, ItmTestConstants.TZ_NAME, false, dataBroker, txRunner); futures.get(); @@ -403,8 +401,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(ItmTestConstants.TUNNEL_TYPE_VXLAN) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -461,8 +459,8 @@ public class ItmTepAutoConfigTest { // create Transport-zone in advance InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); // add bridge into node future = OvsdbTestUtil.addBridgeIntoNode(connInfo, ItmTestConstants.DEF_BR_NAME, @@ -551,8 +549,8 @@ public class ItmTepAutoConfigTest { InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ITMConstants.DEFAULT_TRANSPORT_ZONE); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, new TransportZoneBuilder().setZoneName(ITMConstants.DEFAULT_TRANSPORT_ZONE) .setTunnelType(ItmTestConstants.TUNNEL_TYPE_VXLAN) .withKey(new TransportZoneKey(ITMConstants.DEFAULT_TRANSPORT_ZONE)) @@ -639,8 +637,8 @@ public class ItmTepAutoConfigTest { // create Transport-zone TZA InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); // iid for TZA configured from NB InstanceIdentifier tzaTzonePath = ItmTepAutoConfigTestUtil.getTzIid( ItmTestConstants.TZ_NAME); @@ -677,8 +675,8 @@ public class ItmTepAutoConfigTest { // create Transport-zone in advance InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); // add bridge into node future = OvsdbTestUtil.addBridgeIntoNode(connInfo, ItmTestConstants.DEF_BR_NAME, @@ -739,7 +737,7 @@ public class ItmTepAutoConfigTest { @Test public void tepAddIntoTepsNotHostedListTest() throws Exception { // add into not hosted list - ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, + ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false, dataBroker, txRunner); future.get(); @@ -755,7 +753,7 @@ public class ItmTepAutoConfigTest { @Test public void tepDeleteFromTepsNotHostedListTest() throws Exception { // add into not hosted list - ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, + ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false, dataBroker, txRunner); future.get(); @@ -780,7 +778,7 @@ public class ItmTepAutoConfigTest { @Test public void tepMoveFromTepsNotHostedListToTzTest() throws Exception { // add into not hosted list - ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, + ListenableFuture future = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false, dataBroker, txRunner); future.get(); @@ -834,8 +832,8 @@ public class ItmTepAutoConfigTest { public void tzDeletedAndReaddedTest() throws Exception { // create TZ InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); InstanceIdentifier tzonePath = ItmTepAutoConfigTestUtil.getTzIid( ItmTestConstants.TZ_NAME); @@ -846,7 +844,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get().getZoneName()); // add tep - ListenableFuture futures = + ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NB_TZ_TEP_IP, ItmTestConstants.DEF_BR_DPID, ItmTestConstants.TZ_NAME, false, dataBroker, txRunner); futures.get(); @@ -863,8 +861,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get()); // remove Transport Zone - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.delete(LogicalDatastoreType.CONFIGURATION, - tzPath)); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.delete(tzPath)); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction @@ -882,8 +879,8 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).get().get().getZoneName()); //readd the same tz - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction coordinatorEventsWaiter.awaitEventsConsumption(); @@ -901,8 +898,8 @@ public class ItmTepAutoConfigTest { public void tzDeletedAndReaddedWithSameVtepsTest() throws Exception { // create TZ InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); coordinatorEventsWaiter.awaitEventsConsumption(); @@ -915,7 +912,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get().getZoneName()); // add tep - ListenableFuture futures = + ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NB_TZ_TEP_IP, ItmTestConstants.DEF_BR_DPID, ItmTestConstants.TZ_NAME, false, dataBroker, txRunner); futures.get(); @@ -933,8 +930,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get()); // remove Transport Zone - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.delete(LogicalDatastoreType.CONFIGURATION, - tzPath)); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.delete(tzPath)); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction @@ -968,8 +964,8 @@ public class ItmTepAutoConfigTest { .setTunnelType(ItmTestConstants.TUNNEL_TYPE_VXLAN).setVteps(vtepsList) .withKey(new TransportZoneKey(ItmTestConstants.TZ_NAME)).build(); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, recreatedTransportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, recreatedTransportZone)).get(); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction @@ -989,8 +985,8 @@ public class ItmTepAutoConfigTest { public void tzReaddWithSameVtepsAndDiffDpnIDTest() throws Exception { // create TZ InstanceIdentifier tzPath = ItmUtils.getTZInstanceIdentifier(ItmTestConstants.TZ_NAME); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, transportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, transportZone)).get(); InstanceIdentifier tzonePath = ItmTepAutoConfigTestUtil.getTzIid( ItmTestConstants.TZ_NAME); @@ -1001,7 +997,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get().getZoneName()); // add tep - ListenableFuture futures = + ListenableFuture futures = ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NB_TZ_TEP_IP, ItmTestConstants.DEF_BR_DPID, ItmTestConstants.TZ_NAME, false, dataBroker, txRunner); futures.get(); @@ -1018,8 +1014,7 @@ public class ItmTepAutoConfigTest { .read(LogicalDatastoreType.CONFIGURATION, tzonePath).get().get()); // remove Transport Zone - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.delete(LogicalDatastoreType.CONFIGURATION, - tzPath)); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> tx.delete(tzPath)); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction @@ -1053,8 +1048,8 @@ public class ItmTepAutoConfigTest { .setTunnelType(ItmTestConstants.TUNNEL_TYPE_VXLAN).setVteps(vtepsList) .withKey(new TransportZoneKey(ItmTestConstants.TZ_NAME)).build(); - txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> - tx.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, tzPath, recreatedTransportZone)).get(); + txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> + tx.mergeParentStructureMerge(tzPath, recreatedTransportZone)).get(); // wait for TransportZoneListener to perform config DS update // for TEP movement through transaction diff --git a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java index 6368dd90f..ed8856617 100644 --- a/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java +++ b/itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java @@ -10,11 +10,11 @@ package org.opendaylight.genius.itm.tests; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.ListenableFuture; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.genius.itm.confighelpers.OvsdbTepAddConfigHelper; import org.opendaylight.genius.itm.confighelpers.OvsdbTepRemoveConfigHelper; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; @@ -36,14 +36,14 @@ public final class ItmTepAutoConfigTestUtil { } /* transaction methods */ - public static ListenableFuture addTep(String tepIp, String strDpnId, String tzName, boolean ofTunnel, + public static ListenableFuture addTep(String tepIp, String strDpnId, String tzName, boolean ofTunnel, DataBroker dataBroker, ManagedNewTransactionRunner tx) throws Exception { return OvsdbTepAddConfigHelper.addTepReceivedFromOvsdb(tepIp, strDpnId, tzName, ofTunnel, dataBroker, tx).get(0); } - public static ListenableFuture deleteTep(String tepIp, String strDpnId, String tzName, + public static ListenableFuture deleteTep(String tepIp, String strDpnId, String tzName, DataBroker dataBroker, ManagedNewTransactionRunner tx) { return OvsdbTepRemoveConfigHelper.removeTepReceivedFromOvsdb(tepIp, strDpnId, tzName, dataBroker, tx).get(0); } diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/interfaces/IMdsalApiManager.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/interfaces/IMdsalApiManager.java index 3a6c60435..37502e5ca 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/interfaces/IMdsalApiManager.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/interfaces/IMdsalApiManager.java @@ -10,11 +10,11 @@ package org.opendaylight.genius.mdsalutil.interfaces; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.ExecutionException; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.mdsalutil.FlowEntity; import org.opendaylight.genius.mdsalutil.GroupEntity; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey; @@ -32,7 +32,7 @@ public interface IMdsalApiManager { * @return */ @Deprecated - FluentFuture installFlow(FlowEntity flowEntity); + FluentFuture installFlow(FlowEntity flowEntity); /** * Adds a flow. @@ -43,7 +43,7 @@ public interface IMdsalApiManager { * @return */ @Deprecated - FluentFuture installFlow(Uint64 dpId, Flow flowEntity); + FluentFuture installFlow(Uint64 dpId, Flow flowEntity); /** * Adds a flow. @@ -54,7 +54,7 @@ public interface IMdsalApiManager { * @return */ @Deprecated - FluentFuture installFlow(Uint64 dpId, FlowEntity flowEntity); + FluentFuture installFlow(Uint64 dpId, FlowEntity flowEntity); /** * Adds the given flow. @@ -83,7 +83,7 @@ public interface IMdsalApiManager { * @return */ @Deprecated - ListenableFuture removeFlow(Uint64 dpId, short tableId, FlowId flowId); + ListenableFuture removeFlow(Uint64 dpId, short tableId, FlowId flowId); /** * Removes a flow. @@ -93,7 +93,7 @@ public interface IMdsalApiManager { * @return */ @Deprecated - FluentFuture removeFlow(FlowEntity flowEntity); + FluentFuture removeFlow(FlowEntity flowEntity); /** * Removes a flow. @@ -101,7 +101,7 @@ public interface IMdsalApiManager { * @deprecated Use {@link #removeFlow(TypedReadWriteTransaction, Uint64, Flow)}. */ @Deprecated - FluentFuture removeFlow(Uint64 dpId, Flow flowEntity); + FluentFuture removeFlow(Uint64 dpId, Flow flowEntity); /** * Removes the given flow. diff --git a/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/TestIMdsalApiManager.java b/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/TestIMdsalApiManager.java index 5533ccb85..9cac95ed8 100644 --- a/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/TestIMdsalApiManager.java +++ b/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/TestIMdsalApiManager.java @@ -27,12 +27,12 @@ import java.util.Map; import java.util.Objects; import org.junit.ComparisonFailure; import org.mockito.Mockito; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.mdsalutil.FlowEntity; import org.opendaylight.genius.mdsalutil.GroupEntity; import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket; diff --git a/mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java b/mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java index 1f93bb069..3b972ea83 100644 --- a/mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java +++ b/mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.genius.mdsalutil.internal; import static org.opendaylight.infrautils.utils.concurrent.Executors.newListeningSingleThreadExecutor; @@ -26,12 +25,6 @@ import java.util.concurrent.ExecutorService; import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.RetryingManagedNewTransactionRunner; -import org.opendaylight.genius.infra.TypedReadTransaction; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; import org.opendaylight.genius.mdsalutil.FlowEntity; import org.opendaylight.genius.mdsalutil.FlowInfoKey; import org.opendaylight.genius.mdsalutil.GroupEntity; @@ -43,7 +36,12 @@ import org.opendaylight.infrautils.utils.concurrent.Executors; import org.opendaylight.infrautils.utils.concurrent.NamedLocks; import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acquired; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner; +import org.opendaylight.mdsal.binding.util.TypedReadTransaction; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.OptimisticLockFailedException; import org.opendaylight.serviceutils.tools.listener.AbstractClusteredAsyncDataTreeChangeListener; @@ -192,13 +190,13 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @VisibleForTesting - FluentFuture installFlowInternal(FlowEntity flowEntity) { + FluentFuture installFlowInternal(FlowEntity flowEntity) { return addCallBackForInstallFlowAndReturn(txRunner .callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> writeFlowEntityInternal(flowEntity, tx))); } - private FluentFuture installFlowInternal(Uint64 dpId, Flow flow) { + private FluentFuture installFlowInternal(Uint64 dpId, Flow flow) { return txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> writeFlowInternal(dpId, flow, tx)); } @@ -221,7 +219,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @VisibleForTesting - FluentFuture installGroupInternal(GroupEntity groupEntity) { + FluentFuture installGroupInternal(GroupEntity groupEntity) { return addCallBackForInstallGroupAndReturn(txRunner .callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> writeGroupEntityInternal(groupEntity, tx))); @@ -236,7 +234,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @VisibleForTesting - FluentFuture removeFlowInternal(FlowEntity flowEntity) { + FluentFuture removeFlowInternal(FlowEntity flowEntity) { return addCallBackForDeleteFlowAndReturn(txRunner .callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> deleteFlowEntityInternal(flowEntity, tx))); @@ -249,15 +247,6 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager deleteFlow(dpId, tableId, flowKey, tx); } - private void deleteFlow(Uint64 dpId, short tableId, FlowKey flowKey, WriteTransaction tx) { - if (flowExists(dpId, tableId, flowKey)) { - InstanceIdentifier flowInstanceId = buildFlowInstanceIdentifier(dpId, tableId, flowKey); - tx.delete(LogicalDatastoreType.CONFIGURATION, flowInstanceId); - } else { - LOG.debug("Flow {} does not exist for dpn {}", flowKey, dpId); - } - } - private void deleteFlow(Uint64 dpId, short tableId, FlowKey flowKey, TypedWriteTransaction tx) { if (flowExists(dpId, tableId, flowKey)) { @@ -268,7 +257,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } } - private FluentFuture removeFlowNewInternal(Uint64 dpnId, Flow flowEntity) { + private FluentFuture removeFlowNewInternal(Uint64 dpnId, Flow flowEntity) { LOG.debug("Remove flow {}", flowEntity); return txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> { @@ -279,7 +268,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @VisibleForTesting - FluentFuture removeGroupInternal(Uint64 dpnId, long groupId) { + FluentFuture removeGroupInternal(Uint64 dpnId, long groupId) { return addCallBackForInstallGroupAndReturn(txRunner .callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> removeGroupInternal(dpnId, groupId, tx))); @@ -457,28 +446,28 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @Override - public FluentFuture installFlow(FlowEntity flowEntity) { + public FluentFuture installFlow(FlowEntity flowEntity) { return installFlowInternal(flowEntity); } @Override - public FluentFuture installFlow(Uint64 dpId, Flow flowEntity) { + public FluentFuture installFlow(Uint64 dpId, Flow flowEntity) { return installFlowInternal(dpId, flowEntity); } @Override - public FluentFuture installFlow(Uint64 dpId, FlowEntity flowEntity) { + public FluentFuture installFlow(Uint64 dpId, FlowEntity flowEntity) { return installFlowInternal(dpId, flowEntity.getFlowBuilder().build()); } @Override - public ListenableFuture removeFlow(Uint64 dpId, short tableId, FlowId flowId) { - ListenableFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit( + public ListenableFuture removeFlow(Uint64 dpId, short tableId, FlowId flowId) { + ListenableFuture future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION, tx -> deleteFlow(dpId, tableId, new FlowKey(flowId), tx)); - Futures.addCallback(future, new FutureCallback() { + Futures.addCallback(future, new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final Object result) { // Committed successfully LOG.debug("Delete Flow -- Committed successfully"); } @@ -502,12 +491,12 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager } @Override - public FluentFuture removeFlow(Uint64 dpId, Flow flowEntity) { + public FluentFuture removeFlow(Uint64 dpId, Flow flowEntity) { return removeFlowNewInternal(dpId, flowEntity); } @Override - public FluentFuture removeFlow(FlowEntity flowEntity) { + public FluentFuture removeFlow(FlowEntity flowEntity) { return removeFlowInternal(flowEntity); } @@ -702,23 +691,23 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager return bucketInstanceId; } - private static FluentFuture addCallBackForDeleteFlowAndReturn(FluentFuture fluentFuture) { + private static FluentFuture addCallBackForDeleteFlowAndReturn(FluentFuture fluentFuture) { return callBack(fluentFuture, "Delete Flow"); } - private static FluentFuture addCallBackForInstallFlowAndReturn(FluentFuture fluentFuture) { + private static FluentFuture addCallBackForInstallFlowAndReturn(FluentFuture fluentFuture) { return callBack(fluentFuture, "Install Flow"); } - private static FluentFuture addCallBackForInstallGroupAndReturn(FluentFuture fluentFuture) { + private static FluentFuture addCallBackForInstallGroupAndReturn(FluentFuture fluentFuture) { return callBack(fluentFuture, "Install Group"); } // Generic for handling callbacks - private static FluentFuture callBack(FluentFuture fluentFuture, String log) { - fluentFuture.addCallback(new FutureCallback() { + private static FluentFuture callBack(FluentFuture fluentFuture, String log) { + fluentFuture.addCallback(new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final Object result) { // Committed successfully LOG.debug("{} -- Committedsuccessfully ", log); } diff --git a/mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/datastoreutils/listeners/tests/DataTreeEventCallbackRegistrarTest.java b/mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/datastoreutils/listeners/tests/DataTreeEventCallbackRegistrarTest.java index 71949af4b..540501d6a 100644 --- a/mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/datastoreutils/listeners/tests/DataTreeEventCallbackRegistrarTest.java +++ b/mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/datastoreutils/listeners/tests/DataTreeEventCallbackRegistrarTest.java @@ -44,13 +44,14 @@ import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar; import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar.NextAction; import org.opendaylight.genius.datastoreutils.listeners.internal.DataTreeEventCallbackRegistrarImpl; -import org.opendaylight.genius.infra.RetryingManagedNewTransactionRunner; import org.opendaylight.infrautils.testutils.LogCaptureRule; import org.opendaylight.infrautils.testutils.LogRule; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelList; import org.opendaylight.yangtools.concepts.ListenerRegistration; @@ -301,8 +302,8 @@ public class DataTreeEventCallbackRegistrarTest { ArgumentCaptor timerTask = ArgumentCaptor.forClass(Runnable.class); verify(mockScheduler).schedule(timerTask.capture(), eq(timeout.toMillis()), eq(TimeUnit.MILLISECONDS)); - new RetryingManagedNewTransactionRunner(db, 1).callWithNewWriteOnlyTransactionAndSubmit( - tx -> tx.mergeParentStructurePut(OPERATIONAL, FOO_PATH, FOO_DATA)); + new RetryingManagedNewTransactionRunner(db, 1).callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, + tx -> tx.mergeParentStructurePut(FOO_PATH, FOO_DATA)); // Wait for the change notification callback to be invoked. @@ -382,8 +383,8 @@ public class DataTreeEventCallbackRegistrarTest { return null; }).when(mockListener).onDataTreeChanged(anyCollection()); - new RetryingManagedNewTransactionRunner(db, 1).callWithNewWriteOnlyTransactionAndSubmit( - tx -> tx.mergeParentStructurePut(OPERATIONAL, FOO_PATH, FOO_DATA)); + new RetryingManagedNewTransactionRunner(db, 1).callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL, + tx -> tx.mergeParentStructurePut(FOO_PATH, FOO_DATA)); await().untilTrue(onDataTreeChangeDone); assertThat(updated.get()).isFalse();