summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
diff options
context:
space:
mode:
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.java22
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());