Remove GENIUS UTIL references in NatService/Qos Modules
[netvirt.git] / natservice / impl / src / main / java / org / opendaylight / netvirt / natservice / internal / FlatVlanConntrackBasedSnatService.java
index a9237f781909e6f7035359e4922a7bbaf1d6db42..597417a43bc3c22b521f7d9a9970ed14a81b9f55 100644 (file)
@@ -7,15 +7,22 @@
  */
 package org.opendaylight.netvirt.natservice.internal;
 
-import java.math.BigInteger;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import java.util.concurrent.ExecutionException;
+import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar;
+import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
 import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.util.Datastore.Configuration;
+import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction;
+import org.opendaylight.netvirt.fibmanager.api.IFibManager;
+import org.opendaylight.netvirt.natservice.ha.NatDataUtil;
+import org.opendaylight.netvirt.vpnmanager.api.IVpnFootprintService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ext.routers.Routers;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -24,28 +31,47 @@ public class FlatVlanConntrackBasedSnatService extends ConntrackBasedSnatService
     private static final Logger LOG = LoggerFactory.getLogger(FlatVlanConntrackBasedSnatService.class);
 
     public FlatVlanConntrackBasedSnatService(DataBroker dataBroker, IMdsalApiManager mdsalManager,
-            ItmRpcService itmManager, OdlInterfaceRpcService interfaceManager, IdManagerService idManager,
-            NAPTSwitchSelector naptSwitchSelector) {
-        super(dataBroker, mdsalManager, itmManager, interfaceManager, idManager, naptSwitchSelector);
+                                             ItmRpcService itmManager, OdlInterfaceRpcService odlInterfaceRpcService,
+                                             IdManagerService idManager, NAPTSwitchSelector naptSwitchSelector,
+                                             IInterfaceManager interfaceManager,
+                                             IVpnFootprintService vpnFootprintService,
+                                             IFibManager fibManager, NatDataUtil natDataUtil,
+                                             DataTreeEventCallbackRegistrar eventCallbacks) {
+        super(dataBroker, mdsalManager, itmManager, idManager, naptSwitchSelector,
+                odlInterfaceRpcService, interfaceManager, vpnFootprintService, fibManager ,
+                natDataUtil, eventCallbacks);
     }
 
     @Override
-    public boolean handleSnatAllSwitch(Routers routers, BigInteger primarySwitchId,  int addOrRemove) {
-        ProviderTypes extNwProviderType = NatUtil.getProviderTypefromNetworkId(dataBroker, routers.getNetworkId());
-        LOG.debug("FlatVlanConntrackBasedSnatService: handleSnatAllSwitch ProviderTypes {}", extNwProviderType);
-        if (extNwProviderType == ProviderTypes.VXLAN || extNwProviderType == ProviderTypes.GRE) {
+    public boolean addSnatAllSwitch(TypedReadWriteTransaction<Configuration> confTx, Routers routers,
+        Uint64 primarySwitchId) {
+        if (checkProviderType(confTx, routers)) {
             return false;
         }
-        return super.handleSnatAllSwitch(routers, primarySwitchId, addOrRemove);
+        return super.addSnatAllSwitch(confTx, routers, primarySwitchId);
     }
 
     @Override
-    public boolean handleSnat(Routers routers, BigInteger primarySwitchId, BigInteger dpnId,  int addOrRemove) {
-        ProviderTypes extNwProviderType = NatUtil.getProviderTypefromNetworkId(dataBroker, routers.getNetworkId());
-        LOG.debug("FlatVlanConntrackBasedSnatService: handleSnat ProviderTypes {}", extNwProviderType);
-        if (extNwProviderType == ProviderTypes.VXLAN || extNwProviderType == ProviderTypes.GRE) {
-            return false;
-        }
-        return super.handleSnat(routers, primarySwitchId, dpnId, addOrRemove);
+    public boolean removeSnatAllSwitch(TypedReadWriteTransaction<Configuration> confTx, Routers routers,
+            Uint64 primarySwitchId) throws ExecutionException, InterruptedException {
+        return !checkProviderType(confTx, routers) && super.removeSnatAllSwitch(confTx, routers, primarySwitchId);
+    }
+
+    @Override
+    public boolean addSnat(TypedReadWriteTransaction<Configuration> confTx, Routers routers,
+        Uint64 primarySwitchId, Uint64 dpnId) {
+        return !checkProviderType(confTx, routers) && super.addSnat(confTx, routers, primarySwitchId, dpnId);
+    }
+
+    @Override
+    public boolean removeSnat(TypedReadWriteTransaction<Configuration> confTx, Routers routers,
+            Uint64 primarySwitchId, Uint64 dpnId) throws ExecutionException, InterruptedException {
+        return !checkProviderType(confTx, routers) && super.removeSnat(confTx, routers, primarySwitchId, dpnId);
+    }
+
+    private boolean checkProviderType(TypedReadWriteTransaction<Configuration> confTx, Routers routers) {
+        ProviderTypes extNwProviderType = NatUtil.getProviderTypefromNetworkId(confTx, routers.getNetworkId());
+        LOG.debug("FlatVlanConntrackBasedSnatService: ProviderTypes {}", extNwProviderType);
+        return extNwProviderType == ProviderTypes.VXLAN || extNwProviderType == ProviderTypes.GRE;
     }
 }