summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-11-14 21:31:20 +0100
committerGitHub <noreply@github.com>2017-11-14 21:31:20 +0100
commit526a2bf8da6a0d81cde6de09e1564382ee9a87f9 (patch)
tree01546b50b5c83a0502bc68c4471e688f12a579bc /config-model
parent1e19225dc03bc3e16803a67c7c31a14e62c3ec5f (diff)
Revert "Treat loadbalancer address as string and pass through"
Diffstat (limited to 'config-model')
-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, 27 insertions, 32 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 0b381508fda..942320ecd40 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,6 +6,7 @@ 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;
@@ -20,7 +21,7 @@ public class DeployProperties {
private final boolean multitenant;
private final ApplicationId applicationId;
private final List<ConfigServerSpec> serverSpecs = new ArrayList<>();
- private final String loadBalancerAddress;
+ private final URI loadBalancerAddress;
private final boolean hostedVespa;
private final Version vespaVersion;
private final Zone zone;
@@ -28,7 +29,7 @@ public class DeployProperties {
private DeployProperties(boolean multitenant,
ApplicationId applicationId,
List<ConfigServerSpec> configServerSpecs,
- String loadBalancerAddress,
+ URI loadBalancerAddress,
boolean hostedVespa,
Version vespaVersion,
Zone zone) {
@@ -54,7 +55,7 @@ public class DeployProperties {
return serverSpecs;
}
- public String loadBalancerAddress() {
+ public URI loadBalancerAddress() {
return loadBalancerAddress;
}
@@ -74,7 +75,7 @@ public class DeployProperties {
private ApplicationId applicationId = ApplicationId.defaultId();
private boolean multitenant = false;
private List<ConfigServerSpec> configServerSpecs = new ArrayList<>();
- private String loadBalancerAddress;
+ private URI loadBalancerAddress;
private boolean hostedVespa = false;
private Version vespaVersion = Version.fromIntValues(1, 0, 0);
private Zone zone = Zone.defaultZone();
@@ -94,7 +95,7 @@ public class DeployProperties {
return this;
}
- public Builder loadBalancerAddress(String loadBalancerAddress) {
+ public Builder loadBalancerAddress(URI 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 defab289ea1..d3038a32bfe 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,6 +5,9 @@ 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
*/
@@ -13,9 +16,9 @@ public class Identity extends SimpleComponent implements IdentityConfig.Producer
private final String domain;
private final String service;
- private final String loadBalancerAddress;
+ private final URI loadBalancerAddress;
- public Identity(String domain, String service, String loadBalancerAddress) {
+ public Identity(String domain, String service, URI loadBalancerAddress) {
super(CLASS);
this.domain = domain;
this.service = service;
@@ -26,8 +29,13 @@ 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(loadBalancerAddress);
+ builder.loadBalancerAddress(
+ Optional.ofNullable(loadBalancerAddress)
+ .map(URI::getHost)
+ .orElse("")
+ );
}
}
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 4286fced735..f8d69d1b0ac 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,7 +7,6 @@ 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;
@@ -58,6 +57,7 @@ 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,10 +166,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// Athenz copper argos
// NOTE: Must be done after addNodes()
- addIdentity(spec,
- cluster,
- context.getDeployState().getProperties().configServerSpecs(),
- context.getDeployState().getProperties().loadBalancerAddress());
+ addIdentity(spec, cluster, context.getDeployState().getProperties().loadBalancerAddress());
//TODO: overview handler, see DomQrserverClusterBuilder
}
@@ -697,22 +694,13 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
}
}
- private void addIdentity(Element element, ContainerCluster cluster, List<ConfigServerSpec> configServerSpecs, String loadBalancerAddress) {
+ private void addIdentity(Element element, ContainerCluster cluster, URI 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"));
- // 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);
+ Identity identity = new Identity(domain.trim(), service.trim(), loadBalancerAddress);
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 8589cb8fb3f..ff37fb1fad3 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,15 +2,11 @@
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;
@@ -18,6 +14,7 @@ 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;
@@ -99,7 +96,7 @@ public class MockModelContext implements ModelContext {
}
@Override
- public String loadBalancerAddress() {
+ public URI 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 528f1d7fdde..873883716e4 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,6 +27,7 @@ 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;
@@ -195,7 +196,7 @@ public class VespaModelFactoryTest {
}
@Override
- public String loadBalancerAddress() {
+ public URI loadBalancerAddress() {
return null;
}
};