summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-01-25 13:28:17 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-01-31 11:17:06 +0100
commit4bd4e26765074e36199ad0428bbf758d7dc29f82 (patch)
tree958eb1b4fd1a3455f484264474890c53f1161bf2 /config-model-api
parent1814efcd85458457877168dc1c6eb3238c2cbb4e (diff)
Add "simultaneous" upgrade rollout strategy
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json3
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java4
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java2
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java4
4 files changed, 9 insertions, 4 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index d946dd972f4..ae9e7a22129 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -397,7 +397,8 @@
],
"fields": [
"public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout separate",
- "public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout leading"
+ "public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout leading",
+ "public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout simultaneous"
]
},
"com.yahoo.config.application.api.DeploymentSpec": {
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java
index 4b019bd9f7a..8ad42b1d4a8 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java
@@ -564,9 +564,9 @@ public class DeploymentSpec {
/** Separate: Application changes wait for upgrade to complete, unless upgrade fails. */
separate,
/** Leading: Application changes are allowed to start and catch up to the platform upgrade. */
- leading
+ leading,
// /** Simultaneous: Application changes deploy independently of platform upgrades. */
- // simultaneous
+ simultaneous
}
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java
index b031af9faf2..b12d4024591 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java
@@ -507,7 +507,7 @@ public class DeploymentSpecXmlReader {
switch (rollout) {
case "separate": return DeploymentSpec.UpgradeRollout.separate;
case "leading": return DeploymentSpec.UpgradeRollout.leading;
- // case "simultaneous": return DeploymentSpec.UpgradePolicy.conservative;
+ case "simultaneous": return DeploymentSpec.UpgradeRollout.simultaneous;
default: throw new IllegalArgumentException("Illegal upgrade rollout '" + rollout + "': " +
"Must be one of " + Arrays.toString(DeploymentSpec.UpgradeRollout.values()));
}
diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java
index a97faf5995d..f6af155ffc2 100644
--- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java
+++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java
@@ -386,12 +386,16 @@ public class DeploymentSpecTest {
" <instance id='default'>" +
" <upgrade rollout='leading' />" +
" </instance>" +
+ " <instance id='aggressive'>" +
+ " <upgrade rollout='simultaneous' />" +
+ " </instance>" +
" <instance id='custom'/>" +
"</deployment>"
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals("leading", spec.requireInstance("default").upgradeRollout().toString());
assertEquals("separate", spec.requireInstance("custom").upgradeRollout().toString());
+ assertEquals("simultaneous", spec.requireInstance("aggressive").upgradeRollout().toString());
}
@Test