final Map<DOMDataTreeIdentifier, PrefixShardConfiguration> configs) {
LOG.debug("{} ShardManager : {}, resolving added configs : {}", addedConfigs);
- addedConfigs.forEach(id -> doCreatePrefixedShard(configs.get(id)));
+ addedConfigs.stream().filter(identifier
+ -> identifier
+ .getDatastoreType().equals(
+ ClusterUtils.toMDSalApi(datastoreContextFactory.getBaseDatastoreContext().getLogicalStoreType())))
+ .forEach(id -> doCreatePrefixedShard(configs.get(id)));
}
private void resolveUpdates(Set<DOMDataTreeIdentifier> maybeUpdatedConfigs) {
config.getPrefix());
final String shardName = shardId.getShardName();
+ if (localShards.containsKey(shardName)) {
+ LOG.debug("{}: Received create for an already existing shard {}", persistenceId(), shardName);
+ final PrefixShardConfiguration existing =
+ configuration.getAllPrefixShardConfigurations().get(config.getPrefix());
+
+ if (existing != null && existing.equals(config)) {
+ // we don't have to do nothing here
+ return;
+ }
+ }
+
configuration.addPrefixShardConfiguration(config);
final Builder builder = newShardDatastoreContextBuilder(shardName);