X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fshardmanager%2FShardManagerTest.java;h=f6bc45d2087910e6191e249db15f5347dc30c2de;hp=7329b6aeccde6afc811865e2fe4339a5bbf90a90;hb=5b97f0fb5068bb3eb9b77b4509164707c5f35cd6;hpb=40e06bab92b88b337e2642bf9981d7aa6f7baedb diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java index 7329b6aecc..f6bc45d208 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java @@ -17,10 +17,8 @@ import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.timeout; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -48,7 +46,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.util.concurrent.Uninterruptibles; -import java.net.URI; import java.time.Duration; import java.util.AbstractMap; import java.util.Arrays; @@ -94,8 +91,6 @@ import org.opendaylight.controller.cluster.datastore.messages.FindPrimary; import org.opendaylight.controller.cluster.datastore.messages.LocalPrimaryShardFound; import org.opendaylight.controller.cluster.datastore.messages.LocalShardFound; import org.opendaylight.controller.cluster.datastore.messages.LocalShardNotFound; -import org.opendaylight.controller.cluster.datastore.messages.PeerDown; -import org.opendaylight.controller.cluster.datastore.messages.PeerUp; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.messages.RemotePrimaryShardFound; import org.opendaylight.controller.cluster.datastore.messages.RemoveShardReplica; @@ -129,8 +124,9 @@ import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Await; @@ -142,7 +138,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { private static final MemberName MEMBER_2 = MemberName.forName("member-2"); private static final MemberName MEMBER_3 = MemberName.forName("member-3"); - private static SchemaContext TEST_SCHEMA_CONTEXT; + private static EffectiveModelContext TEST_SCHEMA_CONTEXT; private final String shardMgrID = ShardManagerIdentifier.builder().type(shardMrgIDSuffix).build().toString(); @@ -739,16 +735,11 @@ public class ShardManagerTest extends AbstractShardManagerTest { kit.getRef()); shardManager1.underlyingActor().waitForUnreachableMember(); - - PeerDown peerDown = MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerDown.class); - assertEquals("getMemberName", MEMBER_2, peerDown.getMemberName()); MessageCollectorActor.clearMessages(mockShardActor1); shardManager1.tell(MockClusterWrapper.createMemberRemoved("member-2", "akka://cluster-test@127.0.0.1:2558"), kit.getRef()); - MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerDown.class); - shardManager1.tell(new FindPrimary("default", true), kit.getRef()); kit.expectMsgClass(Duration.ofSeconds(5), NoShardLeaderException.class); @@ -758,10 +749,6 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager1.underlyingActor().waitForReachableMember(); - PeerUp peerUp = MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerUp.class); - assertEquals("getMemberName", MEMBER_2, peerUp.getMemberName()); - MessageCollectorActor.clearMessages(mockShardActor1); - shardManager1.tell(new FindPrimary("default", true), kit.getRef()); RemotePrimaryShardFound found1 = kit.expectMsgClass(Duration.ofSeconds(5), RemotePrimaryShardFound.class); @@ -771,8 +758,6 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager1.tell(MockClusterWrapper.createMemberUp("member-2", "akka://cluster-test@127.0.0.1:2558"), kit.getRef()); - MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerUp.class); - // Test FindPrimary wait succeeds after reachable member event. shardManager1.tell(MockClusterWrapper.createUnreachableMember("member-2", @@ -1049,13 +1034,11 @@ public class ShardManagerTest extends AbstractShardManagerTest { String memberId = "member-1-shard-default-" + shardMrgIDSuffix; shardManager.handleCommand(new RoleChangeNotification( memberId, RaftState.Candidate.name(), RaftState.Leader.name())); - - verify(ready, never()).countDown(); + assertFalse(ready.isDone()); shardManager.handleCommand(new ShardLeaderStateChanged(memberId, memberId, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION)); - - verify(ready, times(1)).countDown(); + assertTrue(ready.isDone()); } @Test @@ -1065,16 +1048,14 @@ public class ShardManagerTest extends AbstractShardManagerTest { String memberId = "member-1-shard-default-" + shardMrgIDSuffix; shardManager.handleCommand(new RoleChangeNotification(memberId, null, RaftState.Follower.name())); - - verify(ready, never()).countDown(); + assertFalse(ready.isDone()); shardManager.handleCommand(MockClusterWrapper.createMemberUp("member-2", kit.getRef().path().toString())); shardManager.handleCommand( new ShardLeaderStateChanged(memberId, "member-2-shard-default-" + shardMrgIDSuffix, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION)); - - verify(ready, times(1)).countDown(); + assertTrue(ready.isDone()); } @Test @@ -1084,16 +1065,14 @@ public class ShardManagerTest extends AbstractShardManagerTest { String memberId = "member-1-shard-default-" + shardMrgIDSuffix; shardManager.handleCommand(new RoleChangeNotification(memberId, null, RaftState.Follower.name())); - - verify(ready, never()).countDown(); + assertFalse(ready.isDone()); shardManager.handleCommand( new ShardLeaderStateChanged(memberId, "member-2-shard-default-" + shardMrgIDSuffix, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION)); shardManager.handleCommand(MockClusterWrapper.createMemberUp("member-2", kit.getRef().path().toString())); - - verify(ready, times(1)).countDown(); + assertTrue(ready.isDone()); } @Test @@ -1102,8 +1081,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager.handleCommand(new RoleChangeNotification("unknown", RaftState.Candidate.name(), RaftState.Leader.name())); - - verify(ready, never()).countDown(); + assertFalse(ready.isDone()); } @Test @@ -1238,14 +1216,14 @@ public class ShardManagerTest extends AbstractShardManagerTest { .createActor(newShardMgrProps(new ConfigurationImpl(new EmptyModuleShardConfigProvider())) .withDispatcher(Dispatchers.DefaultDispatcherId())); - SchemaContext schemaContext = TEST_SCHEMA_CONTEXT; + EffectiveModelContext schemaContext = TEST_SCHEMA_CONTEXT; shardManager.tell(new UpdateSchemaContext(schemaContext), ActorRef.noSender()); DatastoreContext datastoreContext = DatastoreContext.newBuilder().shardElectionTimeoutFactor(100) .persistent(false).build(); Shard.Builder shardBuilder = Shard.builder(); - ModuleShardConfiguration config = new ModuleShardConfiguration(URI.create("foo-ns"), "foo-module", + ModuleShardConfiguration config = new ModuleShardConfiguration(XMLNamespace.of("foo-ns"), "foo-module", "foo", null, members("member-1", "member-5", "member-6")); shardManager.tell(new CreateShard(config, shardBuilder, datastoreContext), kit.getRef()); @@ -1290,7 +1268,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), ActorRef.noSender()); Shard.Builder shardBuilder = Shard.builder(); - ModuleShardConfiguration config = new ModuleShardConfiguration(URI.create("foo-ns"), "foo-module", + ModuleShardConfiguration config = new ModuleShardConfiguration(XMLNamespace.of("foo-ns"), "foo-module", "foo", null, members("member-5", "member-6")); shardManager.tell(new CreateShard(config, shardBuilder, null), kit.getRef()); @@ -1316,13 +1294,13 @@ public class ShardManagerTest extends AbstractShardManagerTest { Shard.Builder shardBuilder = Shard.builder(); - ModuleShardConfiguration config = new ModuleShardConfiguration(URI.create("foo-ns"), "foo-module", + ModuleShardConfiguration config = new ModuleShardConfiguration(XMLNamespace.of("foo-ns"), "foo-module", "foo", null, members("member-1")); shardManager.tell(new CreateShard(config, shardBuilder, null), kit.getRef()); kit.expectMsgClass(Duration.ofSeconds(5), Success.class); - SchemaContext schemaContext = TEST_SCHEMA_CONTEXT; + EffectiveModelContext schemaContext = TEST_SCHEMA_CONTEXT; shardManager.tell(new UpdateSchemaContext(schemaContext), ActorRef.noSender()); shardManager.tell(new FindLocalShard("foo", true), kit.getRef()); @@ -1408,7 +1386,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { .put("astronauts", Collections.emptyList()).build()); ShardManagerSnapshot snapshot = - new ShardManagerSnapshot(Arrays.asList("shard1", "shard2", "astronauts"), Collections.emptyMap()); + new ShardManagerSnapshot(Arrays.asList("shard1", "shard2", "astronauts")); DatastoreSnapshot restoreFromSnapshot = new DatastoreSnapshot(shardMrgIDSuffix, snapshot, Collections.emptyList()); TestActorRef shardManager = actorFactory.createTestActor(newTestShardMgrBuilder(mockConfig) @@ -1506,7 +1484,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { // persisted. String[] restoredShards = { "default", "people" }; ShardManagerSnapshot snapshot = - new ShardManagerSnapshot(Arrays.asList(restoredShards), Collections.emptyMap()); + new ShardManagerSnapshot(Arrays.asList(restoredShards)); InMemorySnapshotStore.addSnapshot(shardManagerID, snapshot); Uninterruptibles.sleepUninterruptibly(2, TimeUnit.MILLISECONDS); @@ -1933,7 +1911,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { .put("people", Arrays.asList("member-1", "member-2")).build()); String[] restoredShards = {"default", "astronauts"}; ShardManagerSnapshot snapshot = - new ShardManagerSnapshot(Arrays.asList(restoredShards), Collections.emptyMap()); + new ShardManagerSnapshot(Arrays.asList(restoredShards)); InMemorySnapshotStore.addSnapshot("shard-manager-" + shardMrgIDSuffix, snapshot); // create shardManager to come up with restored data @@ -2267,7 +2245,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { AbstractGenericCreator(final Class shardManagerClass) { this.shardManagerClass = shardManagerClass; - cluster(new MockClusterWrapper()).configuration(new MockConfiguration()).waitTillReadyCountDownLatch(ready) + cluster(new MockClusterWrapper()).configuration(new MockConfiguration()).readinessFuture(ready) .primaryShardInfoCache(new PrimaryShardInfoFutureCache()); }