aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2021-09-20 15:05:04 +0200
committerHarald Musum <musum@yahooinc.com>2021-09-20 15:05:04 +0200
commit1685cbb1951d2f65181a6e26acd78d22ae45f541 (patch)
tree6ddc7bc3e4c7762eeda954480cf11a148fc61d77 /config-model
parenta26d83aab1acbe84ce31a7f886374e33202ec0d0 (diff)
Remove code for only logging when using resource-limits in hosted
No apps are using this now, so we will always throw exception if 'resource-limits' is used in services.xml in hosted. Prepare for removing feature flag.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/DomResourceLimitsBuilder.java19
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ClusterResourceLimitsTest.java70
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java3
5 files changed, 17 insertions, 90 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
index dc5e6c9baee..dff47515957 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
@@ -1,7 +1,6 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content;
-import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
import com.yahoo.vespa.model.content.cluster.DomResourceLimitsBuilder;
@@ -37,20 +36,18 @@ public class ClusterResourceLimits {
private final boolean enableFeedBlockInDistributor;
private final boolean hostedVespa;
- private final boolean throwIfSpecified;
- private final DeployLogger deployLogger;
private final double resourceLimitDisk;
private final double resourceLimitMemory;
private ResourceLimits.Builder ctrlBuilder = new ResourceLimits.Builder();
private ResourceLimits.Builder nodeBuilder = new ResourceLimits.Builder();
- public Builder(boolean enableFeedBlockInDistributor, boolean hostedVespa, boolean throwIfSpecified,
- DeployLogger deployLogger, double resourceLimitDisk, double resourceLimitMemory) {
+ public Builder(boolean enableFeedBlockInDistributor,
+ boolean hostedVespa,
+ double resourceLimitDisk,
+ double resourceLimitMemory) {
this.enableFeedBlockInDistributor = enableFeedBlockInDistributor;
this.hostedVespa = hostedVespa;
- this.throwIfSpecified = throwIfSpecified;
- this.deployLogger = deployLogger;
this.resourceLimitDisk = resourceLimitDisk;
this.resourceLimitMemory = resourceLimitMemory;
verifyLimits(resourceLimitDisk, resourceLimitMemory);
@@ -67,7 +64,7 @@ public class ClusterResourceLimits {
private ResourceLimits.Builder createBuilder(ModelElement element) {
return element == null
? new ResourceLimits.Builder()
- : DomResourceLimitsBuilder.createBuilder(element, hostedVespa, throwIfSpecified, deployLogger);
+ : DomResourceLimitsBuilder.createBuilder(element, hostedVespa);
}
public void setClusterControllerBuilder(ResourceLimits.Builder builder) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index 1f443da51db..a746dc36540 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -123,8 +123,6 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
boolean enableFeedBlockInDistributor = deployState.getProperties().featureFlags().enableFeedBlockInDistributor();
var resourceLimits = new ClusterResourceLimits.Builder(enableFeedBlockInDistributor,
stateIsHosted(deployState),
- deployState.featureFlags().throwIfResourceLimitsSpecified(),
- deployState.getDeployLogger(),
deployState.featureFlags().resourceLimitDisk(),
deployState.featureFlags().resourceLimitMemory())
.build(contentElement);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/DomResourceLimitsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/DomResourceLimitsBuilder.java
index 32b0f5b6477..cb417c2d559 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/DomResourceLimitsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/DomResourceLimitsBuilder.java
@@ -1,12 +1,9 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content.cluster;
-import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
import com.yahoo.vespa.model.content.ResourceLimits;
-import java.util.logging.Level;
-
/**
* Builder for feed block resource limits.
*
@@ -14,23 +11,13 @@ import java.util.logging.Level;
*/
public class DomResourceLimitsBuilder {
- public static ResourceLimits.Builder createBuilder(ModelElement contentXml,
- boolean hostedVespa,
- boolean throwIfSpecified,
- DeployLogger deployLogger) {
+ public static ResourceLimits.Builder createBuilder(ModelElement contentXml, boolean hostedVespa) {
ResourceLimits.Builder builder = new ResourceLimits.Builder();
ModelElement resourceLimits = contentXml.child("resource-limits");
if (resourceLimits == null) { return builder; }
- if (hostedVespa) {
- String message = "Element '" + resourceLimits + "' is not allowed to be set";
- if (throwIfSpecified) throw new IllegalArgumentException(message);
-
-
- deployLogger.logApplicationPackage(Level.WARNING, message);
- // TODO: return (default values will then be used). Cannot be done now as an app needs current behavior
- //return builder;
- }
+ if (hostedVespa)
+ throw new IllegalArgumentException("Element '" + resourceLimits + "' is not allowed to be set");
if (resourceLimits.child("disk") != null) {
builder.setDiskLimit(resourceLimits.childAsDouble("disk"));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterResourceLimitsTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterResourceLimitsTest.java
index c0b1a64bace..f7aed7099d4 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterResourceLimitsTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterResourceLimitsTest.java
@@ -1,14 +1,10 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content;
-import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.api.ModelContext;
-import com.yahoo.config.model.application.provider.BaseDeployLogger;
import com.yahoo.config.model.deploy.TestProperties;
-import com.yahoo.searchdefinition.derived.TestableDeployLogger;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -28,7 +24,6 @@ public class ClusterResourceLimitsTest {
private static class Fixture {
private final boolean enableFeedBlockInDistributor;
private final boolean hostedVespa;
- private final boolean throwIfSpecified;
private final ResourceLimits.Builder ctrlBuilder = new ResourceLimits.Builder();
private final ResourceLimits.Builder nodeBuilder = new ResourceLimits.Builder();
@@ -37,13 +32,12 @@ public class ClusterResourceLimitsTest {
}
public Fixture(boolean enableFeedBlockInDistributor) {
- this(enableFeedBlockInDistributor, false, false);
+ this(enableFeedBlockInDistributor, false);
}
- public Fixture(boolean enableFeedBlockInDistributor, boolean hostedVespa, boolean throwIfSpecified) {
+ public Fixture(boolean enableFeedBlockInDistributor, boolean hostedVespa) {
this.enableFeedBlockInDistributor = enableFeedBlockInDistributor;
this.hostedVespa = hostedVespa;
- this.throwIfSpecified = throwIfSpecified;
}
public Fixture ctrlDisk(double limit) {
@@ -66,8 +60,6 @@ public class ClusterResourceLimitsTest {
ModelContext.FeatureFlags featureFlags = new TestProperties();
var builder = new ClusterResourceLimits.Builder(enableFeedBlockInDistributor,
hostedVespa,
- throwIfSpecified,
- new BaseDeployLogger(),
featureFlags.resourceLimitDisk(),
featureFlags.resourceLimitMemory());
builder.setClusterControllerBuilder(ctrlBuilder);
@@ -144,48 +136,18 @@ public class ClusterResourceLimitsTest {
}
@Test
- @Ignore // TODO: Remove hosted_limits_are_used_if_app_is_allowed_to_set_limits and enable this when code is fixed to do so
- public void hosted_log_when_resource_limits_are_specified() {
- TestableDeployLogger logger = new TestableDeployLogger();
-
- var limits = hostedBuildAndLogIfSpecified(logger);
- assertEquals(1, logger.warnings.size());
- assertEquals("Element 'resource-limits' is not allowed to be set", logger.warnings.get(0));
-
- // Verify that default limits are used
- assertLimits(0.8, 0.8, limits.getClusterControllerLimits());
- assertLimits(0.9, 0.9, limits.getContentNodeLimits());
- }
-
- @Test
public void hosted_exception_is_thrown_when_resource_limits_are_specified() {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage(containsString("Element 'resource-limits' is not allowed to be set"));
- hostedBuildAndThrowIfSpecified();
- }
-
- @Test
- // TODO: Remove this and enable hosted_log_when_resource_limits_are_specified when code is fixed to do so
- public void hosted_limits_are_used_if_app_is_allowed_to_set_limits() {
- TestableDeployLogger logger = new TestableDeployLogger();
-
- var limits = hostedBuildAndLogIfSpecified(logger);
- assertEquals(1, logger.warnings.size());
- assertEquals("Element 'resource-limits' is not allowed to be set", logger.warnings.get(0));
-
- // Verify that limits in XML are used
- assertLimits(0.8, 0.92, limits.getClusterControllerLimits());
- assertLimits(0.9, 0.96, limits.getContentNodeLimits());
+ hostedBuild();
}
@Test
public void hosted_limits_from_feature_flag_are_used() {
- TestableDeployLogger logger = new TestableDeployLogger();
-
TestProperties featureFlags = new TestProperties();
featureFlags.setResourceLimitDisk(0.85);
featureFlags.setResourceLimitMemory(0.90);
- var limits = hostedBuild(false, logger, featureFlags, false);
+ var limits = hostedBuild(featureFlags, false);
// Verify that limits from feature flags are used
assertLimits(0.85, 0.90, limits.getClusterControllerLimits());
@@ -194,35 +156,23 @@ public class ClusterResourceLimitsTest {
@Test
public void exception_is_thrown_when_resource_limits_are_out_of_range() {
- TestableDeployLogger logger = new TestableDeployLogger();
-
TestProperties featureFlags = new TestProperties();
featureFlags.setResourceLimitDisk(1.1);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage(containsString("Resource limit for disk is set to illegal value 1.1, but must be in the range [0.0, 1.0]"));
- hostedBuild(false, logger, featureFlags, false);
+ hostedBuild(featureFlags, false);
featureFlags = new TestProperties();
featureFlags.setResourceLimitDisk(-0.1);
expectedException.expectMessage(containsString("Resource limit for disk is set to illegal value -0.1, but must be in the range [0.0, 1.0]"));
- hostedBuild(false, logger, featureFlags, false);
- }
-
- private void hostedBuildAndThrowIfSpecified() {
- hostedBuild(true, new TestableDeployLogger(), new TestProperties(), true);
- }
-
- private ClusterResourceLimits hostedBuildAndLogIfSpecified(DeployLogger deployLogger) {
- return hostedBuild(false, deployLogger);
+ hostedBuild(featureFlags, false);
}
- private ClusterResourceLimits hostedBuild(boolean throwIfSpecified, DeployLogger deployLogger) {
- return hostedBuild(throwIfSpecified, deployLogger, new TestProperties(), true);
+ private ClusterResourceLimits hostedBuild() {
+ return hostedBuild(new TestProperties(), true);
}
- private ClusterResourceLimits hostedBuild(boolean throwIfSpecified,
- DeployLogger deployLogger,
- ModelContext.FeatureFlags featureFlags,
+ private ClusterResourceLimits hostedBuild(ModelContext.FeatureFlags featureFlags,
boolean limitsInXml) {
Document clusterXml = XML.getDocument("<cluster id=\"test\">" +
" <tuning>\n" +
@@ -237,8 +187,6 @@ public class ClusterResourceLimitsTest {
ClusterResourceLimits.Builder builder = new ClusterResourceLimits.Builder(true,
true,
- throwIfSpecified,
- deployLogger,
featureFlags.resourceLimitDisk(),
featureFlags.resourceLimitMemory());
return builder.build(new ModelElement((limitsInXml ? clusterXml : noLimitsXml).getDocumentElement()));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
index cc1b96dc588..e5b757e1514 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.model.content;
import com.yahoo.config.model.api.ModelContext;
-import com.yahoo.config.model.application.provider.BaseDeployLogger;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
import com.yahoo.config.model.test.MockRoot;
@@ -28,8 +27,6 @@ public class FleetControllerClusterTest {
clusterElement,
new ClusterResourceLimits.Builder(enableFeedBlockInDistributor,
false,
- false,
- new BaseDeployLogger(),
featureFlags.resourceLimitDisk(),
featureFlags.resourceLimitMemory())
.build(clusterElement).getClusterControllerLimits())