diff options
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java b/configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java index 15a9b8f74d0..8097cd24514 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/UserConfigDefinitionRepo.java @@ -1,16 +1,19 @@ -// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server; import com.google.common.base.Splitter; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import java.util.logging.Level; +import com.yahoo.path.Path; +import com.yahoo.text.Utf8; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.config.buildergen.ConfigDefinition; -import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.config.util.ConfigUtils; +import com.yahoo.vespa.curator.Curator; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Optional; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -24,10 +27,12 @@ public class UserConfigDefinitionRepo implements ConfigDefinitionRepo { // For testing only public UserConfigDefinitionRepo() {} - public UserConfigDefinitionRepo(ConfigCurator configCurator, String appPath) { - if (configCurator.exists(appPath)) { - for (String nodeName : configCurator.getChildren(appPath)) { - String payload = configCurator.getData(appPath, nodeName); + public UserConfigDefinitionRepo(Curator curator, Path appPath) { + if (curator.exists(appPath)) { + for (String nodeName : curator.getChildren(appPath)) { + String payload = curator.getData(appPath.append(nodeName)) + .map(Utf8::toString) + .orElseThrow(() -> new IllegalArgumentException("No config definition data at " + nodeName)); ConfigDefinitionKey dKey = ConfigUtils.createConfigDefinitionKeyFromZKString(nodeName); defs.put(dKey, new ConfigDefinition(dKey.getName(), Splitter.on("\n").splitToList(payload).toArray(new String[0]))); } |