Enforce datastore-contrained transactions 86/73686/10
authorStephen Kitt <skitt@redhat.com>
Tue, 3 Jul 2018 09:05:56 +0000 (11:05 +0200)
committerStephen Kitt <skitt@redhat.com>
Wed, 11 Dec 2019 10:44:30 +0000 (11:44 +0100)
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 <skitt@redhat.com>
commons/checkstyle/src/main/resources/databroker-checks.xml
fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BaseVrfEntryHandler.java
fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/BgpRouteVrfEntryHandler.java
fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/EvpnVrfEntryHandler.java
fibmanager/impl/src/main/java/org/opendaylight/netvirt/fibmanager/VrfEntryListener.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnFootprintService.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceOpListener.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java

index b1180f584b5305abd25c07c2ee4140bb88ae7078..91986817761597f1cd2934fb6a6359598e414408 100644 (file)
@@ -21,5 +21,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
         <module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainMethodCheck">
             <property name="methodName" value="newReadWriteTransaction" />
         </module>
+        <module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainMethodCheck">
+            <property name="methodName" value="callWithNewWriteOnlyTransactionAndSubmit" />
+            <property name="argumentCount" value="1"/>
+        </module>
+        <module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainMethodCheck">
+            <property name="methodName" value="callWithNewReadWriteTransactionAndSubmit" />
+            <property name="argumentCount" value="1"/>
+        </module>
     </module>
-</module>
+</module>
\ No newline at end of file
index bf727faca08f22bd657110bb3fadf75899443219..83e88cb3b49fd8ca81fd99db5cd55ad3600900cd 100644 (file)
@@ -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<InstructionInfo> instructions, int addOrRemove,
                                       WriteTransaction tx, @Nullable List<SubTransaction> 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<AdjacencyResult> 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<Routes> extraRouteOptional,
index 5a45eb526b4bc7d7a703df131063cd66350d6eb4..1747f1fdabcd9f83f2c16ca1740bd69fcfd40a47 100644 (file)
@@ -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<Routes> extraRouteOptional,
index f5b67c4001da84d4b25fd17b527829406b81629c..766c682d9cf4d3942cc789819a109cdbe1a3d82b 100644 (file)
@@ -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<Uint64> 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<Uint64> localDpnIdList) {
         List<VpnToDpnList> vpnToDpnList = vpnInstance.getVpnToDpnList();
@@ -321,6 +327,8 @@ public class EvpnVrfEntryHandler extends BaseVrfEntryHandler {
         }
     }
 
+    // Allow deprecated TransactionRunner calls for now
+    @SuppressWarnings("ForbidCertainMethod")
     private List<Uint64> checkDeleteLocalEvpnFLows(Uint32 vpnId, String rd, VrfEntry vrfEntry,
                                                        VpnNexthop localNextHopInfo) {
         List<Uint64> returnLocalDpnId = new ArrayList<>();
index 7d6896e3a6b4ed16c5c3c768c3967a15255354fe..cc4fb46b050ff5107e90e718142fb76d0e99eced 100644 (file)
@@ -1222,6 +1222,8 @@ public class VrfEntryListener extends AsyncDataTreeChangeListenerBase<VrfEntry,
         }
     }
 
+    // Allow deprecated TransactionRunner calls for now
+    @SuppressWarnings("ForbidCertainMethod")
     private void programRemoteFibWithLoadBalancingGroups(final Uint64 remoteDpnId, final Uint32 vpnId, String rd,
             final VrfEntry vrfEntry, List<Routes> vpnExtraRoutes) {
         // create loadbalancing groups for extra routes only when the extra route is
index 4ed201d85e405f5d7ec26cf4d3aa217e76e48784..e9452abbc3a0b270f3bf4ac95ac9caab69f515d2 100644 (file)
@@ -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<IpAddresses.IpAddressSource, String> 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<IpAddresses.IpAddressSource, String> ipAddressSourceValuePair, String vpnName) {
         AtomicBoolean lastDpnOnVpn = new AtomicBoolean(false);
index 1762f17457ad90912ff19f7001732d37164c7755..05b70943fd1bc1d4cae0e077ddfefd89606558a5 100644 (file)
@@ -88,6 +88,8 @@ public class VpnInterfaceOpListener extends AsyncDataTreeChangeListenerBase<VpnI
 
 
     @Override
+    // Allow deprecated TransactionRunner calls for now
+    @SuppressWarnings("ForbidCertainMethod")
     protected void remove(final InstanceIdentifier<VpnInterfaceOpDataEntry> identifier,
             final VpnInterfaceOpDataEntry del) {
         final VpnInterfaceOpDataEntryKey key = identifier.firstKeyOf(VpnInterfaceOpDataEntry.class);
@@ -100,6 +102,8 @@ public class VpnInterfaceOpListener extends AsyncDataTreeChangeListenerBase<VpnI
             })));
     }
 
+    // Allow deprecated TransactionRunner calls for now
+    @SuppressWarnings("ForbidCertainMethod")
     private void postProcessVpnInterfaceRemoval(InstanceIdentifier<VpnInterfaceOpDataEntry> identifier,
             VpnInterfaceOpDataEntry del, ReadWriteTransaction readWriteTxn) {
         if (readWriteTxn == null) {
index 234997f15a2b13f85233ecddf5ac1fddb3590387..920547f7f0dc9ab5d5c95d5d150f586577f62c09 100644 (file)
@@ -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<VpnTarget> 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<VpnTarget> routeTargets, String cidr, String vpnName) {
         ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(tx -> {
             for (VpnTarget rt : routeTargets) {