diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-11-08 15:38:38 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-11-08 15:38:38 +0100 |
commit | de07a398d52413413ff1688411707cd67de69164 (patch) | |
tree | 5f5afd03f4e7de9f0e2c566185cb4eda97b12b51 /config-provisioning | |
parent | f89408d83451f4c2ab73ae366ce2f7344a1a33e8 (diff) |
In-place flavor downsize
Diffstat (limited to 'config-provisioning')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java | 11 | ||||
-rw-r--r-- | config-provisioning/src/main/resources/configdefinitions/flavors.def | 2 |
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. |