summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-09-20 10:50:20 +0200
committerolaaun <ola.aunroe@gmail.com>2018-09-20 10:50:20 +0200
commit88410610fdc766ecfdcbe3020f9ecdb335c1587e (patch)
treeddd2144b286567974843a2cca5c91f3643979209 /config-model
parentd94350c19c8e75c79405c967c427df9e832e0b6f (diff)
Add feature flag for using dedicated node for logserver (#7023)
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java17
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java10
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/MockModelContext.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java3
4 files changed, 28 insertions, 5 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 53c70399e94..9d9a19bfbd6 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
@@ -27,6 +27,8 @@ public class DeployProperties {
private final Version vespaVersion;
private final boolean isBootstrap;
private final boolean isFirstTimeDeployment;
+ private final boolean useDedicatedNodeForLogserver;
+
private DeployProperties(boolean multitenant,
ApplicationId applicationId,
@@ -37,7 +39,8 @@ public class DeployProperties {
String athenzDnsSuffix,
Version vespaVersion,
boolean isBootstrap,
- boolean isFirstTimeDeployment) {
+ boolean isFirstTimeDeployment,
+ boolean useDedicatedNodeForLogserver) {
this.loadBalancerName = loadBalancerName;
this.ztsUrl = ztsUrl;
this.athenzDnsSuffix = athenzDnsSuffix;
@@ -48,6 +51,7 @@ public class DeployProperties {
this.hostedVespa = hostedVespa;
this.isBootstrap = isBootstrap;
this.isFirstTimeDeployment = isFirstTimeDeployment;
+ this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver;
}
public boolean multitenant() {
@@ -89,6 +93,8 @@ public class DeployProperties {
/** Returns whether this is the first deployment for this application (used during *prepare*, not set on activate) */
public boolean isFirstTimeDeployment() { return isFirstTimeDeployment; }
+ public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; }
+
public static class Builder {
private ApplicationId applicationId = ApplicationId.defaultId();
@@ -101,6 +107,7 @@ public class DeployProperties {
private Version vespaVersion = Version.fromIntValues(1, 0, 0);
private boolean isBootstrap = false;
private boolean isFirstTimeDeployment = false;
+ private boolean useDedicatedNodeForLogserver = false;
public Builder applicationId(ApplicationId applicationId) {
this.applicationId = applicationId;
@@ -152,9 +159,15 @@ public class DeployProperties {
return this;
}
+ public Builder useDedicatedNodeForLogserver(boolean useDedicatedNodeForLogserver) {
+ this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver;
+ return this;
+ }
+
public DeployProperties build() {
return new DeployProperties(multitenant, applicationId, configServerSpecs, loadBalancerName, hostedVespa,
- ztsUrl, athenzDnsSuffix, vespaVersion, isBootstrap, isFirstTimeDeployment);
+ ztsUrl, athenzDnsSuffix, vespaVersion, isBootstrap, isFirstTimeDeployment,
+ useDedicatedNodeForLogserver);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
index ea943f069cb..566ad0ecff5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.api.ConfigServerSpec;
+import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.SystemName;
@@ -93,9 +94,12 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
private NodesSpecification createNodesSpecificationForLogserver() {
// TODO: Enable for main system as well
- //if (context.getDeployState().isHosted() && context.getDeployState().zone().system() == SystemName.cd)
- // return NodesSpecification.dedicated(1, context);
- //else
+ DeployState deployState = context.getDeployState();
+ if (deployState.getProperties().useDedicatedNodeForLogserver() &&
+ deployState.isHosted() &&
+ deployState.zone().system() == SystemName.cd)
+ return NodesSpecification.dedicated(1, context);
+ else
return NodesSpecification.nonDedicated(1, context);
}
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 5bd95334396..948c62c2343 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
@@ -133,6 +133,9 @@ public class MockModelContext implements ModelContext {
@Override
public boolean isFirstTimeDeployment() { return false; }
+
+ @Override
+ public boolean useDedicatedNodeForLogserver() { return false; }
};
}
}
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 094494073df..e4198115b2a 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
@@ -216,6 +216,9 @@ public class VespaModelFactoryTest {
@Override
public boolean isFirstTimeDeployment() { return false; }
+
+ @Override
+ public boolean useDedicatedNodeForLogserver() { return false; }
};
}
};