summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-05-02 21:29:29 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-05-02 21:29:29 +0200
commit8457cd74f0ac3d876d1f7fd6cd7ea7b503cae491 (patch)
tree4a2eb5ed891f5da85397797fc4c943c33ade8b65 /config-provisioning/src/main/java/com/yahoo/config/provision/Capacity.java
parent75e2698805c454d54afb4b5a8bc62b046c4e3246 (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.java19
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);