aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorMartin Polden <martin.polden@gmail.com>2016-11-10 13:48:41 +0100
committerMartin Polden <martin.polden@gmail.com>2016-11-10 13:48:41 +0100
commit61f5df469ed35803bb1d10b2c09964386153654a (patch)
tree2a437656531d70052ad896caea062ba869b2457f /config-provisioning
parent2230950f0cb48062d36a43e9edfc1aa9a59e98f2 (diff)
Add system to zone config
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java32
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java26
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