From: Miguel Perez Date: Thu, 26 Jan 2017 14:05:01 +0000 (+0100) Subject: Make 'bindService' transaction-embeddable X-Git-Tag: release/carbon~147 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F72%2F51072%2F4;hp=e1c53b1b1899d86d7d842e169913c8bc27cb707f;p=genius.git Make 'bindService' transaction-embeddable Change-Id: I3608e43991a9b00a021f3f49f9c4413567d17acc Signed-off-by: Miguel Perez --- diff --git a/interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java b/interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java index c01741c9e..4133b587f 100644 --- a/interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java +++ b/interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java @@ -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 serviceMode, BoundServices serviceInfo); + void bindService(String interfaceName, Class serviceMode, BoundServices serviceInfo, + WriteTransaction tx); + void unbindService(String interfaceName, Class serviceMode, BoundServices serviceInfo); List getVlanInterfaces(); diff --git a/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java b/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java index e386e0cb9..1b50eb559 100644 --- a/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java +++ b/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java @@ -549,10 +549,19 @@ public class InterfacemgrProvider implements BindingAwareProvider, AutoCloseable } @Override - public void bindService(String interfaceName, Class serviceMode, BoundServices serviceInfo) { - WriteTransaction t = dataBroker.newWriteOnlyTransaction(); + public void bindService(String interfaceName, Class serviceMode, + BoundServices serviceInfo) { + bindService(interfaceName, serviceMode, serviceInfo, /*WriteTransaction*/ null); + } + + @Override + public void bindService(String interfaceName, Class 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