Make 'bindService' transaction-embeddable 72/51072/4
authorMiguel Perez <francisco.miguel.perez@ericsson.com>
Thu, 26 Jan 2017 14:05:01 +0000 (15:05 +0100)
committerMiguel Perez <francisco.miguel.perez@ericsson.com>
Mon, 27 Feb 2017 16:06:53 +0000 (17:06 +0100)
Change-Id: I3608e43991a9b00a021f3f49f9c4413567d17acc
Signed-off-by: Miguel Perez <francisco.miguel.perez@ericsson.com>
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java

index c01741c9e9c67e676684a1eaf8ca65ed7f0b551a..4133b587fe9c77d166fd76a9594504c7897b57ce 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.genius.interfacemanager.interfaces;
 
 import java.math.BigInteger;
 import java.util.List;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.genius.interfacemanager.exceptions.InterfaceAlreadyExistsException;
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
@@ -60,6 +61,9 @@ public interface IInterfaceManager {
 
     void bindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode, BoundServices serviceInfo);
 
+    void bindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode, BoundServices serviceInfo,
+                     WriteTransaction tx);
+
     void unbindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode, BoundServices serviceInfo);
 
     List<Interface> getVlanInterfaces();
index e386e0cb9bc37aaf96bb8ec53a581b0c125b7574..1b50eb55901ad8ab360d80e850598fcf3fd91b07 100644 (file)
@@ -549,10 +549,19 @@ public class InterfacemgrProvider implements BindingAwareProvider, AutoCloseable
     }
 
     @Override
-    public void bindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode, BoundServices serviceInfo) {
-        WriteTransaction t = dataBroker.newWriteOnlyTransaction();
+    public void bindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode,
+                            BoundServices serviceInfo) {
+        bindService(interfaceName, serviceMode, serviceInfo, /*WriteTransaction*/ null);
+    }
+
+    @Override
+    public void bindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode,
+                            BoundServices serviceInfo, WriteTransaction tx) {
+        WriteTransaction t = (tx != null) ? tx : dataBroker.newWriteOnlyTransaction();
         IfmUtil.bindService(t, interfaceName, serviceInfo, serviceMode);
-        t.submit();
+        if (tx == null) {
+            t.submit();
+        }
     }
 
     @Override