diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2022-02-19 15:00:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-19 15:00:06 +0100 |
commit | b9e1b6dc755d56cef4b8164abf783ec9cfe1ee63 (patch) | |
tree | eab9e82d290d197c38c698432c7c36a10cb8c6b1 | |
parent | a0806ea0ee6941e31538033bfb2bc6c8421beddb (diff) | |
parent | 2e5310deae9e7ecc9f6e6776dc717abde8dda5d4 (diff) |
Merge pull request #21275 from vespa-engine/jonmv/long-deployment-pipelines-2
Split revision target and when to change settings in deployment spec
10 files changed, 143 insertions, 77 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index aeb1d28b824..4635070fee8 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -194,10 +194,11 @@ "public" ], "methods": [ - "public void <init>(com.yahoo.config.provision.InstanceName, java.util.List, com.yahoo.config.application.api.DeploymentSpec$UpgradePolicy, com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision, com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout, java.util.List, java.util.Optional, java.util.Optional, com.yahoo.config.application.api.Notifications, java.util.List, java.time.Instant)", + "public void <init>(com.yahoo.config.provision.InstanceName, java.util.List, com.yahoo.config.application.api.DeploymentSpec$UpgradePolicy, com.yahoo.config.application.api.DeploymentSpec$RevisionTarget, com.yahoo.config.application.api.DeploymentSpec$RevisionChange, com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout, java.util.List, java.util.Optional, java.util.Optional, com.yahoo.config.application.api.Notifications, java.util.List, java.time.Instant)", "public com.yahoo.config.provision.InstanceName name()", "public com.yahoo.config.application.api.DeploymentSpec$UpgradePolicy upgradePolicy()", - "public com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision upgradeRevision()", + "public com.yahoo.config.application.api.DeploymentSpec$RevisionTarget revisionTarget()", + "public com.yahoo.config.application.api.DeploymentSpec$RevisionChange revisionChange()", "public com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout upgradeRollout()", "public java.util.List changeBlocker()", "public java.util.Optional globalServiceId()", @@ -311,6 +312,41 @@ ], "fields": [] }, + "com.yahoo.config.application.api.DeploymentSpec$RevisionChange": { + "superClass": "java.lang.Enum", + "interfaces": [], + "attributes": [ + "public", + "final", + "enum" + ], + "methods": [ + "public static com.yahoo.config.application.api.DeploymentSpec$RevisionChange[] values()", + "public static com.yahoo.config.application.api.DeploymentSpec$RevisionChange valueOf(java.lang.String)" + ], + "fields": [ + "public static final enum com.yahoo.config.application.api.DeploymentSpec$RevisionChange whenClear", + "public static final enum com.yahoo.config.application.api.DeploymentSpec$RevisionChange whenFailing", + "public static final enum com.yahoo.config.application.api.DeploymentSpec$RevisionChange always" + ] + }, + "com.yahoo.config.application.api.DeploymentSpec$RevisionTarget": { + "superClass": "java.lang.Enum", + "interfaces": [], + "attributes": [ + "public", + "final", + "enum" + ], + "methods": [ + "public static com.yahoo.config.application.api.DeploymentSpec$RevisionTarget[] values()", + "public static com.yahoo.config.application.api.DeploymentSpec$RevisionTarget valueOf(java.lang.String)" + ], + "fields": [ + "public static final enum com.yahoo.config.application.api.DeploymentSpec$RevisionTarget next", + "public static final enum com.yahoo.config.application.api.DeploymentSpec$RevisionTarget latest" + ] + }, "com.yahoo.config.application.api.DeploymentSpec$Step": { "superClass": "java.lang.Object", "interfaces": [], @@ -366,24 +402,6 @@ "public static final enum com.yahoo.config.application.api.DeploymentSpec$UpgradePolicy conservative" ] }, - "com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision": { - "superClass": "java.lang.Enum", - "interfaces": [], - "attributes": [ - "public", - "final", - "enum" - ], - "methods": [ - "public static com.yahoo.config.application.api.DeploymentSpec$UpgradeRevision[] values()", - "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" - ] - }, "com.yahoo.config.application.api.DeploymentSpec$UpgradeRollout": { "superClass": "java.lang.Enum", "interfaces": [], diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java index ea38860c29b..e701f3903cb 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java @@ -31,7 +31,8 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { private final InstanceName name; private final DeploymentSpec.UpgradePolicy upgradePolicy; - private final DeploymentSpec.UpgradeRevision upgradeRevision; + private final DeploymentSpec.RevisionTarget revisionTarget; + private final DeploymentSpec.RevisionChange revisionChange; private final DeploymentSpec.UpgradeRollout upgradeRollout; private final List<DeploymentSpec.ChangeBlocker> changeBlockers; private final Optional<String> globalServiceId; @@ -42,7 +43,8 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { public DeploymentInstanceSpec(InstanceName name, List<DeploymentSpec.Step> steps, DeploymentSpec.UpgradePolicy upgradePolicy, - DeploymentSpec.UpgradeRevision upgradeRevision, + DeploymentSpec.RevisionTarget revisionTarget, + DeploymentSpec.RevisionChange revisionChange, DeploymentSpec.UpgradeRollout upgradeRollout, List<DeploymentSpec.ChangeBlocker> changeBlockers, Optional<String> globalServiceId, @@ -53,7 +55,8 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { super(steps); this.name = name; this.upgradePolicy = upgradePolicy; - this.upgradeRevision = upgradeRevision; + this.revisionTarget = revisionTarget; + this.revisionChange = revisionChange; this.upgradeRollout = upgradeRollout; this.changeBlockers = changeBlockers; this.globalServiceId = globalServiceId; @@ -150,13 +153,16 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { return true; } - /** Returns the upgrade policy of this, which is defaultPolicy if none is specified */ + /** Returns the upgrade policy of this, which is {@link DeploymentSpec.UpgradePolicy#defaultPolicy} by default */ public DeploymentSpec.UpgradePolicy upgradePolicy() { return upgradePolicy; } - /** Returns the upgrade revision strategy of this, which is separate if none is specified */ - public DeploymentSpec.UpgradeRevision upgradeRevision() { return upgradeRevision; } + /** Returns the revision target choice of this, which is {@link DeploymentSpec.RevisionTarget#latest} by default */ + public DeploymentSpec.RevisionTarget revisionTarget() { return revisionTarget; } - /** Returns the upgrade rollout strategy of this, which is separate if none is specified */ + /** Returns the revision change strategy of this, which is {@link DeploymentSpec.RevisionChange#whenFailing} by default */ + public DeploymentSpec.RevisionChange revisionChange() { return revisionChange; } + + /** Returns the upgrade rollout strategy of this, which is {@link DeploymentSpec.UpgradeRollout#separate} by default */ public DeploymentSpec.UpgradeRollout upgradeRollout() { return upgradeRollout; } /** Returns time windows where upgrades are disallowed for these instances */ @@ -204,7 +210,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { DeploymentInstanceSpec other = (DeploymentInstanceSpec) o; return globalServiceId.equals(other.globalServiceId) && upgradePolicy == other.upgradePolicy && - upgradeRevision == other.upgradeRevision && + revisionTarget == other.revisionTarget && upgradeRollout == other.upgradeRollout && changeBlockers.equals(other.changeBlockers) && steps().equals(other.steps()) && @@ -215,7 +221,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { @Override public int hashCode() { - return Objects.hash(globalServiceId, upgradePolicy, upgradeRevision, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints); + return Objects.hash(globalServiceId, upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints); } @Override 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 3a66fb0c1a5..96e3ba75a38 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 @@ -550,14 +550,23 @@ public class DeploymentSpec { } - /** Determines when application changes deploy, when an older revision is already rolling out. */ - public enum UpgradeRevision { - /** Exclusive: Application changes are rolled one at a time through this instance, even when they fail. */ - exclusive, + /** Determines what application changes to deploy to the instance. */ + public enum RevisionTarget { + /** Next: Application changes are rolled through this instance in the same manner as they become ready. */ + next, + /** Latest: Application changes are merged, so the latest available is always chosen for roll-out. */ + latest + } + + + /** Determines when application changes deploy. */ + public enum RevisionChange { + /** Exclusive: Application changes always wait for already rolling application changes to complete. */ + whenClear, /** Separate: Application changes wait for already rolling application changes to complete, unless they fail. */ - separate, + whenFailing, /** Latest: Application changes immediately supersede previous application changes, unless currently blocked. */ - latest + always } 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 fdd7733a5f6..050fba1cd2f 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 @@ -165,7 +165,8 @@ public class DeploymentSpecXmlReader { // Values where the parent may provide a default DeploymentSpec.UpgradePolicy upgradePolicy = readUpgradePolicy(instanceTag, parentTag); - DeploymentSpec.UpgradeRevision upgradeRevision = readUpgradeRevision(instanceTag, parentTag); + DeploymentSpec.RevisionTarget revisionTarget = readRevisionTarget(instanceTag, parentTag); + DeploymentSpec.RevisionChange revisionChange = readRevisionChange(instanceTag, parentTag); DeploymentSpec.UpgradeRollout upgradeRollout = readUpgradeRollout(instanceTag, parentTag); List<DeploymentSpec.ChangeBlocker> changeBlockers = readChangeBlockers(instanceTag, parentTag); Optional<AthenzService> athenzService = mostSpecificAttribute(instanceTag, athenzServiceAttribute).map(AthenzService::from); @@ -184,7 +185,8 @@ public class DeploymentSpecXmlReader { .map(name -> new DeploymentInstanceSpec(InstanceName.from(name), steps, upgradePolicy, - upgradeRevision, + revisionTarget, + revisionChange, upgradeRollout, changeBlockers, globalServiceId.asOptional(), @@ -474,23 +476,42 @@ public class DeploymentSpecXmlReader { } } - private DeploymentSpec.UpgradeRevision readUpgradeRevision(Element parent, Element fallbackParent) { + private DeploymentSpec.RevisionChange readRevisionChange(Element parent, Element fallbackParent) { Element upgradeElement = XML.getChild(parent, upgradeTag); if (upgradeElement == null) upgradeElement = XML.getChild(fallbackParent, upgradeTag); if (upgradeElement == null) - return DeploymentSpec.UpgradeRevision.separate; + return DeploymentSpec.RevisionChange.whenFailing; - String revision = upgradeElement.getAttribute("revision"); + String revision = upgradeElement.getAttribute("revision-change"); if (revision.isEmpty()) - return DeploymentSpec.UpgradeRevision.separate; + return DeploymentSpec.RevisionChange.whenFailing; 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 + "': " + - "Must be one of " + Arrays.toString(DeploymentSpec.UpgradeRevision.values())); + case "when-clear": return DeploymentSpec.RevisionChange.whenClear; + case "when-failing": return DeploymentSpec.RevisionChange.whenFailing; + case "always": return DeploymentSpec.RevisionChange.always; + default: throw new IllegalArgumentException("Illegal upgrade revision change policy '" + revision + "': " + + "Must be one of " + Arrays.toString(DeploymentSpec.RevisionTarget.values())); + } + } + + private DeploymentSpec.RevisionTarget readRevisionTarget(Element parent, Element fallbackParent) { + Element upgradeElement = XML.getChild(parent, upgradeTag); + if (upgradeElement == null) + upgradeElement = XML.getChild(fallbackParent, upgradeTag); + if (upgradeElement == null) + return DeploymentSpec.RevisionTarget.latest; + + String revision = upgradeElement.getAttribute("revision-target"); + if (revision.isEmpty()) + return DeploymentSpec.RevisionTarget.latest; + + switch (revision) { + case "next": return DeploymentSpec.RevisionTarget.next; + case "latest": return DeploymentSpec.RevisionTarget.latest; + default: throw new IllegalArgumentException("Illegal upgrade revision target '" + revision + "': " + + "Must be one of " + Arrays.toString(DeploymentSpec.RevisionTarget.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 f6af155ffc2..86a2ede85ab 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 @@ -121,7 +121,8 @@ public class DeploymentSpecTest { assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy()); - assertEquals(DeploymentSpec.UpgradeRevision.separate, spec.requireInstance("default").upgradeRevision()); + assertEquals(DeploymentSpec.RevisionTarget.latest, spec.requireInstance("default").revisionTarget()); + assertEquals(DeploymentSpec.RevisionChange.whenFailing, spec.requireInstance("default").revisionChange()); assertEquals(DeploymentSpec.UpgradeRollout.separate, spec.requireInstance("default").upgradeRollout()); } @@ -365,18 +366,22 @@ public class DeploymentSpecTest { } @Test - public void productionSpecWithUpgradeRevision() { + public void productionSpecWithUpgradeRevisionSettings() { StringReader r = new StringReader( "<deployment>" + " <instance id='default'>" + - " <upgrade revision='latest' />" + + " <upgrade revision-change='when-clear' revision-target='next' />" + + " </instance>" + + " <instance id='custom'>" + + " <upgrade revision-change='always' />" + " </instance>" + - " <instance id='custom'/>" + "</deployment>" ); DeploymentSpec spec = DeploymentSpec.fromXml(r); - assertEquals("latest", spec.requireInstance("default").upgradeRevision().toString()); - assertEquals("separate", spec.requireInstance("custom").upgradeRevision().toString()); + assertEquals("next", spec.requireInstance("default").revisionTarget().toString()); + assertEquals("latest", spec.requireInstance("custom").revisionTarget().toString()); + assertEquals("whenClear", spec.requireInstance("default").revisionChange().toString()); + assertEquals("always", spec.requireInstance("custom").revisionChange().toString()); } @Test @@ -417,10 +422,10 @@ public class DeploymentSpecTest { public void upgradePolicyDefault() { StringReader r = new StringReader( "<deployment version='1.0'>" + - " <upgrade policy='canary' rollout='leading' revision='latest' />" + + " <upgrade policy='canary' rollout='leading' revision-target='next' revision-change='when-clear' />" + " <instance id='instance1'/>" + " <instance id='instance2'>" + - " <upgrade policy='conservative' rollout='separate' revision='separate'/>" + + " <upgrade policy='conservative' rollout='separate' revision-target='latest' revision-change='when-failing' />" + " </instance>" + "</deployment>" ); @@ -428,8 +433,10 @@ public class DeploymentSpecTest { DeploymentSpec spec = DeploymentSpec.fromXml(r); assertEquals("canary", spec.requireInstance("instance1").upgradePolicy().toString()); assertEquals("conservative", spec.requireInstance("instance2").upgradePolicy().toString()); - assertEquals("latest", spec.requireInstance("instance1").upgradeRevision().toString()); - assertEquals("separate", spec.requireInstance("instance2").upgradeRevision().toString()); + assertEquals("next", spec.requireInstance("instance1").revisionTarget().toString()); + assertEquals("latest", spec.requireInstance("instance2").revisionTarget().toString()); + assertEquals("whenClear", spec.requireInstance("instance1").revisionChange().toString()); + assertEquals("whenFailing", spec.requireInstance("instance2").revisionChange().toString()); assertEquals("leading", spec.requireInstance("instance1").upgradeRollout().toString()); assertEquals("separate", spec.requireInstance("instance2").upgradeRollout().toString()); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java index 5742e0a8816..d05a56a3ce0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java @@ -36,7 +36,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; -import static com.yahoo.config.application.api.DeploymentSpec.UpgradeRevision.exclusive; +import static com.yahoo.config.application.api.DeploymentSpec.RevisionTarget.next; import static com.yahoo.config.provision.Environment.prod; import static com.yahoo.config.provision.Environment.staging; import static com.yahoo.config.provision.Environment.test; @@ -258,7 +258,7 @@ public class DeploymentStatus { public Change outstandingChange(InstanceName instance) { return Optional.ofNullable(instanceSteps().get(instance)) .flatMap(instanceStatus -> application.versions().stream() - .sorted(application.deploymentSpec().requireInstance(instance).upgradeRevision() == exclusive ? naturalOrder() : reverseOrder()) + .sorted(application.deploymentSpec().requireInstance(instance).revisionTarget() == next ? naturalOrder() : reverseOrder()) .filter(version -> instanceStatus.dependenciesCompletedAt(Change.of(version), Optional.empty()).map(at -> ! at.isAfter(now)).orElse(false)) .filter(version -> application.productionDeployments().getOrDefault(instance, List.of()).stream() .noneMatch(deployment -> deployment.applicationVersion().compareTo(version) > 0)) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index ade3c9cbaf5..64f879a3a5c 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.config.application.api.DeploymentInstanceSpec; -import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.InstanceName; import com.yahoo.text.Text; @@ -389,11 +388,11 @@ public class DeploymentTrigger { private boolean acceptNewApplicationVersion(DeploymentStatus status, InstanceName instance, ApplicationVersion version) { if (status.application().deploymentSpec().instance(instance).isEmpty()) return false; // Unknown instance. boolean isChangingRevision = status.application().require(instance).change().application().isPresent(); - switch (status.application().deploymentSpec().requireInstance(instance).upgradeRevision()) { - case exclusive: return ! isChangingRevision; - case separate: return ! isChangingRevision || status.hasFailures(version); - case latest: return true; - default: throw new IllegalStateException("Unknown revision upgrade policy"); + switch (status.application().deploymentSpec().requireInstance(instance).revisionChange()) { + case whenClear: return ! isChangingRevision; + case whenFailing: return ! isChangingRevision || status.hasFailures(version); + case always: return true; + default: throw new IllegalStateException("Unknown revision upgrade policy"); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java index bc5a70b1fa0..640e6860eb6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java @@ -57,7 +57,8 @@ public class ApplicationPackageBuilder { private OptionalInt majorVersion = OptionalInt.empty(); private String instances = "default"; private String upgradePolicy = null; - private String upgradeRevision = "latest"; + private String revisionTarget = "latest"; + private String revisionChange = "always"; private String upgradeRollout = null; private String globalServiceId = null; private String athenzIdentityAttributes = "athenz-domain='domain' athenz-service='service'"; @@ -81,8 +82,13 @@ public class ApplicationPackageBuilder { return this; } - public ApplicationPackageBuilder upgradeRevision(String upgradeRevision) { - this.upgradeRevision = upgradeRevision; + public ApplicationPackageBuilder revisionTarget(String revisionTarget) { + this.revisionTarget = revisionTarget; + return this; + } + + public ApplicationPackageBuilder revisionChange(String revisionChange) { + this.revisionChange = revisionChange; return this; } @@ -259,10 +265,11 @@ public class ApplicationPackageBuilder { } xml.append(">\n"); xml.append(" <instance id='").append(instances).append("'>\n"); - if (upgradePolicy != null || upgradeRevision != null || upgradeRollout != null) { + if (upgradePolicy != null || revisionTarget != null || revisionChange != null || upgradeRollout != null) { xml.append(" <upgrade "); if (upgradePolicy != null) xml.append("policy='").append(upgradePolicy).append("' "); - if (upgradeRevision != null) xml.append("revision='").append(upgradeRevision).append("' "); + if (revisionTarget != null) xml.append("revision-target='").append(revisionTarget).append("' "); + if (revisionChange != null) xml.append("revision-change='").append(revisionChange).append("' "); if (upgradeRollout != null) xml.append("rollout='").append(upgradeRollout).append("' "); xml.append("/>\n"); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java index 925aabf76e3..d0462fd6182 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java @@ -107,10 +107,10 @@ public class DeploymentTriggerTest { } @Test - public void separateRevisionMakesApplicationChangeWaitForPreviousToComplete() { + public void revisionChangeWhenFailingMakesApplicationChangeWaitForPreviousToComplete() { DeploymentContext app = tester.newDeploymentContext(); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .upgradeRevision(null) // separate by default, but we override this in test builder + .revisionChange(null) // separate by default, but we override this in test builder .region("us-east-3") .test("us-east-3") .build(); @@ -863,7 +863,7 @@ public class DeploymentTriggerTest { DeploymentContext i4 = tester.newDeploymentContext("t", "a", "i4"); ApplicationPackage applicationPackage = ApplicationPackageBuilder .fromDeploymentXml("<deployment version='1'>\n" + - " <upgrade revision='separate' />\n" + + " <upgrade revision-change='when-failing' />\n" + " <parallel>\n" + " <instance id='i1'>\n" + " <prod>\n" + @@ -1425,21 +1425,21 @@ public class DeploymentTriggerTest { " <instance id='alpha'>\n" + " <test />\n" + " <staging />\n" + - " <upgrade revision='latest' />\n" + + " <upgrade revision-change='always' />\n" + " <prod>\n" + " <region>us-east-3</region>\n" + " <test>us-east-3</test>\n" + " </prod>\n" + " </instance>\n" + " <instance id='beta'>\n" + - " <upgrade revision='separate' />\n" + + " <upgrade revision-change='when-failing' />\n" + " <prod>\n" + " <region>us-east-3</region>\n" + " <test>us-east-3</test>\n" + " </prod>\n" + " </instance>\n" + " <instance id='gamma'>\n" + - " <upgrade revision='exclusive' />\n" + + " <upgrade revision-change='when-clear' revision-target='next' />\n" + " <prod>\n" + " <region>us-east-3</region>\n" + " <test>us-east-3</test>\n" + diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java index acaa8b24d9d..052a8bffab1 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java @@ -28,10 +28,9 @@ public class OutstandingChangeDeployerTest { @Test public void testChangeDeployer() { DeploymentTester tester = new DeploymentTester(); - OutstandingChangeDeployer deployer = new OutstandingChangeDeployer(tester.controller(), Duration.ofMinutes(10)); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .region("us-west-1") - .upgradeRevision("separate") + .revisionChange("when-failing") .build(); var app = tester.newDeploymentContext().submit(applicationPackage).deploy(); |