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=8d49c6fac32bb85213a5c7a5906352e62bc41e58;hpb=c222e37f2a0f0f3f6266242fbea2d3b018f4e6e3;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 8d49c6fac3..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,42 +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) { - return Arrays.asList("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() { } - @Override public Optional getModuleNameFromNameSpace( - String nameSpace) { - return Optional.absent(); + public MockConfiguration(Map> shardMembers) { + this.shardMembers = shardMembers; } @Override - public Map getModuleNameToShardStrategyMap() { - return Collections.EMPTY_MAP; + 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 List getShardNamesFromModuleName( - String moduleName) { - return Collections.EMPTY_LIST; + @Override + public String getModuleNameFromNameSpace(final String nameSpace) { + return null; + } + + @Override + public String getShardNameForModule(final String moduleName) { + return null; } - @Override public List getMembersFromShardName(String shardName) { + @Override + 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"); } - return Collections.EMPTY_LIST; + List members = shardMembers.get(shardName); + return members != null ? members : Collections.emptyList(); + } + + @Override public Set getAllShardNames() { + return Collections.emptySet(); + } + + @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(); + } + } } }