summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-02-17 15:52:40 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-02-17 15:52:40 +0100
commit2126335545db50eb4311e909fb5d1c9f3ff86076 (patch)
tree492687d7a06b56c49c5a648e0b63b6e0b556c2fc /config-model-api
parentd0ab3419e6c87d3da08552effe8474b3835c8713 (diff)
Add revision upgrade policy "exclusive" which _never_ joins commits
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json1
-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.java1
3 files changed, 5 insertions, 1 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index ae9e7a22129..aeb1d28b824 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -379,6 +379,7 @@
"public static com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision valueOf(java.lang.String)"
],
"fields": [
+ "public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision exclusive",
"public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision separate",
"public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision latest"
]
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 8ad42b1d4a8..3a66fb0c1a5 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
@@ -552,7 +552,9 @@ public class DeploymentSpec {
/** Determines when application changes deploy, when an older revision is already rolling out. */
public enum UpgradeRevision {
- /** Separate: Application changes wait for previous application changes to complete, unless they fail. */
+ /** Exclusive: Application changes are rolled one at a time through this instance, even when they fail. */
+ exclusive,
+ /** Separate: Application changes wait for already rolling application changes to complete, unless they fail. */
separate,
/** Latest: Application changes immediately supersede previous application changes, unless currently blocked. */
latest
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 b12d4024591..fdd7733a5f6 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
@@ -486,6 +486,7 @@ public class DeploymentSpecXmlReader {
return DeploymentSpec.UpgradeRevision.separate;
switch (revision) {
+ case "exclusive": return DeploymentSpec.UpgradeRevision.exclusive;
case "separate": return DeploymentSpec.UpgradeRevision.separate;
case "latest": return DeploymentSpec.UpgradeRevision.latest;
default: throw new IllegalArgumentException("Illegal upgrade revision '" + revision + "': " +