summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-02-15 12:20:15 +0100
committergjoranv <gv@yahoo-inc.com>2017-02-15 12:20:15 +0100
commit97538f46ba582cdc6d2f633370f363068a4c85ce (patch)
treeb0b42522841773128553ace83d8503348ceb2a3c /config-model/src
parentbde8b857da03c6fe44b5f464ea6202ce99da18fb (diff)
Use the name of the deployed application
.. when an application is not given explicitly by the user.
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
index 7b9c9b9faf7..bbf1628223d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
@@ -2,10 +2,11 @@
package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.component.ComponentSpecification;
-import com.yahoo.config.application.Xml;
import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.ApplicationName;
import com.yahoo.log.LogLevel;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
@@ -44,7 +45,7 @@ public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http>
Element accessControlElem = XML.getChild(filteringElem, "access-control");
if (accessControlElem != null) {
- accessControl = buildAccessControl(accessControlElem);
+ accessControl = buildAccessControl(ancestor, accessControlElem);
bindings.addAll(getAccessControlBindings(ancestor, accessControl));
filterChains.add(new Chain<>(FilterChains.emptyChainSpec(ACCESS_CONTROL_CHAIN_ID)));
}
@@ -60,9 +61,11 @@ public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http>
return http;
}
- private AccessControl buildAccessControl(Element accessControlElem) {
- String applicationId = XML.getValue(XML.getChild(accessControlElem, "application"));
- AccessControl.Builder builder = new AccessControl.Builder(accessControlElem.getAttribute("domain"), applicationId);
+ private AccessControl buildAccessControl(AbstractConfigProducer ancestor, Element accessControlElem) {
+ String application = XmlHelper.getOptionalChildValue(accessControlElem, "application")
+ .orElse(getDeployedApplicationId(ancestor).value());
+
+ AccessControl.Builder builder = new AccessControl.Builder(accessControlElem.getAttribute("domain"), application);
XmlHelper.getOptionalAttribute(accessControlElem, "read").ifPresent(
readAttr -> builder.readEnabled(Boolean.valueOf(readAttr)));
@@ -79,6 +82,15 @@ public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http>
return builder.build();
}
+ /**
+ * Returns the id of the deployed application, or the default value if not explicitly set (self-hosted).
+ */
+ private static ApplicationName getDeployedApplicationId(AbstractConfigProducer ancestor) {
+ return getContainerCluster(ancestor)
+ .map(cluster -> cluster.getRoot().getDeployState().getProperties().applicationId().application())
+ .orElse(ApplicationId.defaultId().application());
+ }
+
private static List<Binding> getAccessControlBindings(AbstractConfigProducer ancestor, AccessControl accessControl) {
return getContainerCluster(ancestor)
.map(cluster -> cluster.getHandlers().stream()