summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-02-16 14:25:06 +0100
committerJon Bratseth <bratseth@gmail.com>2021-02-16 14:25:06 +0100
commit977c6a7ace8e02c262dc984f06de759b5cd000a0 (patch)
tree932cf81c21b42a208d2c1a4f7c41105e4dc5a22e /config-model
parent0399c7f2cf9b75253e91a88e899bab82c36040dd (diff)
Check quota against actually used resources
Also, filter out admin clusters as those are created by us.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
index 11039528fc7..d2b465e9d02 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.application.validation;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterSpec;
+import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.model.VespaModel;
@@ -20,6 +21,7 @@ import java.util.stream.Collectors;
* @author ogronnesby
*/
public class QuotaValidator extends Validator {
+
private static final Logger log = Logger.getLogger(QuotaValidator.class.getName());
@Override
@@ -30,11 +32,10 @@ public class QuotaValidator extends Validator {
}
private void validateBudget(BigDecimal budget, VespaModel model, SystemName systemName) {
- var spend = model.provisioned().all().values().stream()
- .filter(Objects::nonNull)
- .map(Capacity::maxResources)
- .mapToDouble(clusterCapacity -> clusterCapacity.nodeResources().cost() * clusterCapacity.nodes())
- .sum();
+ var spend = model.allocatedHosts().getHosts().stream()
+ .filter(hostSpec -> hostSpec.membership().get().cluster().type() != ClusterSpec.Type.admin)
+ .mapToDouble(hostSpec -> hostSpec.advertisedResources().cost())
+ .sum();
if (Math.abs(spend) < 0.01) {
log.warning("Deploying application " + model.applicationPackage().getApplicationId() + " with zero budget use. This is suspicious, but not blocked");