summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorMorten Tokle <mortent@oath.com>2017-11-14 14:02:32 +0100
committerMorten Tokle <mortent@oath.com>2017-11-14 14:28:26 +0100
commit81d99ba35a8b6b6de79cf14ee1b8193433049640 (patch)
treeca3c0e4972c63a26f747ac046025a2b62ed05e17 /config-model/src
parentc7a3519ad5bbcd9931d64662244b6ca618f9bcad (diff)
Treat loadbalancer address as string and pass through
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java11
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Identity.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java20
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/MockModelContext.java11
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java3
5 files changed, 32 insertions, 27 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java
index 942320ecd40..0b381508fda 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Version;
import com.yahoo.config.provision.Zone;
-import java.net.URI;
import java.util.ArrayList;
import java.util.List;
@@ -21,7 +20,7 @@ public class DeployProperties {
private final boolean multitenant;
private final ApplicationId applicationId;
private final List<ConfigServerSpec> serverSpecs = new ArrayList<>();
- private final URI loadBalancerAddress;
+ private final String loadBalancerAddress;
private final boolean hostedVespa;
private final Version vespaVersion;
private final Zone zone;
@@ -29,7 +28,7 @@ public class DeployProperties {
private DeployProperties(boolean multitenant,
ApplicationId applicationId,
List<ConfigServerSpec> configServerSpecs,
- URI loadBalancerAddress,
+ String loadBalancerAddress,
boolean hostedVespa,
Version vespaVersion,
Zone zone) {
@@ -55,7 +54,7 @@ public class DeployProperties {
return serverSpecs;
}
- public URI loadBalancerAddress() {
+ public String loadBalancerAddress() {
return loadBalancerAddress;
}
@@ -75,7 +74,7 @@ public class DeployProperties {
private ApplicationId applicationId = ApplicationId.defaultId();
private boolean multitenant = false;
private List<ConfigServerSpec> configServerSpecs = new ArrayList<>();
- private URI loadBalancerAddress;
+ private String loadBalancerAddress;
private boolean hostedVespa = false;
private Version vespaVersion = Version.fromIntValues(1, 0, 0);
private Zone zone = Zone.defaultZone();
@@ -95,7 +94,7 @@ public class DeployProperties {
return this;
}
- public Builder loadBalancerAddress(URI loadBalancerAddress) {
+ public Builder loadBalancerAddress(String loadBalancerAddress) {
this.loadBalancerAddress = loadBalancerAddress;
return this;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Identity.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Identity.java
index d3038a32bfe..defab289ea1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/Identity.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Identity.java
@@ -5,9 +5,6 @@ import com.yahoo.container.core.identity.IdentityConfig;
import com.yahoo.container.jdisc.athenz.impl.AthenzIdentityProviderImpl;
import com.yahoo.vespa.model.container.component.SimpleComponent;
-import java.net.URI;
-import java.util.Optional;
-
/**
* @author mortent
*/
@@ -16,9 +13,9 @@ public class Identity extends SimpleComponent implements IdentityConfig.Producer
private final String domain;
private final String service;
- private final URI loadBalancerAddress;
+ private final String loadBalancerAddress;
- public Identity(String domain, String service, URI loadBalancerAddress) {
+ public Identity(String domain, String service, String loadBalancerAddress) {
super(CLASS);
this.domain = domain;
this.service = service;
@@ -29,13 +26,8 @@ public class Identity extends SimpleComponent implements IdentityConfig.Producer
public void getConfig(IdentityConfig.Builder builder) {
builder.domain(domain);
builder.service(service);
- // Load balancer address might not have been set
// Current interpretation of loadbalancer address is: hostname.
// Config should be renamed or send the uri
- builder.loadBalancerAddress(
- Optional.ofNullable(loadBalancerAddress)
- .map(URI::getHost)
- .orElse("")
- );
+ builder.loadBalancerAddress(loadBalancerAddress);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index f8d69d1b0ac..4286fced735 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -7,6 +7,7 @@ import com.yahoo.config.application.Xml;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelContext;
+import com.yahoo.config.model.api.ConfigServerSpec;
import com.yahoo.config.model.application.provider.IncludeDirs;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
@@ -57,7 +58,6 @@ import com.yahoo.vespa.model.content.StorageGroup;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -166,7 +166,10 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// Athenz copper argos
// NOTE: Must be done after addNodes()
- addIdentity(spec, cluster, context.getDeployState().getProperties().loadBalancerAddress());
+ addIdentity(spec,
+ cluster,
+ context.getDeployState().getProperties().configServerSpecs(),
+ context.getDeployState().getProperties().loadBalancerAddress());
//TODO: overview handler, see DomQrserverClusterBuilder
}
@@ -694,13 +697,22 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
}
}
- private void addIdentity(Element element, ContainerCluster cluster, URI loadBalancerAddress) {
+ private void addIdentity(Element element, ContainerCluster cluster, List<ConfigServerSpec> configServerSpecs, String loadBalancerAddress) {
Element identityElement = XML.getChild(element, "identity");
if(identityElement != null) {
String domain = XML.getValue(XML.getChild(identityElement, "domain"));
String service = XML.getValue(XML.getChild(identityElement, "service"));
- Identity identity = new Identity(domain.trim(), service.trim(), loadBalancerAddress);
+ // Set lbaddress, or use first hostname if not specified.
+ String lbAddress = Optional.ofNullable(loadBalancerAddress)
+ .orElseGet(
+ () -> configServerSpecs.stream()
+ .findFirst()
+ .map(ConfigServerSpec::getHostName)
+ .orElse("unknown") // Currently unable to test this, hence the unknown
+ );
+
+ Identity identity = new Identity(domain.trim(), service.trim(), lbAddress);
cluster.addComponent(identity);
cluster.getContainers().forEach(container -> {
diff --git a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
index ff37fb1fad3..8589cb8fb3f 100644
--- a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
+++ b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
@@ -2,11 +2,15 @@
package com.yahoo.config.model;
import com.yahoo.component.Version;
-import com.yahoo.config.model.api.*;
import com.yahoo.config.application.api.ApplicationPackage;
-import com.yahoo.config.model.application.provider.BaseDeployLogger;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.application.api.FileRegistry;
+import com.yahoo.config.model.api.ConfigDefinitionRepo;
+import com.yahoo.config.model.api.ConfigServerSpec;
+import com.yahoo.config.model.api.HostProvisioner;
+import com.yahoo.config.model.api.Model;
+import com.yahoo.config.model.api.ModelContext;
+import com.yahoo.config.model.application.provider.BaseDeployLogger;
import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.model.application.provider.StaticConfigDefinitionRepo;
import com.yahoo.config.model.test.MockApplicationPackage;
@@ -14,7 +18,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Rotation;
import com.yahoo.config.provision.Zone;
-import java.net.URI;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -96,7 +99,7 @@ public class MockModelContext implements ModelContext {
}
@Override
- public URI loadBalancerAddress() {
+ public String loadBalancerAddress() {
return null;
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
index 873883716e4..528f1d7fdde 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
@@ -27,7 +27,6 @@ import com.yahoo.config.provision.Zone;
import org.junit.Before;
import org.junit.Test;
-import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -196,7 +195,7 @@ public class VespaModelFactoryTest {
}
@Override
- public URI loadBalancerAddress() {
+ public String loadBalancerAddress() {
return null;
}
};