BUG 2187 - Persisting shard list in ShardManager
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / utils / MockConfiguration.java
index caae615ae6b9aa7a3ef6f374623eb240c4714d51..0d036d36992c776748d7af786ef89ac0119e55ab 100644 (file)
@@ -13,6 +13,7 @@ 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;
@@ -93,4 +94,30 @@ public class MockConfiguration implements Configuration{
     public boolean isShardConfigured(String shardName) {
         return (shardMembers.containsKey(shardName));
     }
+
+    @Override
+    public void addMemberReplicaForShard (String shardName, String newMemberName) {
+        Map<String, List<String>> newShardMembers = new HashMap<>(shardMembers);
+        for(Map.Entry<String, List<String>> shard : newShardMembers.entrySet()) {
+            if (shard.getKey().equals(shardName)) {
+                List<String> replicas = new ArrayList<>(shard.getValue());
+                replicas.add(newMemberName);
+                shard.setValue(replicas);
+                shardMembers = ImmutableMap.<String, List<String>>builder().putAll(newShardMembers).build();
+            }
+        }
+    }
+
+    @Override
+    public void removeMemberReplicaForShard (String shardName, String newMemberName) {
+        Map<String, List<String>> newShardMembers = new HashMap<>(shardMembers);
+        for(Map.Entry<String, List<String>> shard : newShardMembers.entrySet()) {
+            if (shard.getKey().equals(shardName)) {
+                List<String> replicas = new ArrayList<>(shard.getValue());
+                replicas.remove(newMemberName);
+                shard.setValue(replicas);
+                shardMembers = ImmutableMap.<String, List<String>>builder().putAll(newShardMembers).build();
+            }
+        }
+    }
 }