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.Collection;
import java.util.function.Consumer;
-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.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;
Preconditions.checkState(dataBroker != null);
final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
txUser.accept(tx);
- Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+ tx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(@Nullable final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("Netconf state updated successfully");
}
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.verify;
-import com.google.common.util.concurrent.Futures;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
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;
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 {
private static final InstanceIdentifier<NetconfState> INSTANCE_IDENTIFIER =
InstanceIdentifier.create(NetconfState.class);
+ @Mock
+ private CommitInfo info;
+
@Mock
private NetconfMonitoringService monitoring;
@Mock
doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
doNothing().when(writeTransaction).delete(eq(LogicalDatastoreType.OPERATIONAL), any());
- doReturn(Futures.immediateCheckedFuture(null)).when(writeTransaction).submit();
+ doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit();
writer = new MonitoringToMdsalWriter(monitoring, dataBroker);
}
writer.close();
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).delete(LogicalDatastoreType.OPERATIONAL, INSTANCE_IDENTIFIER);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
writer.onCapabilitiesChanged(capabilities);
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, capabilitiesId, capabilities);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
writer.onSchemasChanged(schemas);
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, schemasId, schemas);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
writer.onSessionStarted(session);
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id, session);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
writer.onSessionEnded(session);
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).delete(LogicalDatastoreType.OPERATIONAL, id);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
InOrder inOrder = inOrder(writeTransaction);
inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id1, session1);
inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id2, session2);
- inOrder.verify(writeTransaction).submit();
+ inOrder.verify(writeTransaction).commit();
}
@Test
package org.opendaylight.netconf.mdsal.yang.library;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
-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.controller.sal.core.api.model.SchemaService;
+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;
MODULES_STATE_INSTANCE_IDENTIFIER, newModuleState);
LOG.debug("Trying to write new module-state: {}", newModuleState);
- Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+ tx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(@Nullable final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("Modules state updated successfully");
}
* 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.mdsal.yang.library;
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.verify;
import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableList;
-import com.google.common.util.concurrent.Futures;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.sal.core.api.model.SchemaService;
+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;
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;
private DataBroker dataBroker;
@Mock
private WriteTransaction writeTransaction;
+ @Mock
+ private CommitInfo info;
private SchemaServiceToMdsalWriter schemaServiceToMdsalWriter;
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
- when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null));
+ doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit();
when(schemaService.registerSchemaContextListener(any())).thenReturn(
new ListenerRegistration<SchemaContextListener>() {
@Override
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
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.Collections;
import java.util.Locale;
import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
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.console.api.NetconfCommands;
import org.opendaylight.netconf.console.utils.NetconfConsoleConstants;
import org.opendaylight.netconf.console.utils.NetconfConsoleUtils;
final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
transaction.put(LogicalDatastoreType.CONFIGURATION, NetconfIidFactory.netconfNodeIid(nodeId.getValue()), node);
- Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
-
+ transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("NetconfNode={} created successfully", netconfNode);
}
@Override
public void onFailure(final Throwable throwable) {
- LOG.error("Failed to created NetconfNode={}", netconfNode);
- throw new RuntimeException(throwable);
+ LOG.error("Failed to created NetconfNode={}", netconfNode, throwable);
}
}, MoreExecutors.directExecutor());
}
@Override
public boolean disconnectDevice(final String netconfNodeId) {
- boolean result = false;
final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
- InstanceIdentifier<Node> iid = NetconfIidFactory.netconfNodeIid(netconfNodeId);
+ final InstanceIdentifier<Node> iid = NetconfIidFactory.netconfNodeIid(netconfNodeId);
transaction.delete(LogicalDatastoreType.CONFIGURATION, iid);
try {
LOG.debug("Deleting netconf node: {}", netconfNodeId);
- transaction.submit().checkedGet();
- result = true;
- } catch (final TransactionCommitFailedException e) {
+ transaction.commit().get();
+ return true;
+ } catch (final InterruptedException | ExecutionException e) {
LOG.error("Unable to remove node with Iid {}", iid, e);
+ return false;
}
- return result;
}
@Override
transaction.put(LogicalDatastoreType.CONFIGURATION,
NetconfIidFactory.netconfNodeIid(updatedNode.getNodeId().getValue()), updatedNode);
- Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
-
+ transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("NetconfNode={} updated successfully", netconfNode);
}
@Override
public void onFailure(final Throwable throwable) {
- LOG.error("Failed to updated NetconfNode={}", netconfNode);
- throw new RuntimeException(throwable);
+ LOG.error("Failed to updated NetconfNode={}", netconfNode, throwable);
}
}, MoreExecutors.directExecutor());
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javassist.ClassPool;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
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.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker;
import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory;
}
@Test
- public void testListDevice() throws TimeoutException, TransactionCommitFailedException {
+ public void testListDevice() throws TimeoutException, InterruptedException, ExecutionException {
createTopology(LogicalDatastoreType.OPERATIONAL);
final Map<?, ?> map = netconfCommands.listDevices();
}
@Test
- public void testShowDevice() throws TimeoutException, TransactionCommitFailedException {
+ public void testShowDevice() throws TimeoutException, InterruptedException, ExecutionException {
createTopology(LogicalDatastoreType.OPERATIONAL);
final Map<?, ?> mapCorrect = netconfCommands.showDevice(IP, String.valueOf(PORT));
final Map<?, ?> mapId = netconfCommands.showDevice(NODE_ID);
assertTrue(mapId.containsKey(NODE_ID));
- assertBaseNodeAttributesImmutableList((Map) mapId.get(NODE_ID));
+ assertBaseNodeAttributesImmutableList((Map<?, ?>) mapId.get(NODE_ID));
}
@Test
- public void testConnectDisconnectDevice()
- throws InterruptedException, TimeoutException, TransactionCommitFailedException {
+ public void testConnectDisconnectDevice() throws InterruptedException, TimeoutException, ExecutionException {
final NetconfNode netconfNode = new NetconfNodeBuilder()
.setPort(new PortNumber(7777)).setHost(HostBuilder.getDefaultInstance("10.10.1.1")).build();
}
@Test
- public void testUpdateDevice() throws TimeoutException, TransactionCommitFailedException {
+ public void testUpdateDevice() throws TimeoutException, InterruptedException, ExecutionException {
//We need both, read data from OPERATIONAL DS and update data in CONFIGURATIONAL DS
createTopology(LogicalDatastoreType.OPERATIONAL);
createTopology(LogicalDatastoreType.CONFIGURATION);
}
@Test
- public void testNetconfNodeFromIp() throws TimeoutException, TransactionCommitFailedException {
+ public void testNetconfNodeFromIp() throws TimeoutException, InterruptedException, ExecutionException {
final List<Node> nodesNotExist = NetconfConsoleUtils.getNetconfNodeFromIp(IP, dataBroker);
assertNull(nodesNotExist);
createTopology(LogicalDatastoreType.OPERATIONAL);
}
private void createTopology(final LogicalDatastoreType dataStoreType)
- throws TransactionCommitFailedException, TimeoutException {
+ throws TimeoutException, InterruptedException, ExecutionException {
final List<Node> nodes = new ArrayList<>();
final Node node = getNetconfNode(NODE_ID, IP, PORT, CONN_STATUS, CAP_PREFIX);
nodes.add(node);
final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
writeTransaction.put(dataStoreType, NetconfIidFactory.NETCONF_TOPOLOGY_IID, topology);
- writeTransaction.submit().checkedGet(2, TimeUnit.SECONDS);
+ writeTransaction.commit().get(2, TimeUnit.SECONDS);
}
private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber,
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.MoreExecutors;
import io.netty.util.concurrent.EventExecutor;
import java.util.Collection;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
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.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
final WriteTransaction wtx = dataBroker.newWriteOnlyTransaction();
initTopology(wtx, LogicalDatastoreType.CONFIGURATION);
initTopology(wtx, LogicalDatastoreType.OPERATIONAL);
- Futures.addCallback(wtx.submit(), new FutureCallback<Void>() {
+ wtx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("topology initialization successful");
}
* 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.topology.singleton.impl.actors;
import akka.actor.ActorContext;
import akka.actor.ActorRef;
import akka.actor.Status.Failure;
import akka.actor.Status.Success;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import javax.annotation.Nonnull;
-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;
}
private void submit(final ActorRef requester, final ActorRef self, final ActorContext context) {
- final CheckedFuture<Void, TransactionCommitFailedException> submitFuture = tx.submit();
+ final FluentFuture<? extends CommitInfo> submitFuture = tx.commit();
context.stop(self);
- Futures.addCallback(submitFuture, new FutureCallback<Void>() {
+ submitFuture.addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
requester.tell(new Success(null), self);
}
import akka.actor.ActorSystem;
import akka.util.Timeout;
import com.google.common.net.InetAddresses;
-import com.google.common.util.concurrent.Futures;
import io.netty.util.concurrent.EventExecutor;
import java.net.InetSocketAddress;
import java.util.concurrent.ExecutorService;
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;
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 {
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;
doReturn(writeTx).when(txChain).newWriteOnlyTransaction();
doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
doReturn("Some object").when(writeTx).getIdentifier();
- doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit();
+ doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTx).commit();
builder = new NetconfTopologySetup.NetconfTopologySetupBuilder();
builder.setDataBroker(dataBroker);
builder.setRpcProviderRegistry(rpcProviderRegistry);
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 akka.actor.Status.Failure;
import akka.actor.Status.Success;
import akka.testkit.TestProbe;
-import com.google.common.util.concurrent.Futures;
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;
import org.opendaylight.netconf.topology.singleton.messages.transactions.MergeRequest;
import org.opendaylight.netconf.topology.singleton.messages.transactions.PutRequest;
import org.opendaylight.netconf.topology.singleton.messages.transactions.SubmitRequest;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.common.RpcError;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
}
@Test
- public void testCancel() throws Exception {
+ public void testCancel() {
when(mockWriteTx.cancel()).thenReturn(true);
actorRef.tell(new CancelRequest(), probe.ref());
}
@Test
- public void testSubmit() throws Exception {
- when(mockWriteTx.submit()).thenReturn(Futures.immediateCheckedFuture(null));
+ public void testSubmit() {
+ doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(mockWriteTx).commit();
actorRef.tell(new SubmitRequest(), probe.ref());
- verify(mockWriteTx).submit();
+ verify(mockWriteTx).commit();
probe.expectMsgClass(Success.class);
}
@Test
- public void testSubmitFail() throws Exception {
+ public void testSubmitFail() {
final RpcError rpcError =
RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "fail", "fail");
final TransactionCommitFailedException cause = new TransactionCommitFailedException("fail", rpcError);
- when(mockWriteTx.submit()).thenReturn(Futures.immediateFailedCheckedFuture(cause));
+ when(mockWriteTx.commit()).thenReturn(FluentFutures.immediateFailedFluentFuture(cause));
actorRef.tell(new SubmitRequest(), probe.ref());
- verify(mockWriteTx).submit();
+ verify(mockWriteTx).commit();
final Failure response = probe.expectMsgClass(Failure.class);
assertEquals(cause, response.cause());
}
@Test
- public void testIdleTimeout() throws Exception {
+ public void testIdleTimeout() {
final TestProbe testProbe = new TestProbe(system);
testProbe.watch(actorRef);
verify(mockWriteTx, timeout(3000)).cancel();
package org.opendaylight.netconf.topology.impl;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
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.netconf.topology.api.NetconfConnectorFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
final InstanceIdentifier<Node> nodePath = TOPOLOGY_PATH.child(Node.class, nodeKey);
final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
transaction.put(LogicalDatastoreType.CONFIGURATION, nodePath, node);
- Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
+ transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(@Nullable final Void result) {
+ public void onSuccess(@Nullable final CommitInfo result) {
LOG.debug("Node {} was successfully added to the topology", instanceName);
}
package org.opendaylight.netconf.topology.impl;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import io.netty.util.concurrent.EventExecutor;
import java.util.Collection;
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.sal.connect.api.RemoteDeviceHandler;
import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
final WriteTransaction wtx = dataBroker.newWriteOnlyTransaction();
initTopology(wtx, LogicalDatastoreType.CONFIGURATION);
initTopology(wtx, LogicalDatastoreType.OPERATIONAL);
- Futures.addCallback(wtx.submit(), new FutureCallback<Void>() {
+ wtx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
LOG.debug("topology initialization successful");
}
* 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.topology.impl;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
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.common.api.data.TransactionCommitFailedException;
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;
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;
when(dataBroker.newWriteOnlyTransaction()).thenReturn(wtx);
doNothing().when(wtx)
.merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(DataObject.class));
- when(wtx.submit()).thenReturn(Futures.<Void, TransactionCommitFailedException>immediateCheckedFuture(null));
+ doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(wtx).commit();
topology.init();
//verify initialization of topology
import java.util.EnumMap;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
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.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker;
tx.put(LogicalDatastoreType.OPERATIONAL, yangInstanceIdentifier, netconf);
try {
- tx.submit().checkedGet();
+ tx.commit().get();
LOG.debug("Netconf state updated successfully");
- } catch (TransactionCommitFailedException e) {
+ } catch (InterruptedException | ExecutionException e) {
LOG.warn("Unable to update netconf state", e);
}