X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FConfigurationImpl.java;h=34590025d59ab78d3e0095e81addaa8ed874935f;hb=17d82f582a6bc13c78be3b19954ff8c021180e93;hp=1b8bf3e160e75c9c47cfd20dfe8e0dc9cdbb8388;hpb=d83a4d45f6ddbd66842a43dcb230f2c81af91696;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ConfigurationImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ConfigurationImpl.java index 1b8bf3e160..34590025d5 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ConfigurationImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ConfigurationImpl.java @@ -15,7 +15,10 @@ import com.typesafe.config.ConfigObject; import org.opendaylight.controller.cluster.datastore.shardstrategy.DefaultShardStrategy; import org.opendaylight.controller.cluster.datastore.shardstrategy.ModuleShardStrategy; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -28,11 +31,34 @@ public class ConfigurationImpl implements Configuration { private final List modules = new ArrayList<>(); + private static final Logger + LOG = LoggerFactory.getLogger(DistributedDataStore.class); + public ConfigurationImpl(String moduleShardsConfigPath, + String modulesConfigPath){ - Config moduleShardsConfig = ConfigFactory.load(moduleShardsConfigPath); - Config modulesConfig = ConfigFactory.load(modulesConfigPath); + + File moduleShardsFile = new File("./configuration/initial/" + moduleShardsConfigPath); + File modulesFile = new File("./configuration/initial/" + modulesConfigPath); + + Config moduleShardsConfig = null; + if(moduleShardsFile.exists()) { + LOG.info("module shards config file exists - reading config from it"); + moduleShardsConfig = ConfigFactory.parseFile(moduleShardsFile); + } else { + LOG.warn("module shards configuration read from resource"); + moduleShardsConfig = ConfigFactory.load(moduleShardsConfigPath); + } + + Config modulesConfig = null; + if(modulesFile.exists()) { + LOG.info("modules config file exists - reading config from it"); + modulesConfig = ConfigFactory.parseFile(modulesFile); + } else { + LOG.warn("modules configuration read from resource"); + modulesConfig = ConfigFactory.load(modulesConfigPath); + } readModuleShards(moduleShardsConfig); @@ -85,6 +111,18 @@ public class ConfigurationImpl implements Configuration { return Collections.EMPTY_LIST; } + @Override public List getMembersFromShardName(String shardName) { + List shards = new ArrayList(); + for(ModuleShard ms : moduleShards){ + for(Shard s : ms.getShards()) { + if(s.getName().equals(shardName)){ + return s.getReplicas(); + } + } + } + return Collections.EMPTY_LIST; + } + private void readModules(Config modulesConfig) {