From e5c08ff8b15244767800a7f9bcd1196c67c15d4b Mon Sep 17 00:00:00 2001 From: Stephen Kitt Date: Tue, 3 Jul 2018 11:05:56 +0200 Subject: [PATCH] Enforce datastore-contrained transactions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This ensures that new uses of non-datastore-contrained transactions (using the transaction manager) can’t be introduced. The remaining uses in fibmanager and vpnmanager are marked explicitly. Change-Id: I81aa5fe8ae6d3756a4dc11c0c1a0e61c09dc9650 Signed-off-by: Stephen Kitt --- .../src/main/resources/databroker-checks.xml | 10 +++++++++- .../netvirt/fibmanager/BaseVrfEntryHandler.java | 6 ++++++ .../netvirt/fibmanager/BgpRouteVrfEntryHandler.java | 4 ++++ .../netvirt/fibmanager/EvpnVrfEntryHandler.java | 8 ++++++++ .../netvirt/fibmanager/VrfEntryListener.java | 2 ++ .../netvirt/vpnmanager/VpnFootprintService.java | 8 ++++++++ .../netvirt/vpnmanager/VpnInterfaceOpListener.java | 4 ++++ .../netvirt/vpnmanager/VpnManagerImpl.java | 5 ++++- 8 files changed, 45 insertions(+), 2 deletions(-) diff --git a/commons/checkstyle/src/main/resources/databroker-checks.xml b/commons/checkstyle/src/main/resources/databroker-checks.xml index b1180f584b..9198681776 100644 --- a/commons/checkstyle/src/main/resources/databroker-checks.xml +++ b/commons/checkstyle/src/main/resources/databroker-checks.xml @@ -21,5 +21,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL + + + + + + + + - + \ No newline at end of file diff --git a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BaseVrfEntryHandler.java b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BaseVrfEntryHandler.java index bf727faca0..83e88cb3b4 100644 --- a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BaseVrfEntryHandler.java +++ b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BaseVrfEntryHandler.java @@ -236,6 +236,8 @@ public class BaseVrfEntryHandler implements AutoCloseable { return adjacencyList; } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") protected void makeConnectedRoute(Uint64 dpId, Uint32 vpnId, VrfEntry vrfEntry, String rd, @Nullable List instructions, int addOrRemove, WriteTransaction tx, @Nullable List subTxns) { @@ -431,6 +433,8 @@ public class BaseVrfEntryHandler implements AutoCloseable { return res; } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void programRemoteFib(final Uint64 remoteDpnId, final Uint32 vpnId, final VrfEntry vrfEntry, WriteTransaction tx, String rd, List adjacencyResults, @@ -502,6 +506,8 @@ public class BaseVrfEntryHandler implements AutoCloseable { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void deleteRemoteRoute(@Nullable final Uint64 localDpnId, final Uint64 remoteDpnId, final Uint32 vpnId, final VrfTablesKey vrfTableKey, final VrfEntry vrfEntry, Optional extraRouteOptional, diff --git a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BgpRouteVrfEntryHandler.java b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BgpRouteVrfEntryHandler.java index 5a45eb526b..1747f1fdab 100644 --- a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BgpRouteVrfEntryHandler.java +++ b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BgpRouteVrfEntryHandler.java @@ -290,6 +290,8 @@ public class BgpRouteVrfEntryHandler extends BaseVrfEntryHandler implements Reso vrfEntry.getDestPrefix(), vpnId, remoteDpnId); } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void createRemoteFibEntry(final Uint64 remoteDpnId, final Uint32 vpnId, final String rd, @@ -329,6 +331,8 @@ public class BgpRouteVrfEntryHandler extends BaseVrfEntryHandler implements Reso } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void deleteRemoteRoute(@Nullable final Uint64 localDpnId, final Uint64 remoteDpnId, final Uint32 vpnId, final VrfTablesKey vrfTableKey, final VrfEntry vrfEntry, Optional extraRouteOptional, diff --git a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/EvpnVrfEntryHandler.java b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/EvpnVrfEntryHandler.java index f5b67c4001..766c682d9c 100644 --- a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/EvpnVrfEntryHandler.java +++ b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/EvpnVrfEntryHandler.java @@ -163,6 +163,8 @@ public class EvpnVrfEntryHandler extends BaseVrfEntryHandler { return returnLocalDpnId; } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private Uint64 checkCreateLocalEvpnFlows(Prefixes localNextHopInfo, String localNextHopIP, final Uint32 vpnId, final String rd, final VrfEntry vrfEntry) { @@ -184,6 +186,8 @@ public class EvpnVrfEntryHandler extends BaseVrfEntryHandler { return dpnId; } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void createRemoteEvpnFlows(String rd, VrfEntry vrfEntry, VpnInstanceOpDataEntry vpnInstance, List localDpnId, VrfTablesKey vrfTableKey, boolean isNatPrefix) { LOG.info("Creating remote EVPN flows for prefix {} rd {} route-paths {} evi {}", @@ -274,6 +278,8 @@ public class EvpnVrfEntryHandler extends BaseVrfEntryHandler { LOG.debug("Successfully added FIB entry for prefix {} in rd {}", vrfEntry.getDestPrefix(), rd); } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void deleteRemoteEvpnFlows(String rd, VrfEntry vrfEntry, VpnInstanceOpDataEntry vpnInstance, VrfTablesKey vrfTableKey, List localDpnIdList) { List vpnToDpnList = vpnInstance.getVpnToDpnList(); @@ -321,6 +327,8 @@ public class EvpnVrfEntryHandler extends BaseVrfEntryHandler { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private List checkDeleteLocalEvpnFLows(Uint32 vpnId, String rd, VrfEntry vrfEntry, VpnNexthop localNextHopInfo) { List returnLocalDpnId = new ArrayList<>(); diff --git a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/VrfEntryListener.java b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/VrfEntryListener.java index 7d6896e3a6..cc4fb46b05 100644 --- a/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/VrfEntryListener.java +++ b/fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/VrfEntryListener.java @@ -1222,6 +1222,8 @@ public class VrfEntryListener extends AsyncDataTreeChangeListenerBase vpnExtraRoutes) { // create loadbalancing groups for extra routes only when the extra route is diff --git a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnFootprintService.java b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnFootprintService.java index 4ed201d85e..e9452abbc3 100644 --- a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnFootprintService.java +++ b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnFootprintService.java @@ -125,6 +125,8 @@ public class VpnFootprintService implements IVpnFootprintService { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void createOrUpdateVpnToDpnListForInterfaceName(Uint32 vpnId, String primaryRd, Uint64 dpnId, String intfName, String vpnName) { AtomicBoolean newDpnOnVpn = new AtomicBoolean(false); @@ -196,6 +198,8 @@ public class VpnFootprintService implements IVpnFootprintService { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void createOrUpdateVpnToDpnListForIPAddress(Uint32 vpnId, String primaryRd, Uint64 dpnId, ImmutablePair ipAddressSourceValuePair, String vpnName) { AtomicBoolean newDpnOnVpn = new AtomicBoolean(false); @@ -256,6 +260,8 @@ public class VpnFootprintService implements IVpnFootprintService { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void removeOrUpdateVpnToDpnListForInterfaceName(Uint32 vpnId, String rd, Uint64 dpnId, String intfName, String vpnName) { AtomicBoolean lastDpnOnVpn = new AtomicBoolean(false); @@ -331,6 +337,8 @@ public class VpnFootprintService implements IVpnFootprintService { } } + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") private void removeOrUpdateVpnToDpnListForIpAddress(Uint32 vpnId, String rd, Uint64 dpnId, ImmutablePair ipAddressSourceValuePair, String vpnName) { AtomicBoolean lastDpnOnVpn = new AtomicBoolean(false); diff --git a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceOpListener.java b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceOpListener.java index 1762f17457..05b70943fd 100644 --- a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceOpListener.java +++ b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceOpListener.java @@ -88,6 +88,8 @@ public class VpnInterfaceOpListener extends AsyncDataTreeChangeListenerBase identifier, final VpnInterfaceOpDataEntry del) { final VpnInterfaceOpDataEntryKey key = identifier.firstKeyOf(VpnInterfaceOpDataEntry.class); @@ -100,6 +102,8 @@ public class VpnInterfaceOpListener extends AsyncDataTreeChangeListenerBase identifier, VpnInterfaceOpDataEntry del, ReadWriteTransaction readWriteTxn) { if (readWriteTxn == null) { diff --git a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java index 234997f15a..920547f7f0 100644 --- a/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java +++ b/vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java @@ -9,7 +9,6 @@ package org.opendaylight.netvirt.vpnmanager; import com.google.common.base.Optional; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -681,6 +680,8 @@ public class VpnManagerImpl implements IVpnManager { } @Override + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void updateRouteTargetsToSubnetAssociation(Set routeTargets, String cidr, String vpnName) { ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(tx -> { for (VpnTarget rt : routeTargets) { @@ -712,6 +713,8 @@ public class VpnManagerImpl implements IVpnManager { } @Override + // Allow deprecated TransactionRunner calls for now + @SuppressWarnings("ForbidCertainMethod") public void removeRouteTargetsToSubnetAssociation(Set routeTargets, String cidr, String vpnName) { ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(tx -> { for (VpnTarget rt : routeTargets) { -- 2.36.6