diff options
author | Martin Polden <martin.polden@gmail.com> | 2016-11-10 13:48:41 +0100 |
---|---|---|
committer | Martin Polden <martin.polden@gmail.com> | 2016-11-10 13:48:41 +0100 |
commit | 61f5df469ed35803bb1d10b2c09964386153654a (patch) | |
tree | 2a437656531d70052ad896caea062ba869b2457f /config-provisioning/src/main/java | |
parent | 2230950f0cb48062d36a43e9edfc1aa9a59e98f2 (diff) |
Add system to zone config
Diffstat (limited to 'config-provisioning/src/main/java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java | 32 | ||||
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java | 26 |
2 files changed, 51 insertions, 7 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java new file mode 100644 index 00000000000..662af4752ee --- /dev/null +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java @@ -0,0 +1,32 @@ +package com.yahoo.config.provision; + +/** + * Systems in hosted Vespa + * + * @author mpolden + */ +public enum SystemName { + + /** System for continuous integration of latest Vespa and hosted Vespa code */ + ci, + + /** System for continuous deployment where a pre-test of hosted Vespa combined with a verified Vespa version */ + cd, + + /** Production system */ + main; + + public static SystemName defaultSystem() { + return main; + } + + public static SystemName from(String value) { + switch (value) { + case "ci": return ci; + case "cd": return cd; + case "main": return main; + default: throw new IllegalArgumentException(String.format("'%s' is not a valid system", value)); + } + } + +} 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 1b0962a8b26..9972b39b9f9 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 @@ -18,26 +18,35 @@ public class Zone { private final Environment environment; private final RegionName region; + private final SystemName systemName; private final FlavorDefaults flavorDefaults; @Inject public Zone(ConfigserverConfig configserverConfig) { - this(Environment.from(configserverConfig.environment()), RegionName.from(configserverConfig.region()), - new FlavorDefaults(configserverConfig)); + this(SystemName.from(configserverConfig.system()), Environment.from(configserverConfig.environment()), + RegionName.from(configserverConfig.region()), new FlavorDefaults(configserverConfig)); } /** Create from environment and region */ - public Zone(Environment environment, RegionName region) { this(environment, region, "default"); } + public Zone(Environment environment, RegionName region) { + this(SystemName.defaultSystem(), environment, region, "default"); + } + + /** Create from system, environment and region */ + public Zone(SystemName systemName, Environment environment, RegionName region) { + this(systemName, environment, region, "default"); + } /** Create from environment and region. Useful for testing. */ - public Zone(Environment environment, RegionName region, String defaultFlavor) { - this(environment, region, new FlavorDefaults(defaultFlavor)); + public Zone(SystemName system, Environment environment, RegionName region, String defaultFlavor) { + this(system, environment, region, new FlavorDefaults(defaultFlavor)); } - private Zone(Environment environment, RegionName region, FlavorDefaults flavorDefaults) { + private Zone(SystemName systemName, Environment environment, RegionName region, FlavorDefaults flavorDefaults) { this.environment = environment; this.region = region; this.flavorDefaults = flavorDefaults; + this.systemName = systemName; } /** Returns the current environment */ @@ -46,12 +55,15 @@ public class Zone { /** Returns the current region */ public RegionName region() { return region; } + /** Returns the current system */ + public SystemName system() { return systemName; } + /** Returns the default hardware flavor to assign in this zone */ public String defaultFlavor(ClusterSpec.Type clusterType) { return flavorDefaults.flavor(clusterType); } /** Do not use */ public static Zone defaultZone() { - return new Zone(Environment.defaultEnvironment(), RegionName.defaultName()); + return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); } @Override |