summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-11-08 15:38:38 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2017-11-08 15:38:38 +0100
commitde07a398d52413413ff1688411707cd67de69164 (patch)
tree5f5afd03f4e7de9f0e2c566185cb4eda97b12b51 /config-provisioning
parentf89408d83451f4c2ab73ae366ce2f7344a1a33e8 (diff)
In-place flavor downsize
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java11
-rw-r--r--config-provisioning/src/main/resources/configdefinitions/flavors.def2
2 files changed, 12 insertions, 1 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
index fc3e46a46d6..b0c04cea1b0 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
@@ -76,6 +76,9 @@ public class Flavor {
}
public Type getType() { return type; }
+
+ /** Convenience, returns getType() == Type.DOCKER_CONTAINER */
+ public boolean isDocker() { return type == Type.DOCKER_CONTAINER; }
/** The free capacity we would like to preserve for this flavor */
public int getIdealHeadroom() {
@@ -131,6 +134,14 @@ public class Flavor {
public void freeze() {
replacesFlavors = ImmutableList.copyOf(replacesFlavors);
}
+
+ /** Returns whether this flavor has at least as much as each hardware resource as the given flavor */
+ public boolean isLargerThan(Flavor other) {
+ return this.minCpuCores >= other.minCpuCores &&
+ this.minDiskAvailableGb >= other.minDiskAvailableGb &&
+ this.minMainMemoryAvailableGb >= other.minMainMemoryAvailableGb &&
+ this.fastDisk || ! other.fastDisk;
+ }
@Override
public int hashCode() { return name.hashCode(); }
diff --git a/config-provisioning/src/main/resources/configdefinitions/flavors.def b/config-provisioning/src/main/resources/configdefinitions/flavors.def
index a2dcfd3fd07..57affc2f104 100644
--- a/config-provisioning/src/main/resources/configdefinitions/flavors.def
+++ b/config-provisioning/src/main/resources/configdefinitions/flavors.def
@@ -25,7 +25,7 @@ flavor[].cost int default=0
# for some historical reason. These nodes are assigned to applications by exact match and ignoring cost.
flavor[].stock bool default=true
-# The type of node (e.g. bare metal, docker..).
+# The type of node: BARE_METAL, VIRTUAL_MACHINE or DOCKER_CONTAINER
flavor[].environment string default="undefined"
# The minimum number of CPU cores available.