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%2Fentityownership%2FEntityOwnershipShardTest.java;h=af347903f8e9e1fabb4cfba980f682444c368987;hb=a47dd7a5d21ca68804a6d0e2e3ca765f223c2ef4;hp=3162981029916d2270c78752d5fa24cebfa20880;hpb=4d1709660b7af992d4c382a2a38debb5c7d64fb9;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java index 3162981029..af347903f8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java @@ -64,14 +64,15 @@ import org.opendaylight.controller.cluster.datastore.modification.Modification; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.TestActorFactory; import org.opendaylight.controller.cluster.raft.base.messages.ElectionTimeout; +import org.opendaylight.controller.cluster.raft.base.messages.TimeoutNow; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; import org.opendaylight.controller.cluster.raft.messages.RequestVote; import org.opendaylight.controller.cluster.raft.messages.RequestVoteReply; import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper; -import org.opendaylight.controller.md.sal.common.api.clustering.Entity; -import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange; -import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener; +import org.opendaylight.mdsal.eos.dom.api.DOMEntity; +import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange; +import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -115,7 +116,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ShardTestKit.waitUntilLeader(shard); YangInstanceIdentifier entityId = ENTITY_ID1; - Entity entity = new Entity(ENTITY_TYPE, entityId); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, entityId); shard.tell(new RegisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); @@ -139,7 +140,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { withDispatcher(Dispatchers.DefaultDispatcherId())); YangInstanceIdentifier entityId = ENTITY_ID1; - Entity entity = new Entity(ENTITY_TYPE, entityId); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, entityId); shard.tell(new RegisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); @@ -174,7 +175,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ShardTestKit.waitUntilLeader(shard); YangInstanceIdentifier entityId = ENTITY_ID1; - Entity entity = new Entity(ENTITY_TYPE, entityId); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, entityId); shard.tell(new RegisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); @@ -214,7 +215,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { Uninterruptibles.sleepUninterruptibly(500, TimeUnit.MILLISECONDS); YangInstanceIdentifier entityId = ENTITY_ID1; - Entity entity = new Entity(ENTITY_TYPE, entityId); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, entityId); shard.tell(new RegisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); @@ -244,7 +245,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { shard.tell(new AppendEntries(1L, peerId, -1L, -1L, Collections.emptyList(), -1L, -1L, DataStoreVersions.CURRENT_VERSION), peer); - shard.tell(new RegisterCandidateLocal(new Entity(ENTITY_TYPE, ENTITY_ID1)), kit.getRef()); + shard.tell(new RegisterCandidateLocal(new DOMEntity(ENTITY_TYPE, ENTITY_ID1)), kit.getRef()); kit.expectMsgClass(SuccessReply.class); MockLeader leader = peer.underlyingActor(); @@ -260,7 +261,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { shard.tell(dataStoreContextBuilder.shardTransactionCommitTimeoutInSeconds(1).build(), ActorRef.noSender()); - shard.tell(new RegisterCandidateLocal(new Entity(ENTITY_TYPE, ENTITY_ID2)), kit.getRef()); + shard.tell(new RegisterCandidateLocal(new DOMEntity(ENTITY_TYPE, ENTITY_ID2)), kit.getRef()); kit.expectMsgClass(SuccessReply.class); assertEquals("Leader received BatchedModifications", true, Uninterruptibles.awaitUninterruptibly( @@ -277,7 +278,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { for(int i = 1; i <= max; i++) { YangInstanceIdentifier id = YangInstanceIdentifier.of(QName.create("test", "2015-08-14", "test" + i)); entityIds.add(id); - shard.tell(new RegisterCandidateLocal(new Entity(ENTITY_TYPE, id)), kit.getRef()); + shard.tell(new RegisterCandidateLocal(new DOMEntity(ENTITY_TYPE, id)), kit.getRef()); } assertEquals("Leader received BatchedModifications", true, Uninterruptibles.awaitUninterruptibly( @@ -301,7 +302,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { TestActorRef shard = actorFactory.createTestActor(newShardProps()); ShardTestKit.waitUntilLeader(shard); - Entity entity = new Entity(ENTITY_TYPE, ENTITY_ID1); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); // Register @@ -333,7 +334,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { TestActorRef shard = actorFactory.createTestActor(newShardProps()); ShardTestKit.waitUntilLeader(shard); - Entity entity = new Entity(ENTITY_TYPE, ENTITY_ID1); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); ShardDataTree shardDataTree = shard.underlyingActor().getDataStore(); // Add a remote candidate @@ -418,7 +419,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ImmutableMap.builder().put(peerId1.toString(), peer1.path().toString()). put(peerId2.toString(), peer2.path().toString()).build(), LOCAL_MEMBER_NAME, EntityOwnerSelectionStrategyConfig.newBuilder().build()). withDispatcher(Dispatchers.DefaultDispatcherId()), leaderId.toString()); - leader.tell(ElectionTimeout.INSTANCE, leader); + leader.tell(TimeoutNow.INSTANCE, leader); ShardTestKit.waitUntilLeader(leader); @@ -429,7 +430,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { // Add candidates for entity1 with the local leader as the owner - leader.tell(new RegisterCandidateLocal(new Entity(ENTITY_TYPE, ENTITY_ID1)), kit.getRef()); + leader.tell(new RegisterCandidateLocal(new DOMEntity(ENTITY_TYPE, ENTITY_ID1)), kit.getRef()); kit.expectMsgClass(SuccessReply.class); verifyCommittedEntityCandidate(leader, ENTITY_TYPE, ENTITY_ID1, LOCAL_MEMBER_NAME); @@ -454,7 +455,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { commitModification(leader, entityOwnersWithCandidate(ENTITY_TYPE, ENTITY_ID3, peerMemberName2), kit); verifyCommittedEntityCandidate(leader, ENTITY_TYPE, ENTITY_ID3, peerMemberName2); - leader.tell(new RegisterCandidateLocal(new Entity(ENTITY_TYPE, ENTITY_ID3)), kit.getRef()); + leader.tell(new RegisterCandidateLocal(new DOMEntity(ENTITY_TYPE, ENTITY_ID3)), kit.getRef()); kit.expectMsgClass(SuccessReply.class); verifyCommittedEntityCandidate(leader, ENTITY_TYPE, ENTITY_ID3, LOCAL_MEMBER_NAME); @@ -566,7 +567,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { leader.tell(PoisonPill.getInstance(), ActorRef.noSender()); peer2.tell(new PeerDown(leaderId.getMemberName(), leaderId.toString()), ActorRef.noSender()); - peer2.tell(ElectionTimeout.INSTANCE, peer2); + peer2.tell(TimeoutNow.INSTANCE, peer2); ShardTestKit.waitUntilLeader(peer2); @@ -591,15 +592,16 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { TestActorRef leader = actorFactory.createTestActor(newShardProps(leaderId, ImmutableMap.builder().put(localId.toString(), shard.path().toString()).build(), - LOCAL_MEMBER_NAME, EntityOwnerSelectionStrategyConfig.newBuilder().build()).withDispatcher(Dispatchers.DefaultDispatcherId()), leaderId.toString()); - leader.tell(ElectionTimeout.INSTANCE, leader); + leaderId.getMemberName().getName(), EntityOwnerSelectionStrategyConfig.newBuilder().build()) + .withDispatcher(Dispatchers.DefaultDispatcherId()), leaderId.toString()); + leader.tell(TimeoutNow.INSTANCE, leader); ShardTestKit.waitUntilLeader(leader); shard.tell(new PeerAddressResolved(leaderId.toString(), leader.path().toString()), ActorRef.noSender()); - Entity entity = new Entity(ENTITY_TYPE, ENTITY_ID1); - EntityOwnershipListener listener = mock(EntityOwnershipListener.class); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); + DOMEntityOwnershipListener listener = mock(DOMEntityOwnershipListener.class); shard.tell(new RegisterListenerLocal(listener, ENTITY_TYPE), kit.getRef()); kit.expectMsgClass(SuccessReply.class); @@ -608,7 +610,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { shard.tell(new RegisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); - verifyCommittedEntityCandidate(shard, entity.getType(), entity.getId(), LOCAL_MEMBER_NAME); + verifyCommittedEntityCandidate(shard, entity.getType(), entity.getIdentifier(), LOCAL_MEMBER_NAME); verify(listener, timeout(5000)).ownershipChanged(ownershipChange(entity, false, true, true)); reset(listener); @@ -621,7 +623,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { // Since the the shard has a local candidate registered, it should re-add its candidate to the entity. - verifyCommittedEntityCandidate(shard, entity.getType(), entity.getId(), LOCAL_MEMBER_NAME); + verifyCommittedEntityCandidate(shard, entity.getType(), entity.getIdentifier(), LOCAL_MEMBER_NAME); verify(listener, timeout(5000)).ownershipChanged(ownershipChange(entity, false, true, true)); // Unregister the local candidate and verify it's removed and no re-added. @@ -629,9 +631,9 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { shard.tell(new UnregisterCandidateLocal(entity), kit.getRef()); kit.expectMsgClass(SuccessReply.class); - verifyNoEntityCandidate(shard, entity.getType(), entity.getId(), LOCAL_MEMBER_NAME); + verifyNoEntityCandidate(shard, entity.getType(), entity.getIdentifier(), LOCAL_MEMBER_NAME); Uninterruptibles.sleepUninterruptibly(500, TimeUnit.MILLISECONDS); - verifyNoEntityCandidate(shard, entity.getType(), entity.getId(), LOCAL_MEMBER_NAME); + verifyNoEntityCandidate(shard, entity.getType(), entity.getIdentifier(), LOCAL_MEMBER_NAME); } @Test @@ -642,11 +644,11 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ShardDataTree shardDataTree = shard.underlyingActor().getDataStore(); String otherEntityType = "otherEntityType"; - Entity entity1 = new Entity(ENTITY_TYPE, ENTITY_ID1); - Entity entity2 = new Entity(ENTITY_TYPE, ENTITY_ID2); - Entity entity3 = new Entity(ENTITY_TYPE, ENTITY_ID3); - Entity entity4 = new Entity(otherEntityType, ENTITY_ID3); - EntityOwnershipListener listener = mock(EntityOwnershipListener.class); + DOMEntity entity1 = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); + DOMEntity entity2 = new DOMEntity(ENTITY_TYPE, ENTITY_ID2); + DOMEntity entity3 = new DOMEntity(ENTITY_TYPE, ENTITY_ID3); + DOMEntity entity4 = new DOMEntity(otherEntityType, ENTITY_ID3); + DOMEntityOwnershipListener listener = mock(DOMEntityOwnershipListener.class); // Register listener @@ -677,9 +679,9 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { // Register remote candidate for entity1 String remoteMemberName = "remoteMember"; - writeNode(ENTITY_OWNERS_PATH, entityOwnersWithCandidate(ENTITY_TYPE, entity1.getId(), remoteMemberName), + writeNode(ENTITY_OWNERS_PATH, entityOwnersWithCandidate(ENTITY_TYPE, entity1.getIdentifier(), remoteMemberName), shardDataTree); - verifyCommittedEntityCandidate(shard, ENTITY_TYPE, entity1.getId(), remoteMemberName); + verifyCommittedEntityCandidate(shard, ENTITY_TYPE, entity1.getIdentifier(), remoteMemberName); // Unregister the local candidate for entity1 and verify listener is notified @@ -697,9 +699,9 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { shard.tell(new RegisterCandidateLocal(entity3), kit.getRef()); kit.expectMsgClass(SuccessReply.class); - verifyOwner(shard, ENTITY_TYPE, entity3.getId(), LOCAL_MEMBER_NAME); + verifyOwner(shard, ENTITY_TYPE, entity3.getIdentifier(), LOCAL_MEMBER_NAME); Uninterruptibles.sleepUninterruptibly(500, TimeUnit.MILLISECONDS); - verify(listener, never()).ownershipChanged(any(EntityOwnershipChange.class)); + verify(listener, never()).ownershipChanged(any(DOMEntityOwnershipChange.class)); // Re-register the listener and verify it gets notified of currently owned entities @@ -832,7 +834,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { TestEntityOwnershipShard(ShardIdentifier name, Map peerAddresses, DatastoreContext datastoreContext) { super(newBuilder().id(name).peerAddresses(peerAddresses).datastoreContext(datastoreContext). - schemaContext(SCHEMA_CONTEXT).localMemberName(MemberName.forName(LOCAL_MEMBER_NAME))); + schemaContext(SCHEMA_CONTEXT).localMemberName(name.getMemberName())); } @Override @@ -898,7 +900,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ImmutableMap.of(peerId.toString(), peer.path().toString()))); ShardTestKit.waitUntilLeader(shard); - Entity entity = new Entity(ENTITY_TYPE, ENTITY_ID1); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); ShardDataTree shardDataTree = shard.underlyingActor().getDataStore(); // Add a remote candidate @@ -941,7 +943,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { ImmutableMap.of(follower1Id.toString(), follower2.path().toString(), follower2Id.toString(), follower2.path().toString()))); ShardTestKit.waitUntilLeader(shard); - Entity entity = new Entity(ENTITY_TYPE, ENTITY_ID1); + DOMEntity entity = new DOMEntity(ENTITY_TYPE, ENTITY_ID1); ShardDataTree shardDataTree = shard.underlyingActor().getDataStore(); // Add a remote candidate