diff options
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 6ff26d0aad7..6559e08d3ed 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -20,11 +20,15 @@ public class Zone { private final RegionName region; private final SystemName systemName; private final FlavorDefaults flavorDefaults; + private final Optional<NodeFlavors> nodeFlavors; @Inject - public Zone(ConfigserverConfig configserverConfig) { - this(SystemName.from(configserverConfig.system()), Environment.from(configserverConfig.environment()), - RegionName.from(configserverConfig.region()), new FlavorDefaults(configserverConfig)); + public Zone(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors) { + this(SystemName.from(configserverConfig.system()), + Environment.from(configserverConfig.environment()), + RegionName.from(configserverConfig.region()), + new FlavorDefaults(configserverConfig), + nodeFlavors); } /** Create from environment and region */ @@ -39,14 +43,19 @@ public class Zone { /** Create from environment and region. Useful for testing. */ public Zone(SystemName system, Environment environment, RegionName region, String defaultFlavor) { - this(system, environment, region, new FlavorDefaults(defaultFlavor)); + this(system, environment, region, new FlavorDefaults(defaultFlavor), null); } - private Zone(SystemName systemName, Environment environment, RegionName region, FlavorDefaults flavorDefaults) { + private Zone(SystemName systemName, + Environment environment, + RegionName region, + FlavorDefaults flavorDefaults, + NodeFlavors nodeFlavors) { this.environment = environment; this.region = region; this.flavorDefaults = flavorDefaults; this.systemName = systemName; + this.nodeFlavors = Optional.ofNullable(nodeFlavors); } /** Returns the current environment */ @@ -61,6 +70,9 @@ public class Zone { /** Returns the default hardware flavor to assign in this zone */ public String defaultFlavor(ClusterSpec.Type clusterType) { return flavorDefaults.flavor(clusterType); } + /** Returns all available node flavors for the zone, or empty if not set for this Zone. */ + public Optional<NodeFlavors> nodeFlavors() { return nodeFlavors; } + /** Do not use */ public static Zone defaultZone() { return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); |