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%2Futils%2FMockConfiguration.java;h=0d036d36992c776748d7af786ef89ac0119e55ab;hb=refs%2Fchanges%2F70%2F29370%2F7;hp=2597dda04c0e475a71bc65ba6fc47a05965d5a87;hpb=b35aa25e0c3a91fc71e778d9c9393e91036246e3;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java index 2597dda04c..0d036d3699 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java @@ -8,40 +8,116 @@ package org.opendaylight.controller.cluster.datastore.utils; -import com.google.common.base.Optional; -import org.opendaylight.controller.cluster.datastore.Configuration; -import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; - +import com.google.common.collect.ImmutableMap; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import org.opendaylight.controller.cluster.datastore.config.Configuration; +import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfiguration; +import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; public class MockConfiguration implements Configuration{ - @Override public List getMemberShardNames(String memberName) { - List shardNames = new ArrayList<>(); - shardNames.add("default"); + private Map> shardMembers = ImmutableMap.>builder(). + put("default", Arrays.asList("member-1", "member-2")). + /*put("astronauts", Arrays.asList("member-2", "member-3")).*/build(); + + public MockConfiguration() { + } + + public MockConfiguration(Map> shardMembers) { + this.shardMembers = shardMembers; + } + + @Override + public Collection getMemberShardNames(final String memberName) { + ArrayList shardNames = new ArrayList(); + for(Map.Entry> shard : shardMembers.entrySet()) { + if (shard.getValue().contains(memberName)) { + shardNames.add(shard.getKey()); + } + } return shardNames; } - @Override public Optional getModuleNameFromNameSpace( - String nameSpace) { - return Optional.absent(); + @Override + public String getModuleNameFromNameSpace(final String nameSpace) { + return null; + } + + @Override + public String getShardNameForModule(final String moduleName) { + return null; } @Override - public Map getModuleNameToShardStrategyMap() { - return Collections.EMPTY_MAP; + public Collection getMembersFromShardName(final String shardName) { + if("default".equals(shardName)) { + return Arrays.asList("member-1", "member-2"); + } else if("astronauts".equals(shardName)){ + return Arrays.asList("member-2", "member-3"); + } + + List members = shardMembers.get(shardName); + return members != null ? members : Collections.emptyList(); } - @Override public List getShardNamesFromModuleName( - String moduleName) { - return Collections.EMPTY_LIST; + @Override public Set getAllShardNames() { + return Collections.emptySet(); } - @Override public List getMembersFromShardName(String shardName) { - List shardNames = new ArrayList<>(); - shardNames.add("member-1"); - return shardNames; + @Override + public Collection getUniqueMemberNamesForAllShards() { + Set allNames = new HashSet<>(); + for(List l: shardMembers.values()) { + allNames.addAll(l); + } + + return allNames; + } + + @Override + public ShardStrategy getStrategyForModule(String moduleName) { + return null; + } + + @Override + public void addModuleShardConfiguration(ModuleShardConfiguration config) { + } + + @Override + public boolean isShardConfigured(String shardName) { + return (shardMembers.containsKey(shardName)); + } + + @Override + public void addMemberReplicaForShard (String shardName, String newMemberName) { + Map> newShardMembers = new HashMap<>(shardMembers); + for(Map.Entry> shard : newShardMembers.entrySet()) { + if (shard.getKey().equals(shardName)) { + List replicas = new ArrayList<>(shard.getValue()); + replicas.add(newMemberName); + shard.setValue(replicas); + shardMembers = ImmutableMap.>builder().putAll(newShardMembers).build(); + } + } + } + + @Override + public void removeMemberReplicaForShard (String shardName, String newMemberName) { + Map> newShardMembers = new HashMap<>(shardMembers); + for(Map.Entry> shard : newShardMembers.entrySet()) { + if (shard.getKey().equals(shardName)) { + List replicas = new ArrayList<>(shard.getValue()); + replicas.remove(newMemberName); + shard.setValue(replicas); + shardMembers = ImmutableMap.>builder().putAll(newShardMembers).build(); + } + } } }