X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fshardmanager%2FShardManager.java;h=43446b5ce2ce760d13c29a92e0a38c79acd74d9b;hb=3115b8171461584e85f58d87a9f179013cfbb262;hp=e1752cc57d5c8347948887c86c06fb9162e93ca8;hpb=cd648b7a1662577cd998670f5b39bc839e0f9070;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java index e1752cc57d..43446b5ce2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java @@ -137,7 +137,8 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { // Stores a mapping between a shard name and it's corresponding information // Shard names look like inventory, topology etc and are as specified in // configuration - private final Map localShards = new HashMap<>(); + @VisibleForTesting + final Map localShards = new HashMap<>(); // The type of a ShardManager reflects the type of the datastore itself // A data store could be of type config/operational @@ -147,7 +148,8 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { private final Configuration configuration; - private final String shardDispatcherPath; + @VisibleForTesting + final String shardDispatcherPath; private final ShardManagerInfo shardManagerMBean; @@ -157,7 +159,8 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { private final PrimaryShardInfoFutureCache primaryShardInfoCache; - private final ShardPeerAddressResolver peerAddressResolver; + @VisibleForTesting + final ShardPeerAddressResolver peerAddressResolver; private SchemaContext schemaContext; @@ -1279,18 +1282,27 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { LOG.debug("{}: Creating local shard: {}", persistenceId(), shardId); Map peerAddresses = getPeerAddresses(shardName); - localShards.put(shardName, new ShardInformation(shardName, shardId, peerAddresses, - newShardDatastoreContext(shardName), Shard.builder().restoreFromSnapshot( - shardSnapshots.get(shardName)), peerAddressResolver)); + localShards.put(shardName, createShardInfoFor(shardName, shardId, peerAddresses, + newShardDatastoreContext(shardName), shardSnapshots)); } } + @VisibleForTesting + ShardInformation createShardInfoFor(String shardName, ShardIdentifier shardId, + Map peerAddresses, + DatastoreContext datastoreContext, + Map shardSnapshots) { + return new ShardInformation(shardName, shardId, peerAddresses, + datastoreContext, Shard.builder().restoreFromSnapshot(shardSnapshots.get(shardName)), + peerAddressResolver); + } + /** * Given the name of the shard find the addresses of all it's peers. * * @param shardName the shard name */ - private Map getPeerAddresses(final String shardName) { + Map getPeerAddresses(final String shardName) { final Collection members = configuration.getMembersFromShardName(shardName); return getPeerAddresses(shardName, members); }