diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-10-18 10:38:48 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-10-18 10:38:48 +0200 |
commit | b191c800dfc74cbd840ecb638f208cb60e0e678b (patch) | |
tree | aef9f19e5aa2968514dd0fbb502fc2aa6ac4bcc1 /node-repository | |
parent | 4e27edfcdd6a510e96145c03413dae87057f1bd0 (diff) |
Only fail when we can
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java index 6168d6fcf78..0eabf2e972d 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java @@ -28,7 +28,7 @@ public class CapacityPolicies { } public int decideSize(Capacity requestedCapacity) { - int requestedNodes = ensureRedundancy(requestedCapacity.nodeCount()); + int requestedNodes = ensureRedundancy(requestedCapacity.nodeCount(), requestedCapacity.canFail()); if (requestedCapacity.isRequired()) return requestedNodes; switch(zone.environment()) { @@ -68,12 +68,11 @@ public class CapacityPolicies { * Throw if the node count is 1 and we're in a production zone * * @return the argument node count - * @throws IllegalArgumentException if only one node is requested + * @throws IllegalArgumentException if only one node is requested and we can fail */ - private int ensureRedundancy(int nodeCount) { - if (nodeCount == 1 && zone.environment().isProduction() && zone.system() != SystemName.cd) { + private int ensureRedundancy(int nodeCount, boolean canFail) { + if (canFail && nodeCount == 1 && zone.environment().isProduction() && zone.system() != SystemName.cd) throw new IllegalArgumentException("Deployments to prod require at least 2 nodes per cluster for redundancy"); - } return nodeCount; } |