diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-05-02 21:29:29 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-05-02 21:29:29 +0200 |
commit | 8457cd74f0ac3d876d1f7fd6cd7ea7b503cae491 (patch) | |
tree | 4a2eb5ed891f5da85397797fc4c943c33ade8b65 /config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java | |
parent | 75e2698805c454d54afb4b5a8bc62b046c4e3246 (diff) |
Allow continuous node resource specs
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java index 6df617ea335..f635b986558 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java @@ -17,11 +17,11 @@ public final class Capacity { private final boolean canFail; - private final Optional<String> flavor; + private final Optional<FlavorSpec> flavor; private final NodeType type; - private Capacity(int nodeCount, Optional<String> flavor, boolean required, boolean canFail, NodeType type) { + private Capacity(int nodeCount, Optional<FlavorSpec> flavor, boolean required, boolean canFail, NodeType type) { this.nodeCount = nodeCount; this.required = required; this.canFail = canFail; @@ -36,7 +36,10 @@ public final class Capacity { * The node flavor requested, or empty if no particular flavor is specified. * This may be satisfied by the requested flavor or a suitable replacement */ - public Optional<String> flavor() { return flavor; } + public Optional<String> flavor() { return flavor.map(FlavorSpec::legacyFlavorName); } + + /** Returns the capacity specified for each node, or empty to leave this decision to provisioning */ + public Optional<FlavorSpec> flavorSpec() { return flavor; } /** Returns whether the requested number of nodes must be met exactly for a request for this to succeed */ public boolean isRequired() { return required; } @@ -65,10 +68,18 @@ public final class Capacity { return fromNodeCount(capacity, Optional.empty(), false, true); } - public static Capacity fromNodeCount(int nodeCount, Optional<String> flavor, boolean required, boolean canFail) { + public static Capacity fromCount(int nodeCount, FlavorSpec flavor, boolean required, boolean canFail) { + return new Capacity(nodeCount, Optional.of(flavor), required, canFail, NodeType.tenant); + } + + public static Capacity fromCount(int nodeCount, Optional<FlavorSpec> flavor, boolean required, boolean canFail) { return new Capacity(nodeCount, flavor, required, canFail, NodeType.tenant); } + public static Capacity fromNodeCount(int nodeCount, Optional<String> flavor, boolean required, boolean canFail) { + return new Capacity(nodeCount, flavor.map(FlavorSpec::fromLegacyFlavorName), required, canFail, NodeType.tenant); + } + /** Creates this from a node type */ public static Capacity fromRequiredNodeType(NodeType type) { return new Capacity(0, Optional.empty(), true, false, type); |