diff options
author | Harald Musum <musum@yahoo-inc.com> | 2017-11-14 21:34:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-14 21:34:23 +0100 |
commit | dea483613029d3975c433ebc717b6ee66fddf80a (patch) | |
tree | 01546b50b5c83a0502bc68c4471e688f12a579bc /config-model/src | |
parent | 1e19225dc03bc3e16803a67c7c31a14e62c3ec5f (diff) | |
parent | 526a2bf8da6a0d81cde6de09e1564382ee9a87f9 (diff) |
Merge pull request #4136 from vespa-engine/revert-4120-mortent/treat-lbaddress-asstring
Revert "Treat loadbalancer address as string and pass through"
Diffstat (limited to 'config-model/src')
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; } }; |