summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-04-23 10:45:41 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-04-30 15:43:10 +0200
commit0f7f3aea7961e5fcdc8e1f64232f14ca04697cae (patch)
tree638ffa233721301cdaa01a1838c305300cca899f /node-admin
parentd917bd789c1a7155f8e54def27ed2398314af689 (diff)
Expose sia config from config-server.def in ConfigServerInfo
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/ConfigServerInfo.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/ConfigServerInfo.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/ConfigServerInfo.java
index 218b2947a21..5dd80961062 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/ConfigServerInfo.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/ConfigServerInfo.java
@@ -10,6 +10,7 @@ import com.yahoo.vespa.hosted.node.admin.util.KeyStoreOptions;
import java.net.URI;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -28,6 +29,7 @@ public class ConfigServerInfo {
private final Optional<KeyStoreOptions> keyStoreOptions;
private final Optional<KeyStoreOptions> trustStoreOptions;
private final Optional<AthenzIdentity> athenzIdentity;
+ private final Optional<ConfigServerConfig.Sia> siaConfig;
public ConfigServerInfo(ConfigServerConfig config) {
this.configServerHostNames = config.hosts();
@@ -46,6 +48,7 @@ public class ConfigServerInfo {
this.athenzIdentity = createAthenzIdentity(
config.athenzDomain(),
config.serviceName());
+ this.siaConfig = verifySiaConfig(config.sia());
}
public List<String> getConfigServerHostNames() {
@@ -77,6 +80,10 @@ public class ConfigServerInfo {
return athenzIdentity;
}
+ public Optional<ConfigServerConfig.Sia> getSiaConfig() {
+ return siaConfig;
+ }
+
private static Map<String, URI> createConfigServerUris(
String scheme,
List<String> configServerHosts,
@@ -86,6 +93,18 @@ public class ConfigServerInfo {
hostname -> URI.create(scheme + "://" + hostname + ":" + port)));
}
+ private static Optional<ConfigServerConfig.Sia> verifySiaConfig(ConfigServerConfig.Sia sia) {
+ List<String> configParams = Arrays.asList(
+ sia.credentialsPath(), sia.configserverIdentityName(), sia.hostIdentityName(), sia.trustStoreFile());
+ if (configParams.stream().allMatch(String::isEmpty)) {
+ return Optional.empty();
+ } else if (configParams.stream().noneMatch(String::isEmpty)) {
+ return Optional.of(sia);
+ } else {
+ throw new IllegalArgumentException("Inconsistent sia config: " + sia);
+ }
+ }
+
private static Optional<KeyStoreOptions> createKeyStoreOptions(String pathToKeyStore, char[] password, String type) {
return Optional.ofNullable(pathToKeyStore)
.filter(path -> !Strings.isNullOrEmpty(path))