X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FAbstractShardTest.java;h=b6f464a0e8d157317a8caa3e9769801de243d94a;hb=70b924258e6c87219c38bcfefb3781ee3d2e2d02;hp=163c15baf6c09f23d3b11a6fc7ccf243a04f2871;hpb=561058be77594a026abbdbe82616fc65c7f58f48;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java index 163c15baf6..b6f464a0e8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java @@ -30,6 +30,7 @@ import com.google.common.base.Optional; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.Uninterruptibles; +import java.io.IOException; import java.util.Collections; import java.util.Set; import java.util.concurrent.CountDownLatch; @@ -42,12 +43,15 @@ import org.junit.Assert; import org.junit.Before; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import org.opendaylight.controller.cluster.access.concepts.MemberName; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; import org.opendaylight.controller.cluster.datastore.messages.ForwardedReadyTransaction; import org.opendaylight.controller.cluster.datastore.modification.MutableCompositeModification; import org.opendaylight.controller.cluster.datastore.modification.WriteModification; +import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload; import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.Snapshot; @@ -56,6 +60,7 @@ import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; import org.opendaylight.controller.md.cluster.datastore.model.CarsModel; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; +import org.opendaylight.yangtools.concepts.Identifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -86,8 +91,8 @@ public abstract class AbstractShardTest extends AbstractActorTest{ private static final AtomicInteger NEXT_SHARD_NUM = new AtomicInteger(); - protected final ShardIdentifier shardID = ShardIdentifier.builder().memberName("member-1") - .shardName("inventory").type("config" + NEXT_SHARD_NUM.getAndIncrement()).build(); + protected final ShardIdentifier shardID = ShardIdentifier.create("inventory", MemberName.forName("member-1"), + "config" + NEXT_SHARD_NUM.getAndIncrement()); protected final Builder dataStoreContextBuilder = DatastoreContext.newBuilder(). shardJournalRecoveryLogBatchSize(3).shardSnapshotBatchCount(5000). @@ -128,8 +133,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{ final CountDownLatch recoveryComplete = new CountDownLatch(1); @SuppressWarnings("serial") - final - Creator creator = new Creator() { + final Creator creator = new Creator() { @Override public Shard create() throws Exception { return new Shard(newShardBuilder()) { @@ -207,7 +211,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{ final MutableCompositeModification modification, final Function> preCommit) { - final ReadWriteShardDataTreeTransaction tx = dataStore.newReadWriteTransaction("setup-mock-" + cohortName, null); + final ReadWriteShardDataTreeTransaction tx = dataStore.newReadWriteTransaction(nextTransactionId()); tx.getSnapshot().write(path, data); final ShardDataTreeCohort cohort = createDelegatingMockCohort(cohortName, dataStore.finishTransaction(tx), preCommit); @@ -269,9 +273,8 @@ public abstract class AbstractShardTest extends AbstractActorTest{ } protected Object prepareReadyTransactionMessage(boolean remoteReadWriteTransaction, Shard shard, ShardDataTreeCohort cohort, - String transactionID, - MutableCompositeModification modification, - boolean doCommitOnReady) { + TransactionIdentifier transactionID, MutableCompositeModification modification, + boolean doCommitOnReady) { if(remoteReadWriteTransaction){ return prepareForwardedReadyTransaction(cohort, transactionID, CURRENT_VERSION, doCommitOnReady); @@ -298,36 +301,35 @@ public abstract class AbstractShardTest extends AbstractActorTest{ } protected ForwardedReadyTransaction prepareForwardedReadyTransaction(ShardDataTreeCohort cohort, - String transactionID, short version, boolean doCommitOnReady) { + TransactionIdentifier transactionID, short version, boolean doCommitOnReady) { return new ForwardedReadyTransaction(transactionID, version, new ReadWriteShardDataTreeTransaction(newShardDataTreeTransactionParent(cohort), transactionID, mock(DataTreeModification.class)), doCommitOnReady); } protected Object prepareReadyTransactionMessage(boolean remoteReadWriteTransaction, Shard shard, ShardDataTreeCohort cohort, - String transactionID, - MutableCompositeModification modification) { + TransactionIdentifier transactionID, MutableCompositeModification modification) { return prepareReadyTransactionMessage(remoteReadWriteTransaction, shard, cohort, transactionID, modification, false); } protected void setupCohortDecorator(Shard shard, final ShardDataTreeCohort cohort) { shard.getCommitCoordinator().setCohortDecorator(new ShardCommitCoordinator.CohortDecorator() { @Override - public ShardDataTreeCohort decorate(String transactionID, ShardDataTreeCohort actual) { + public ShardDataTreeCohort decorate(Identifier transactionID, ShardDataTreeCohort actual) { return cohort; } }); } - protected BatchedModifications prepareBatchedModifications(String transactionID, + protected BatchedModifications prepareBatchedModifications(TransactionIdentifier transactionID, MutableCompositeModification modification) { return prepareBatchedModifications(transactionID, modification, false); } - private static BatchedModifications prepareBatchedModifications(String transactionID, + private static BatchedModifications prepareBatchedModifications(TransactionIdentifier transactionID, MutableCompositeModification modification, boolean doCommitOnReady) { - final BatchedModifications batchedModifications = new BatchedModifications(transactionID, CURRENT_VERSION, null); + final BatchedModifications batchedModifications = new BatchedModifications(transactionID, CURRENT_VERSION); batchedModifications.addModification(modification); batchedModifications.setReady(true); batchedModifications.setDoCommitOnReady(doCommitOnReady); @@ -345,9 +347,9 @@ public abstract class AbstractShardTest extends AbstractActorTest{ return store.takeSnapshot().readNode(id).orNull(); } - public static void writeToStore(final TestActorRef shard, final YangInstanceIdentifier id, + public void writeToStore(final TestActorRef shard, final YangInstanceIdentifier id, final NormalizedNode node) throws InterruptedException, ExecutionException { - Future future = Patterns.ask(shard, newBatchedModifications("tx", id, node, true, true, 1), + Future future = Patterns.ask(shard, newBatchedModifications(nextTransactionId(), id, node, true, true, 1), new Timeout(5, TimeUnit.SECONDS)); try { Await.ready(future, Duration.create(5, TimeUnit.SECONDS)); @@ -358,7 +360,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{ public static void writeToStore(final ShardDataTree store, final YangInstanceIdentifier id, final NormalizedNode node) throws InterruptedException, ExecutionException { - final ReadWriteShardDataTreeTransaction transaction = store.newReadWriteTransaction("writeToStore", null); + final ReadWriteShardDataTreeTransaction transaction = store.newReadWriteTransaction(nextTransactionId()); transaction.getSnapshot().write(id, node); final ShardDataTreeCohort cohort = transaction.ready(); @@ -367,9 +369,9 @@ public abstract class AbstractShardTest extends AbstractActorTest{ cohort.commit(); } - public static void mergeToStore(final ShardDataTree store, final YangInstanceIdentifier id, + public void mergeToStore(final ShardDataTree store, final YangInstanceIdentifier id, final NormalizedNode node) throws InterruptedException, ExecutionException { - final ReadWriteShardDataTreeTransaction transaction = store.newReadWriteTransaction("writeToStore", null); + final ReadWriteShardDataTreeTransaction transaction = store.newReadWriteTransaction(nextTransactionId()); transaction.getSnapshot().merge(id, node); final ShardDataTreeCohort cohort = transaction.ready(); @@ -395,7 +397,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{ writeToStore(testStore, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME)); - final NormalizedNode root = readStore(testStore, YangInstanceIdentifier.builder().build()); + final NormalizedNode root = readStore(testStore, YangInstanceIdentifier.EMPTY); InMemorySnapshotStore.addSnapshot(shardID.toString(), Snapshot.create( SerializationUtils.serializeNormalizedNode(root), @@ -403,22 +405,18 @@ public abstract class AbstractShardTest extends AbstractActorTest{ return testStore; } - static DataTreeCandidatePayload payloadForModification(final DataTree source, final DataTreeModification mod) throws DataValidationFailedException { + static CommitTransactionPayload payloadForModification(final DataTree source, final DataTreeModification mod, + final TransactionIdentifier transactionId) throws DataValidationFailedException, IOException { source.validate(mod); final DataTreeCandidate candidate = source.prepare(mod); source.commit(candidate); - return DataTreeCandidatePayload.create(candidate); + return CommitTransactionPayload.create(transactionId, candidate); } - static BatchedModifications newBatchedModifications(final String transactionID, final YangInstanceIdentifier path, - final NormalizedNode data, final boolean ready, final boolean doCommitOnReady, final int messagesSent) { - return newBatchedModifications(transactionID, null, path, data, ready, doCommitOnReady, messagesSent); - } - - static BatchedModifications newBatchedModifications(final String transactionID, final String transactionChainID, + static BatchedModifications newBatchedModifications(final TransactionIdentifier transactionID, final YangInstanceIdentifier path, final NormalizedNode data, final boolean ready, final boolean doCommitOnReady, final int messagesSent) { - final BatchedModifications batched = new BatchedModifications(transactionID, CURRENT_VERSION, transactionChainID); + final BatchedModifications batched = new BatchedModifications(transactionID, CURRENT_VERSION); batched.addModification(new WriteModification(path, data)); batched.setReady(ready); batched.setDoCommitOnReady(doCommitOnReady); @@ -456,7 +454,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{ final DataTreeCandidateTip mockCandidate = mock(DataTreeCandidateTip.class, name); final DataTreeCandidateNode mockCandidateNode = mock(DataTreeCandidateNode.class, name + "-node"); doReturn(ModificationType.UNMODIFIED).when(mockCandidateNode).getModificationType(); - doReturn(YangInstanceIdentifier.builder().build()).when(mockCandidate).getRootPath(); + doReturn(YangInstanceIdentifier.EMPTY).when(mockCandidate).getRootPath(); doReturn(mockCandidateNode).when(mockCandidate).getRootNode(); return mockCandidate; }