diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2022-03-07 21:23:37 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2022-03-07 21:23:37 +0100 |
commit | 328f395cdaf51ebd590becbe779cfb01c29c0a81 (patch) | |
tree | b14780a1d08959da01b0c7845933c6b350a94a30 | |
parent | e80bdf0665c29b8e7e5fc8753ea9dd10f4b08d50 (diff) |
Be stricter about when a production deployment is "complete" for a change
3 files changed, 5 insertions, 5 deletions
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 b3005062e1d..09fd9ca86bc 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 @@ -805,7 +805,7 @@ public class DeploymentStatus { .orElse(false)) return job.lastCompleted().flatMap(Run::end); - return (dependent.equals(job()) ? job.lastSuccess().stream() + return (dependent.equals(job()) ? job.lastTriggered().filter(run -> run.status() == RunStatus.success).stream() : RunList.from(job).status(RunStatus.success).asList().stream()) .filter(run -> change.platform().map(run.versions().targetPlatform()::equals).orElse(true) && change.application().map(run.versions().targetApplication()::equals).orElse(true)) 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 b2847a29654..c8126207a73 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 @@ -1873,7 +1873,7 @@ public class DeploymentTriggerTest { // Deploy manually again, then submit new package. app.runJob(productionCdUsEast1, cdPackage); app.submit(cdPackage); - app.runJob(systemTest); + app.triggerJobs().jobAborted(systemTest).runJob(systemTest); // Staging test requires unknown initial version, and is broken. tester.controller().applications().deploymentTrigger().forceTrigger(app.instanceId(), productionCdUsEast1, "user", false, true, true); app.runJob(productionCdUsEast1) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 265dedec8d0..78341682f75 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -945,9 +945,9 @@ public class UpgraderTest { // Application downgrades to pinned version. tester.abortAll(); - context.runJob(stagingTest).runJob(productionUsCentral1); + context.runJob(stagingTest).runJob(productionUsCentral1).runJob(productionUsWest1); assertTrue(context.instance().change().hasTargets()); - context.runJob(productionUsWest1); // us-east-3 never upgraded, so no downgrade is needed. + context.runJob(productionUsEast3); assertFalse(context.instance().change().hasTargets()); } @@ -1011,7 +1011,7 @@ public class UpgraderTest { tester.controllerTester().upgradeSystem(v2); tester.upgrader().maintain(); assertEquals(Change.of(v2), application.instance().change()); - application.runJob(systemTest).runJob(stagingTest).runJob(productionUsCentral1); + application.runJob(systemTest).runJob(stagingTest).runJob(productionUsCentral1).timeOutConvergence(productionUsWest1); tester.triggerJobs(); // While second deployment completes upgrade, version confidence becomes broken and upgrade is cancelled |