From: Robert Varga Date: Mon, 9 Jul 2018 10:52:02 +0000 (+0200) Subject: Migrate netconf users of submit() to commit() X-Git-Tag: release/fluorine~31 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=aa8e89f18722ac97ca2df519004469a06c709c23;p=netconf.git Migrate netconf users of submit() to commit() This is the next round of conversions, covering most of netconf. Change-Id: Ic3caa8ed0879ad547940ff09d034adb5d6d6f687 Signed-off-by: Robert Varga --- diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallhomeStatusReporter.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallhomeStatusReporter.java index b315aeef98..db43d0d393 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallhomeStatusReporter.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallhomeStatusReporter.java @@ -224,7 +224,7 @@ class CallhomeStatusReporter implements DataTreeChangeListener, StatusReco private void writeDevice(final NodeId nodeId, final Device modifiedDevice) { ReadWriteTransaction opTx = dataBroker.newReadWriteTransaction(); opTx.merge(LogicalDatastoreType.OPERATIONAL, buildDeviceInstanceIdentifier(nodeId), modifiedDevice); - opTx.submit(); + opTx.commit(); } private static InstanceIdentifier buildDeviceInstanceIdentifier(final NodeId nodeId) { @@ -265,7 +265,7 @@ class CallhomeStatusReporter implements DataTreeChangeListener, StatusReco .child(Device.class, device.key()); tx.merge(LogicalDatastoreType.OPERATIONAL, deviceIId, device); - tx.submit(); + tx.commit(); } private AllowedDevices getDevices() { diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java index 982ec0c6f6..b71e423c4a 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java @@ -185,7 +185,7 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT } if (numRemoved > 0) { - opTx.submit(); + opTx.commit(); } } @@ -213,6 +213,6 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT .setSshHostKey(cfgDevice.getSshHostKey()).setUniqueId(cfgDevice.getUniqueId()).build(); tx.merge(LogicalDatastoreType.OPERATIONAL, deviceIID, cfgDevice); - tx.submit(); + tx.commit(); } } diff --git a/netconf/mdsal-netconf-monitoring/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriterTest.java b/netconf/mdsal-netconf-monitoring/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriterTest.java index a200940d74..d2b4d3a82a 100644 --- a/netconf/mdsal-netconf-monitoring/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriterTest.java +++ b/netconf/mdsal-netconf-monitoring/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriterTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.config.yang.netconf.mdsal.monitoring; import static org.mockito.Matchers.any; @@ -14,6 +13,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.verify; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import java.util.ArrayList; import java.util.List; @@ -25,7 +25,6 @@ import org.mockito.MockitoAnnotations; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities; @@ -35,7 +34,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder; -import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class MonitoringToMdsalWriterTest { @@ -43,9 +41,6 @@ public class MonitoringToMdsalWriterTest { private static final InstanceIdentifier INSTANCE_IDENTIFIER = InstanceIdentifier.create(NetconfState.class); - @Mock - private CommitInfo info; - @Mock private NetconfMonitoringService monitoring; @Mock @@ -66,7 +61,7 @@ public class MonitoringToMdsalWriterTest { doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any()); doNothing().when(writeTransaction).delete(eq(LogicalDatastoreType.OPERATIONAL), any()); - doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit(); + doReturn(emptyFluentFuture()).when(writeTransaction).commit(); writer = new MonitoringToMdsalWriter(monitoring, dataBroker); } diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriter.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriter.java index 5621f1728e..c5fad3f5b0 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriter.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriter.java @@ -9,12 +9,12 @@ package org.opendaylight.controller.config.yang.netconf.mdsal.notification; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; +import java.util.concurrent.ExecutionException; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.netconf.notifications.NetconfNotificationCollector; import org.opendaylight.netconf.notifications.NotificationRegistration; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType; @@ -52,9 +52,9 @@ public final class NotificationToMdsalWriter implements AutoCloseable, NetconfNo final WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Netconf.class)); - Futures.addCallback(tx.submit(), new FutureCallback() { + tx.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(final Void avoid) { + public void onSuccess(final CommitInfo info) { LOG.debug("Streams cleared successfully"); } @@ -82,9 +82,9 @@ public final class NotificationToMdsalWriter implements AutoCloseable, NetconfNo tx.merge(LogicalDatastoreType.OPERATIONAL, streamIdentifier, stream, true); try { - tx.submit().checkedGet(); + tx.commit().get(); LOG.debug("Stream %s registered successfully.", stream.getName()); - } catch (TransactionCommitFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.warn("Unable to register stream.", e); } } @@ -98,9 +98,9 @@ public final class NotificationToMdsalWriter implements AutoCloseable, NetconfNo tx.delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier); try { - tx.submit().checkedGet(); + tx.commit().get(); LOG.debug("Stream %s unregistered successfully.", stream); - } catch (TransactionCommitFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.warn("Unable to unregister stream", e); } } diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriterTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriterTest.java index 7529ab4f6c..b515e260cd 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriterTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriterTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.config.yang.netconf.mdsal.notification; import static org.mockito.Matchers.any; @@ -14,8 +13,8 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; -import com.google.common.util.concurrent.Futures; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -55,7 +54,7 @@ public class NotificationToMdsalWriterTest { doNothing().when(tx).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(DataObject.class), anyBoolean()); doNothing().when(tx).delete(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)); - doReturn(Futures.immediateCheckedFuture(null)).when(tx).submit(); + doReturn(emptyFluentFuture()).when(tx).commit(); doReturn(tx).when(dataBroker).newWriteOnlyTransaction(); writer = new NotificationToMdsalWriter(notificationCollector, dataBroker); diff --git a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java index 0df7fef0cb..dfa537ca81 100644 --- a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java +++ b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java @@ -13,6 +13,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import com.google.common.collect.ImmutableList; import org.junit.Before; @@ -22,7 +23,6 @@ import org.mockito.MockitoAnnotations; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; @@ -36,7 +36,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; @@ -53,8 +52,6 @@ public class SchemaServiceToMdsalWriterTest { private DataBroker dataBroker; @Mock private WriteTransaction writeTransaction; - @Mock - private CommitInfo info; private SchemaServiceToMdsalWriter schemaServiceToMdsalWriter; @@ -64,7 +61,7 @@ public class SchemaServiceToMdsalWriterTest { when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction); doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any()); - doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit(); + doReturn(emptyFluentFuture()).when(writeTransaction).commit(); when(schemaService.registerSchemaContextListener(any())).thenReturn( new ListenerRegistration() { @Override diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java index 382fa98ef9..ec825d729a 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java @@ -19,6 +19,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.MockitoAnnotations.initMocks; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import akka.actor.ActorSystem; import akka.util.Timeout; @@ -38,7 +39,6 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientSessionListener; @@ -63,7 +63,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yangtools.util.concurrent.FluentFutures; import scala.concurrent.duration.Duration; public class RemoteDeviceConnectorImplTest { @@ -72,9 +71,6 @@ public class RemoteDeviceConnectorImplTest { private static final String TOPOLOGY_ID = "testing-topology"; private static final Timeout TIMEOUT = new Timeout(Duration.create(5, "seconds")); - @Mock - private CommitInfo info; - @Mock private DataBroker dataBroker; @@ -122,7 +118,7 @@ public class RemoteDeviceConnectorImplTest { doReturn(writeTx).when(txChain).newWriteOnlyTransaction(); doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any()); doReturn("Some object").when(writeTx).getIdentifier(); - doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTx).commit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); builder = new NetconfTopologySetup.NetconfTopologySetupBuilder(); builder.setDataBroker(dataBroker); builder.setRpcProviderRegistry(rpcProviderRegistry); diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTestAdapter.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTestAdapter.java index 363ae63e4a..020887378a 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTestAdapter.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTestAdapter.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.topology.singleton.impl.actors; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import static org.opendaylight.netconf.topology.singleton.impl.actors.ReadTransactionActorTestAdapter.NODE; import static org.opendaylight.netconf.topology.singleton.impl.actors.ReadTransactionActorTestAdapter.PATH; import static org.opendaylight.netconf.topology.singleton.impl.actors.ReadTransactionActorTestAdapter.STORE; @@ -26,7 +26,6 @@ import akka.testkit.TestProbe; import org.junit.Test; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; import org.opendaylight.netconf.topology.singleton.messages.transactions.CancelRequest; import org.opendaylight.netconf.topology.singleton.messages.transactions.DeleteRequest; @@ -86,7 +85,7 @@ public abstract class WriteTransactionActorTestAdapter { @Test public void testSubmit() { - doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(mockWriteTx).commit(); + doReturn(emptyFluentFuture()).when(mockWriteTx).commit(); actorRef.tell(new SubmitRequest(), probe.ref()); verify(mockWriteTx).commit(); diff --git a/netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java b/netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java index 149d727f83..517dbe3d31 100644 --- a/netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java +++ b/netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java @@ -15,6 +15,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import com.google.common.collect.Sets; import com.google.common.util.concurrent.Futures; @@ -39,7 +40,6 @@ import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; -import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientSessionListener; import org.opendaylight.netconf.client.conf.NetconfClientConfiguration; @@ -65,7 +65,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository; @@ -126,7 +125,7 @@ public class NetconfTopologyImplTest { when(dataBroker.newWriteOnlyTransaction()).thenReturn(wtx); doNothing().when(wtx) .merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(DataObject.class)); - doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(wtx).commit(); + doReturn(emptyFluentFuture()).when(wtx).commit(); topology.init(); //verify initialization of topology diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java index 1d8b4a1aca..c9b2251027 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java @@ -10,7 +10,6 @@ package org.opendaylight.netconf.sal.connect.netconf.sal; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.List; @@ -20,6 +19,7 @@ import java.util.stream.Collectors; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabilities; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; @@ -203,7 +203,7 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { id, writeTx.getIdentifier()); try { - writeTx.submit().get(); + writeTx.commit().get(); } catch (InterruptedException | ExecutionException e) { LOG.error("{}: Transaction(close) {} FAILED!", id, writeTx.getIdentifier(), e); throw new IllegalStateException(id + " Transaction(close) not committed correctly", e); @@ -228,9 +228,9 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { LOG.trace("{}: Committing Transaction {}:{}", id, txType, transaction.getIdentifier()); - Futures.addCallback(transaction.submit(), new FutureCallback() { + transaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final CommitInfo result) { LOG.trace("{}: Transaction({}) {} SUCCESSFUL", id, txType, transaction.getIdentifier()); } @@ -252,7 +252,7 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { } @Override - public void close() throws Exception { + public void close() { removeDeviceConfiguration(); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java index 29d345287a..b625d749c7 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java @@ -8,20 +8,18 @@ package org.opendaylight.netconf.sal.connect.util; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import java.util.List; +import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import javax.annotation.Nullable; import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryOutputBuilder; @@ -81,12 +79,10 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, keystoreIid, keystore); - final CheckedFuture submit = writeTransaction.submit(); - try { - submit.checkedGet(); + writeTransaction.commit().get(); LOG.debug("init keystore done"); - } catch (TransactionCommitFailedException exception) { + } catch (InterruptedException | ExecutionException exception) { LOG.error("Unable to initialize Netconf key-pair store.", exception); } } @@ -106,10 +102,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - final ListenableFuture submit = writeTransaction.submit(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("remove-key-pair success. Input: {}"); rpcResult.set(RpcResultBuilder.success(new RemoveKeystoreEntryOutputBuilder().build()).build()); } @@ -142,9 +137,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - Futures.addCallback(writeTransaction.submit(), new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("add-key-pair success. Input: {}"); rpcResult.set(RpcResultBuilder.success(new AddKeystoreEntryOutputBuilder().build()).build()); } @@ -171,9 +166,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - Futures.addCallback(writeTransaction.submit(), new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("add-trusted-certificate success. Input: {}", input); rpcResult.set(RpcResultBuilder.success(new AddTrustedCertificateOutputBuilder().build()).build()); } @@ -201,9 +196,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - Futures.addCallback(writeTransaction.submit(), new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("remove-trusted-certificate success. Input: {}", input); rpcResult.set(RpcResultBuilder.success(new RemoveTrustedCertificateOutputBuilder().build()).build()); } @@ -229,9 +224,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - Futures.addCallback(writeTransaction.submit(), new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("add-private-key success. Input: {}", input); rpcResult.set(RpcResultBuilder.success(new AddPrivateKeyOutputBuilder().build()).build()); } @@ -258,9 +253,9 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final SettableFuture> rpcResult = SettableFuture.create(); - Futures.addCallback(writeTransaction.submit(), new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(final CommitInfo result) { LOG.debug("remove-private-key success. Input: {}", input); rpcResult.set(RpcResultBuilder.success(new RemovePrivateKeyOutputBuilder().build()).build()); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java index 44e4ff99ac..3609e8cf22 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java @@ -10,7 +10,6 @@ package org.opendaylight.netconf.sal.connect.util; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; @@ -18,6 +17,7 @@ import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutputBuilder; @@ -103,11 +103,10 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { final InstanceIdentifier niid = topologyPath.child(Node.class, new NodeKey(nodeId)).augmentation(NetconfNode.class); writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, niid, node, true); - final ListenableFuture future = writeTransaction.submit(); - Futures.addCallback(future, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final CommitInfo result) { LOG.info("add-netconf-node RPC: Added netconf node successfully."); futureResult.set(RpcResultBuilder.success(new CreateDeviceOutputBuilder().build()).build()); } @@ -130,13 +129,12 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { final WriteTransaction wtx = dataBroker.newWriteOnlyTransaction(); wtx.delete(LogicalDatastoreType.CONFIGURATION, niid); - final ListenableFuture future = wtx.submit(); final SettableFuture> rpcFuture = SettableFuture.create(); - Futures.addCallback(future, new FutureCallback() { + wtx.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final CommitInfo result) { LOG.info("delete-device RPC: Removed netconf node successfully."); rpcFuture.set(RpcResultBuilder.success(new DeleteDeviceOutputBuilder().build()).build()); } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProviderTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProviderTest.java index 78c586e66b..5ba66cac88 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProviderTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProviderTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.sal.connect.netconf.sal; import static org.mockito.Matchers.any; @@ -15,8 +14,8 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; -import com.google.common.util.concurrent.Futures; import java.net.InetSocketAddress; import org.junit.Before; import org.junit.Test; @@ -45,6 +44,7 @@ public class NetconfDeviceSalProviderTest { private DOMMountPointService mountPointService; @Mock private WriteTransaction writeTx; + private NetconfDeviceSalProvider provider; @Before @@ -54,11 +54,11 @@ public class NetconfDeviceSalProviderTest { doReturn(writeTx).when(chain).newWriteOnlyTransaction(); doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any()); doReturn("Some object").when(writeTx).getIdentifier(); - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); provider = new NetconfDeviceSalProvider(new RemoteDeviceId("device1", InetSocketAddress.createUnresolved("localhost", 17830)), mountPointService, dataBroker); when(chain.newWriteOnlyTransaction()).thenReturn(tx); - when(tx.submit()).thenReturn(Futures.immediateCheckedFuture(null)); + doReturn(emptyFluentFuture()).when(tx).commit(); when(tx.getIdentifier()).thenReturn(tx); } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java index 2261cc363d..d5cd4af37f 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.sal.connect.netconf.sal; import static org.junit.Assert.assertEquals; @@ -14,9 +13,9 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; import com.google.common.base.Optional; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import java.net.InetSocketAddress; import java.util.EnumMap; @@ -149,7 +148,7 @@ public class NetconfDeviceTopologyAdapterTest { @Test public void testFailedDevice() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); NetconfDeviceTopologyAdapter adapter = new NetconfDeviceTopologyAdapter(id, txChain); adapter.setDeviceAsFailed(null); @@ -173,7 +172,7 @@ public class NetconfDeviceTopologyAdapterTest { @Test public void testDeviceUpdate() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); NetconfDeviceTopologyAdapter adapter = new NetconfDeviceTopologyAdapter(id, txChain); adapter.updateDeviceData(true, new NetconfDeviceCapabilities()); @@ -207,18 +206,18 @@ public class NetconfDeviceTopologyAdapterTest { DOMDataWriteTransaction wtx = domDataBroker.newWriteOnlyTransaction(); wtx.put(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf, augmentNode); - wtx.submit().get(5, TimeUnit.SECONDS); + wtx.commit().get(5, TimeUnit.SECONDS); adapter.updateDeviceData(true, new NetconfDeviceCapabilities()); Optional> testNode = domDataBroker.newReadOnlyTransaction() - .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).checkedGet(2, TimeUnit.SECONDS); + .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).get(2, TimeUnit.SECONDS); assertEquals("Augmented node data should be still present after device update.", true, testNode.isPresent()); assertEquals("Augmented data should be the same as before update node.", dataTestId, testNode.get().getValue()); adapter.setDeviceAsFailed(null); testNode = domDataBroker.newReadOnlyTransaction() - .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).checkedGet(2, TimeUnit.SECONDS); + .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).get(2, TimeUnit.SECONDS); assertEquals("Augmented node data should be still present after device failed.", true, testNode.isPresent()); assertEquals("Augmented data should be the same as before failed device.", @@ -254,14 +253,14 @@ public class NetconfDeviceTopologyAdapterTest { @Test public void testRemoveDeviceConfiguration() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); NetconfDeviceTopologyAdapter adapter = new NetconfDeviceTopologyAdapter(id, txChain); adapter.close(); verify(txChain, times(2)).newWriteOnlyTransaction(); verify(writeTx).delete(LogicalDatastoreType.OPERATIONAL, id.getTopologyBindingPath()); - verify(writeTx, times(2)).submit(); + verify(writeTx, times(2)).commit(); } } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/NetconfDeviceWriteOnlyTxTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/NetconfDeviceWriteOnlyTxTest.java index 2f912bd9af..583ab79b6e 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/NetconfDeviceWriteOnlyTxTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/NetconfDeviceWriteOnlyTxTest.java @@ -25,6 +25,7 @@ import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTr import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import java.net.InetSocketAddress; +import java.util.concurrent.ExecutionException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -33,7 +34,6 @@ import org.mockito.InOrder; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; import org.opendaylight.controller.md.sal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseSchema; @@ -63,7 +63,7 @@ public class NetconfDeviceWriteOnlyTxTest { MockitoAnnotations.initMocks(this); final CheckedFuture successFuture = - Futures.immediateCheckedFuture(new DefaultDOMRpcResult(((NormalizedNode) null))); + Futures.immediateCheckedFuture(new DefaultDOMRpcResult((NormalizedNode) null)); doReturn(successFuture) .doReturn(Futures.immediateFailedCheckedFuture(new IllegalStateException("Failed tx"))) @@ -87,13 +87,12 @@ public class NetconfDeviceWriteOnlyTxTest { } @Test - public void testDiscardChanges() { + public void testDiscardChanges() throws InterruptedException { final WriteCandidateTx tx = new WriteCandidateTx(id, new NetconfBaseOps(rpc, mock(SchemaContext.class)), false); - final CheckedFuture submitFuture = tx.submit(); try { - submitFuture.checkedGet(); - } catch (final TransactionCommitFailedException e) { + tx.commit().get(); + } catch (final ExecutionException e) { // verify discard changes was sent final InOrder inOrder = inOrder(rpc); inOrder.verify(rpc).invokeRpc(toPath(NetconfMessageTransformUtil.NETCONF_LOCK_QNAME), @@ -115,20 +114,18 @@ public class NetconfDeviceWriteOnlyTxTest { final CheckedFuture rpcErrorFuture = Futures.immediateCheckedFuture( new DefaultDOMRpcResult(RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "a", "m"))); - doReturn(Futures.immediateCheckedFuture(new DefaultDOMRpcResult(((NormalizedNode) null)))) + doReturn(Futures.immediateCheckedFuture(new DefaultDOMRpcResult((NormalizedNode) null))) .doReturn(rpcErrorFuture).when(rpc).invokeRpc(any(SchemaPath.class), any(NormalizedNode.class)); final WriteCandidateTx tx = new WriteCandidateTx(id, new NetconfBaseOps(rpc, mock(SchemaContext.class)), false); - final CheckedFuture submitFuture = tx.submit(); try { - submitFuture.checkedGet(); - } catch (final TransactionCommitFailedException e) { - return; + tx.commit().get(); + fail("Submit should fail"); + } catch (final ExecutionException e) { + // Intended } - - fail("Submit should fail"); } @Test @@ -141,7 +138,7 @@ public class NetconfDeviceWriteOnlyTxTest { id, new NetconfBaseOps(rpc, BaseSchema.BASE_NETCONF_CTX_WITH_NOTIFICATIONS.getSchemaContext()), false); tx.delete(LogicalDatastoreType.CONFIGURATION, yangIId); - tx.submit(); + tx.commit(); // verify discard changes was sent final InOrder inOrder = inOrder(rpc); inOrder.verify(rpc).invokeRpc(toPath(NetconfMessageTransformUtil.NETCONF_LOCK_QNAME), @@ -161,7 +158,7 @@ public class NetconfDeviceWriteOnlyTxTest { final TxListener listener = mock(TxListener.class); tx.addListener(listener); tx.delete(LogicalDatastoreType.CONFIGURATION, yangIId); - tx.submit(); + tx.commit(); verify(listener).onTransactionSubmitted(tx); verify(listener).onTransactionSuccessful(tx); verify(listener, never()).onTransactionFailed(eq(tx), any()); @@ -194,7 +191,7 @@ public class NetconfDeviceWriteOnlyTxTest { final TxListener listener = mock(TxListener.class); tx.addListener(listener); tx.delete(LogicalDatastoreType.CONFIGURATION, yangIId); - tx.submit(); + tx.commit(); final ArgumentCaptor excCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener).onTransactionSubmitted(tx); verify(listener).onTransactionFailed(eq(tx), excCaptor.capture()); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/TxChainTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/TxChainTest.java index 384d83d5f1..35225d724e 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/TxChainTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/TxChainTest.java @@ -112,7 +112,7 @@ public class TxChainTest { public void testChainFail() throws Exception { final AbstractWriteTx writeTx = chain.newWriteOnlyTransaction(); verify(writeOnlyTx1).addListener(captor.capture()); - writeTx.submit(); + writeTx.commit(); final TransactionCommitFailedException cause = new TransactionCommitFailedException("fail"); captor.getValue().onTransactionFailed(writeOnlyTx1, cause); verify(registration1).close(); @@ -124,7 +124,7 @@ public class TxChainTest { final AbstractWriteTx writeTx = chain.newWriteOnlyTransaction(); chain.close(); verify(writeOnlyTx1).addListener(captor.capture()); - writeTx.submit(); + writeTx.commit(); captor.getValue().onTransactionSuccessful(writeOnlyTx1); verify(registration1).close(); verify(listener).onTransactionChainSuccessful(chain); @@ -146,7 +146,7 @@ public class TxChainTest { final ArgumentCaptor captor1 = ArgumentCaptor.forClass(TxListener.class); verify(writeOnlyTx1).addListener(captor1.capture()); //submit 1st tx - writeTx1.submit(); + writeTx1.commit(); captor1.getValue().onTransactionSubmitted(writeOnlyTx1); //create 2nd tx @@ -154,7 +154,7 @@ public class TxChainTest { final ArgumentCaptor captor2 = ArgumentCaptor.forClass(TxListener.class); verify(writeTx2).addListener(captor2.capture()); //submit 2nd tx - writeTx2.submit(); + writeTx2.commit(); captor2.getValue().onTransactionSubmitted(writeOnlyTx2); //create 3rd tx @@ -185,7 +185,7 @@ public class TxChainTest { final ArgumentCaptor captor1 = ArgumentCaptor.forClass(TxListener.class); verify(writeOnlyTx1).addListener(captor1.capture()); //submit 1st tx - writeTx1.submit(); + writeTx1.commit(); captor1.getValue().onTransactionSubmitted(writeOnlyTx1); //create 2nd tx @@ -193,7 +193,7 @@ public class TxChainTest { final ArgumentCaptor captor2 = ArgumentCaptor.forClass(TxListener.class); verify(writeTx2).addListener(captor2.capture()); //submit 2nd tx - writeTx2.submit(); + writeTx2.commit(); captor2.getValue().onTransactionSubmitted(writeOnlyTx2); //create 3rd tx diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateRunningTxTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateRunningTxTest.java index a7a427e7ef..c2bc6d7765 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateRunningTxTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateRunningTxTest.java @@ -72,7 +72,7 @@ public class WriteCandidateRunningTxTest { //check, if both edits are called verify(rpc, times(2)).invokeRpc( eq(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME)), any()); - tx.submit().get(); + tx.commit().get(); //check, if unlock is called verify(rpc).invokeRpc(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_COMMIT_QNAME), NetconfMessageTransformUtil.COMMIT_RPC_CONTENT); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTxTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTxTest.java index 917fb486b6..7eddf57c7d 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTxTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTxTest.java @@ -58,7 +58,7 @@ public class WriteCandidateTxTest { //check, if both edits are called verify(rpc, times(2)) .invokeRpc(eq(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME)), any()); - tx.submit().get(); + tx.commit().get(); //check, if unlock is called verify(rpc).invokeRpc(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_COMMIT_QNAME), NetconfMessageTransformUtil.COMMIT_RPC_CONTENT); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTxTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTxTest.java index 30f75b11ac..bb962d234a 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTxTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTxTest.java @@ -58,7 +58,7 @@ public class WriteRunningTxTest { //check, if no edit-config is called before submit verify(rpc, never()) .invokeRpc(eq(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME)), any()); - tx.submit().get(); + tx.commit().get(); //check, if both edits are called verify(rpc, times(2)) .invokeRpc(eq(SchemaPath.create(true, NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME)), any()); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfSalKeystoreServiceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfSalKeystoreServiceTest.java index 1d85790b6b..531f3de75a 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfSalKeystoreServiceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfSalKeystoreServiceTest.java @@ -12,8 +12,8 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; -import com.google.common.util.concurrent.Futures; import java.util.ArrayList; import java.util.List; import org.junit.Before; @@ -24,7 +24,6 @@ import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.sal.connect.util.NetconfSalKeystoreService; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddPrivateKeyInput; @@ -69,7 +68,7 @@ public class NetconfSalKeystoreServiceTest { @Test public void testAddPrivateKey() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); NetconfSalKeystoreService keystoreService = new NetconfSalKeystoreService(dataBroker, encryptionService); final AddPrivateKeyInput input = getPrivateKeyInput(); @@ -81,7 +80,7 @@ public class NetconfSalKeystoreServiceTest { @Test public void testAddTrustedCertificate() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); NetconfSalKeystoreService keystoreService = new NetconfSalKeystoreService(dataBroker, encryptionService); final AddTrustedCertificateInput input = getTrustedCertificateInput(); diff --git a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java index e9270c4f1e..5e381cdc5f 100644 --- a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java +++ b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java @@ -12,7 +12,6 @@ import com.google.common.base.Predicate; import com.google.common.base.Strings; import com.google.common.collect.Iterables; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import java.io.File; import java.util.ArrayList; @@ -21,6 +20,7 @@ import javax.annotation.Nullable; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder; @@ -124,9 +124,9 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener { tx.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(ModulesState.class), new ModulesStateBuilder().setModule(newModules).build()); - Futures.addCallback(tx.submit(), new FutureCallback() { + tx.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(@Nullable final CommitInfo result) { LOG.debug("Modules state successfully populated with new modules"); } @@ -153,9 +153,9 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener { new YangIdentifier(source.getSourceIdentifier().getName()), RevisionUtils.fromYangCommon(source.getSourceIdentifier().getRevision())))); - Futures.addCallback(tx.submit(), new FutureCallback() { + tx.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable final Void result) { + public void onSuccess(@Nullable final CommitInfo result) { LOG.debug("Modules state successfully updated."); } diff --git a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java index f6c712976f..a31c75cb83 100644 --- a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java +++ b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java @@ -11,12 +11,13 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; -import com.google.common.util.concurrent.Futures; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -112,7 +113,7 @@ public class YangLibProviderTest { org.opendaylight.yangtools.yang.common.Revision.of("2016-04-28")), YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); - when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null)); + doReturn(emptyFluentFuture()).when(writeTransaction).commit(); yangLibProvider.schemaSourceRegistered(list); List newModulesList = new ArrayList<>(); @@ -137,7 +138,7 @@ public class YangLibProviderTest { verify(writeTransaction).merge(eq(LogicalDatastoreType.OPERATIONAL), eq(InstanceIdentifier.create(ModulesState.class)), eq(new ModulesStateBuilder().setModule(newModulesList).build())); - verify(writeTransaction).submit(); + verify(writeTransaction).commit(); } @Test @@ -173,7 +174,7 @@ public class YangLibProviderTest { YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction); - when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null)); + doReturn(emptyFluentFuture()).when(writeTransaction).commit(); yangLibProvider.schemaSourceRegistered(potentialSources); verify(dataBroker).newWriteOnlyTransaction(); @@ -181,7 +182,7 @@ public class YangLibProviderTest { verify(writeTransaction).merge(eq(LogicalDatastoreType.OPERATIONAL), eq(InstanceIdentifier.create(ModulesState.class)), modulesStateCaptor.capture()); assertEquals(modulesStateCaptor.getValue().getModule().size(), 1); - verify(writeTransaction).submit(); + verify(writeTransaction).commit(); } @Test @@ -207,7 +208,7 @@ public class YangLibProviderTest { doNothing().when(writeTransaction) .delete(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class)); - when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null)); + doReturn(emptyFluentFuture()).when(writeTransaction).commit(); PotentialSchemaSource yangUnregistererSource = PotentialSchemaSource.create( @@ -223,7 +224,7 @@ public class YangLibProviderTest { new ModuleKey(new YangIdentifier("unregistered-yang-schema-without-revision"), RevisionUtils.emptyRevision())))); - verify(writeTransaction).submit(); + verify(writeTransaction).commit(); yangUnregistererSource = PotentialSchemaSource.create( @@ -240,6 +241,6 @@ public class YangLibProviderTest { new ModuleKey(new YangIdentifier("unregistered-yang-with-revision"), new Revision(new RevisionIdentifier("2016-04-28")))))); - verify(writeTransaction, times(2)).submit(); + verify(writeTransaction, times(2)).commit(); } }