Remove prefix shard leftovers
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / config / ConfigurationImpl.java
index 8e132f26d19a2e4ccdc0ed683a7dadb5df6f6751..1ede88c3cb91c74bbfac078937e1b99868859aed 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -19,23 +18,14 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 import org.opendaylight.controller.cluster.access.concepts.MemberName;
-import org.opendaylight.controller.cluster.datastore.shardstrategy.PrefixShardStrategy;
 import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy;
 import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory;
-import org.opendaylight.controller.cluster.datastore.utils.ClusterUtils;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
-// TODO clean this up once we get rid of module based configuration, prefix one should be alot simpler
 public class ConfigurationImpl implements Configuration {
     private volatile Map<String, ModuleConfig> moduleConfigMap;
 
-    // TODO should this be initialized with something? on restart we should restore the shards from configuration?
-    private volatile Map<DOMDataTreeIdentifier, PrefixShardConfiguration> prefixConfigMap = Collections.emptyMap();
-
     // Look up maps to speed things up
 
     private volatile Map<String, String> namespaceToModuleName;
@@ -120,24 +110,6 @@ public class ConfigurationImpl implements Configuration {
         return moduleConfigMap.get(requireNonNull(moduleName, "moduleName should not be null"));
     }
 
-    @Override
-    public String getShardNameForPrefix(final DOMDataTreeIdentifier prefix) {
-        requireNonNull(prefix, "prefix should not be null");
-
-        Entry<DOMDataTreeIdentifier, PrefixShardConfiguration> bestMatchEntry = new SimpleEntry<>(
-                new DOMDataTreeIdentifier(prefix.getDatastoreType(), YangInstanceIdentifier.empty()), null);
-
-        for (Entry<DOMDataTreeIdentifier, PrefixShardConfiguration> entry : prefixConfigMap.entrySet()) {
-            if (entry.getKey().contains(prefix) && entry.getKey().getRootIdentifier().getPathArguments().size()
-                    > bestMatchEntry.getKey().getRootIdentifier().getPathArguments().size()) {
-                bestMatchEntry = entry;
-            }
-        }
-
-        //TODO we really should have mapping based on prefix instead of Strings
-        return ClusterUtils.getCleanShardName(bestMatchEntry.getKey().getRootIdentifier());
-    }
-
     @Override
     public Collection<MemberName> getMembersFromShardName(final String shardName) {
         checkNotNullShardName(shardName);
@@ -149,12 +121,6 @@ public class ConfigurationImpl implements Configuration {
             }
         }
 
-        for (final PrefixShardConfiguration prefixConfig : prefixConfigMap.values()) {
-            if (shardName.equals(ClusterUtils.getCleanShardName(prefixConfig.getPrefix().getRootIdentifier()))) {
-                return prefixConfig.getShardMemberNames();
-            }
-        }
-
         return Collections.emptyList();
     }
 
@@ -193,40 +159,6 @@ public class ConfigurationImpl implements Configuration {
         allShardNames = ImmutableSet.<String>builder().addAll(allShardNames).add(config.getShardName()).build();
     }
 
-    @Override
-    public void addPrefixShardConfiguration(final PrefixShardConfiguration config) {
-        addPrefixConfig(requireNonNull(config, "PrefixShardConfiguration cannot be null"));
-        allShardNames = ImmutableSet.<String>builder().addAll(allShardNames)
-                .add(ClusterUtils.getCleanShardName(config.getPrefix().getRootIdentifier())).build();
-    }
-
-    @Override
-    public void removePrefixShardConfiguration(final DOMDataTreeIdentifier prefix) {
-        removePrefixConfig(requireNonNull(prefix, "Prefix cannot be null"));
-
-        final HashSet<String> temp = new HashSet<>(allShardNames);
-        temp.remove(ClusterUtils.getCleanShardName(prefix.getRootIdentifier()));
-
-        allShardNames = ImmutableSet.copyOf(temp);
-    }
-
-    @Override
-    public Map<DOMDataTreeIdentifier, PrefixShardConfiguration> getAllPrefixShardConfigurations() {
-        return ImmutableMap.copyOf(prefixConfigMap);
-    }
-
-    private void addPrefixConfig(final PrefixShardConfiguration config) {
-        final Map<DOMDataTreeIdentifier, PrefixShardConfiguration> newPrefixConfigMap = new HashMap<>(prefixConfigMap);
-        newPrefixConfigMap.put(config.getPrefix(), config);
-        prefixConfigMap = ImmutableMap.copyOf(newPrefixConfigMap);
-    }
-
-    private void removePrefixConfig(final DOMDataTreeIdentifier prefix) {
-        final Map<DOMDataTreeIdentifier, PrefixShardConfiguration> newPrefixConfigMap = new HashMap<>(prefixConfigMap);
-        newPrefixConfigMap.remove(prefix);
-        prefixConfigMap = ImmutableMap.copyOf(newPrefixConfigMap);
-    }
-
     private ShardStrategy createShardStrategy(final String moduleName, final String shardStrategyName) {
         return ShardStrategyFactory.newShardStrategyInstance(moduleName, shardStrategyName, this);
     }
@@ -269,28 +201,6 @@ public class ConfigurationImpl implements Configuration {
         }
     }
 
-    @Override
-    public ShardStrategy getStrategyForPrefix(final DOMDataTreeIdentifier prefix) {
-        requireNonNull(prefix, "Prefix cannot be null");
-        // FIXME using prefix tables like in mdsal will be better
-        Entry<DOMDataTreeIdentifier, PrefixShardConfiguration> bestMatchEntry = new SimpleEntry<>(
-                new DOMDataTreeIdentifier(prefix.getDatastoreType(), YangInstanceIdentifier.empty()), null);
-
-        for (Entry<DOMDataTreeIdentifier, PrefixShardConfiguration> entry : prefixConfigMap.entrySet()) {
-            if (entry.getKey().contains(prefix) && entry.getKey().getRootIdentifier().getPathArguments().size()
-                    > bestMatchEntry.getKey().getRootIdentifier().getPathArguments().size()) {
-                bestMatchEntry = entry;
-            }
-        }
-
-        if (bestMatchEntry.getValue() == null) {
-            return null;
-        }
-        return new PrefixShardStrategy(ClusterUtils
-                .getCleanShardName(bestMatchEntry.getKey().getRootIdentifier()),
-                bestMatchEntry.getKey().getRootIdentifier());
-    }
-
     private void updateModuleConfigMap(final ModuleConfig moduleConfig) {
         final Map<String, ModuleConfig> newModuleConfigMap = new HashMap<>(moduleConfigMap);
         newModuleConfigMap.put(moduleConfig.getName(), moduleConfig);