summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-10-18 10:38:48 +0200
committerJon Bratseth <bratseth@oath.com>2018-10-18 10:38:48 +0200
commitb191c800dfc74cbd840ecb638f208cb60e0e678b (patch)
treeaef9f19e5aa2968514dd0fbb502fc2aa6ac4bcc1 /node-repository
parent4e27edfcdd6a510e96145c03413dae87057f1bd0 (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.java9
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;
}