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%2Fsharding%2FDistributedShardedDOMDataTreeRemotingTest.java;h=749d69987d70218dc57f6842c4266256fd9a88e5;hb=refs%2Fchanges%2F61%2F95161%2F6;hp=b2ef45a3dd357234fe2a7348e121a528e356d8c4;hpb=009cb4dd8cd415e963b321d5d59d55146903b462;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeRemotingTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeRemotingTest.java index b2ef45a3dd..749d69987d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeRemotingTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeRemotingTest.java @@ -21,7 +21,7 @@ import akka.actor.ActorSystem; import akka.actor.Address; import akka.actor.AddressFromURIString; import akka.cluster.Cluster; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import com.google.common.collect.Lists; import com.typesafe.config.ConfigFactory; import java.util.Collections; @@ -41,7 +41,6 @@ import org.opendaylight.controller.cluster.datastore.IntegrationTestKit; import org.opendaylight.controller.cluster.datastore.utils.ClusterUtils; import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; -import org.opendaylight.controller.cluster.sharding.DistributedShardFactory.DistributedShardRegistration; import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -56,6 +55,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLe import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Deprecated(forRemoval = true) public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { private static final Logger LOG = LoggerFactory.getLogger(DistributedShardedDOMDataTreeRemotingTest.class); @@ -128,21 +128,25 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { followerOperDatastore.close(); } - JavaTestKit.shutdownActorSystem(leaderSystem, null, Boolean.TRUE); - JavaTestKit.shutdownActorSystem(followerSystem, null, Boolean.TRUE); + TestKit.shutdownActorSystem(leaderSystem, true); + TestKit.shutdownActorSystem(followerSystem, true); InMemoryJournal.clear(); InMemorySnapshotStore.clear(); } private void initEmptyDatastores() throws Exception { + initEmptyDatastores(MODULE_SHARDS_CONFIG); + } + + private void initEmptyDatastores(final String moduleShardsConfig) throws Exception { leaderTestKit = new IntegrationTestKit(leaderSystem, leaderDatastoreContextBuilder); leaderConfigDatastore = leaderTestKit.setupDistributedDataStore( - "config", MODULE_SHARDS_CONFIG, true, + "config", moduleShardsConfig, true, SchemaContextHelper.distributedShardedDOMDataTreeSchemaContext()); leaderOperDatastore = leaderTestKit.setupDistributedDataStore( - "operational", MODULE_SHARDS_CONFIG, true, + "operational", moduleShardsConfig, true, SchemaContextHelper.distributedShardedDOMDataTreeSchemaContext()); leaderShardFactory = new DistributedShardedDOMDataTree(leaderSystemProvider, @@ -152,9 +156,9 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { followerTestKit = new IntegrationTestKit(followerSystem, followerDatastoreContextBuilder); followerConfigDatastore = followerTestKit.setupDistributedDataStore( - "config", MODULE_SHARDS_CONFIG, true, SchemaContextHelper.distributedShardedDOMDataTreeSchemaContext()); + "config", moduleShardsConfig, true, SchemaContextHelper.distributedShardedDOMDataTreeSchemaContext()); followerOperDatastore = followerTestKit.setupDistributedDataStore( - "operational", MODULE_SHARDS_CONFIG, true, + "operational", moduleShardsConfig, true, SchemaContextHelper.distributedShardedDOMDataTreeSchemaContext()); followerShardFactory = new DistributedShardedDOMDataTree(followerSystemProvider, @@ -163,14 +167,17 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { followerTestKit.waitForMembersUp("member-1"); + LOG.info("Initializing leader DistributedShardedDOMDataTree"); leaderShardFactory.init(); - followerShardFactory.init(); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), - ClusterUtils.getCleanShardName(YangInstanceIdentifier.EMPTY)); + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), + ClusterUtils.getCleanShardName(YangInstanceIdentifier.empty())); - leaderTestKit.waitUntilLeader(leaderOperDatastore.getActorContext(), - ClusterUtils.getCleanShardName(YangInstanceIdentifier.EMPTY)); + leaderTestKit.waitUntilLeader(leaderOperDatastore.getActorUtils(), + ClusterUtils.getCleanShardName(YangInstanceIdentifier.empty())); + + LOG.info("Initializing follower DistributedShardedDOMDataTree"); + followerShardFactory.init(); } @Test @@ -186,15 +193,15 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME, AbstractTest.MEMBER_2_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier())); - final ActorRef leaderShardManager = leaderConfigDatastore.getActorContext().getShardManager(); + final ActorRef leaderShardManager = leaderConfigDatastore.getActorUtils().getShardManager(); - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier()))); - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier()))); final Set peers = new HashSet<>(); @@ -252,9 +259,9 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier())); - findLocalShard(followerConfigDatastore.getActorContext(), + findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier())); final Set peers = new HashSet<>(); @@ -278,7 +285,7 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { cursor.close(); LOG.warn("Got to pre submit"); - tx.submit().checkedGet(); + tx.commit().get(); shardRegistration.close().toCompletableFuture().get(); @@ -309,39 +316,39 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { Lists.newArrayList(AbstractTest.MEMBER_NAME, AbstractTest.MEMBER_2_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.OUTER_CONTAINER_PATH)); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.INNER_LIST_PATH)); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.JUNK_PATH)); // check leader has local shards - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.OUTER_CONTAINER_PATH))); - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.INNER_LIST_PATH))); - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.JUNK_PATH))); // check follower has local shards - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.OUTER_CONTAINER_PATH))); - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.INNER_LIST_PATH))); - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.JUNK_PATH))); LOG.debug("Closing registrations"); @@ -351,30 +358,30 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { reg3.close().toCompletableFuture().get(); reg4.close().toCompletableFuture().get(); - waitUntilShardIsDown(leaderConfigDatastore.getActorContext(), + waitUntilShardIsDown(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - waitUntilShardIsDown(leaderConfigDatastore.getActorContext(), + waitUntilShardIsDown(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.OUTER_CONTAINER_PATH)); - waitUntilShardIsDown(leaderConfigDatastore.getActorContext(), + waitUntilShardIsDown(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.INNER_LIST_PATH)); - waitUntilShardIsDown(leaderConfigDatastore.getActorContext(), + waitUntilShardIsDown(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.JUNK_PATH)); LOG.debug("All leader shards gone"); - waitUntilShardIsDown(followerConfigDatastore.getActorContext(), + waitUntilShardIsDown(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - waitUntilShardIsDown(followerConfigDatastore.getActorContext(), + waitUntilShardIsDown(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.OUTER_CONTAINER_PATH)); - waitUntilShardIsDown(followerConfigDatastore.getActorContext(), + waitUntilShardIsDown(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.INNER_LIST_PATH)); - waitUntilShardIsDown(followerConfigDatastore.getActorContext(), + waitUntilShardIsDown(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.JUNK_PATH)); LOG.debug("All follower shards gone"); @@ -386,19 +393,19 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { LOG.info("testMultipleRegistrationsAtOnePrefix starting"); initEmptyDatastores(); - for (int i = 0; i < 10; i++) { - LOG.debug("Round {}", i); + for (int i = 0; i < 5; i++) { + LOG.info("Round {}", i); final DistributedShardRegistration reg1 = waitOnAsyncTask(leaderShardFactory.createDistributedShard( TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME, AbstractTest.MEMBER_2_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - assertNotNull(findLocalShard(leaderConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); - assertNotNull(findLocalShard(followerConfigDatastore.getActorContext(), + assertNotNull(findLocalShard(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); @@ -410,13 +417,21 @@ public class DistributedShardedDOMDataTreeRemotingTest extends AbstractTest { waitOnAsyncTask(reg1.close(), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - waitUntilShardIsDown(leaderConfigDatastore.getActorContext(), + waitUntilShardIsDown(leaderConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - waitUntilShardIsDown(followerConfigDatastore.getActorContext(), + waitUntilShardIsDown(followerConfigDatastore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); } LOG.info("testMultipleRegistrationsAtOnePrefix ending"); } + + @Test + public void testInitialBootstrappingWithNoModuleShards() throws Exception { + LOG.info("testInitialBootstrappingWithNoModuleShards starting"); + initEmptyDatastores("module-shards-default-member-1.conf"); + + // We just verify the DistributedShardedDOMDataTree initialized without error. + } }